Skip to content

M2 — dspack-emit: second target + npm rename

Latest

Choose a tag to compare

@ryandmonk ryandmonk released this 03 Jul 16:54
49af78e

Milestone 2: dspack-to-a2ui became dspack-emit — the multi-target emitter (ADR-D2 taken).

  • json-render target (PR-9): dspack contract → generated catalog.ts (Zod defs) + registry.tsx; CSR → spec emitter; gates J1 (generated modules compile) / J2 (validateSpec) / J3 (catalog.validate) in an isolated pinned package (zod v3/v4 split). Thesis test: every governed CSR accepted by both emitters — no protocol-expressiveness-equivalence claim.
  • Emitter asymmetry finding (measured, n=2 emitters): the a2ui target needs a ~400-line hand-authored profile; the json-render profile is near-empty because its catalog is generated from the contract — lossiness lives in the pairing, not the CSR or engine.
  • npm rename cycle: published as @aestheticfunction/dspack-emit@0.3.0 (old package deprecated with pointer); consumers swapped.
  • Contract-copy drift check in CI (dspack-gen#7).

Companion M2 tags: ds-mcp@m2, dspack@m2, dspack-gen@m2.