Proposit Logo

v0.6.0

April 20, 2026

Internal

This release ships Phase 0 of the shared-library effort. A new public npm package @proposit/shared now holds the runtime-agnostic code (TypeBox schemas, operational constants, error classes, checksum config, portable utilities, the API client, and the propositional-logic engine) so that the upcoming Proposit mobile app can consume the same building blocks the server uses. There are no user-visible behavior changes in this release.

  • Phase 0 complete: @proposit/shared@0.1.0 is now published on public npm and consumed by the server via a versioned dep. All runtime-agnostic code (schemas, consts, errors, checksum, utils, api-client, engine) lives in the shared package. No user-visible behavior changes.
  • Pre-extraction refactor preparing for a future shared-library split: relocated server-only test helpers out of src/utils/shared/ into src/utils/server/, and moved three review-domain types (TAssignmentPill, TConclusionVerdict, TReviewOverlay) out of the graph module into a new src/engine/review/types.ts. No user-visible behavior changes.
  • Extraction: TypeBox schemas, operational constants, error classes, checksum config, and runtime-agnostic utilities have been extracted to a new shared npm package @proposit/shared. The server now imports them via @proposit/shared/<sub-entry>. No user-visible behavior changes. The package is not yet published; Phase 0 PR 5 handles that.
  • Pre-extraction continuation: src/api-client/ has been extracted to @proposit/shared/api-client. Server consumers now import from @proposit/shared/api-client/.... No behavior changes. Parameterization (injected baseUrl/fetchImpl/getAuthToken) is deferred to early Phase 1 per the design spec.
  • Extraction: the propositional-logic engine (src/engine/ minus engine/graph/) has moved to @proposit/shared/engine. Also completes Phase 0 PR 2's deferred move of format-review-share to @proposit/shared/utils. No user-visible behavior changes. engine/graph/ stays in server because its ReactFlow + ELK coupling is not runtime-agnostic.