Releases: aestheticfunction/dspack-emit
Release list
M2 — dspack-emit: second target + npm rename
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.
M1 — dspack surface → A2UI emitter
Milestone 1 of the AF governance layer. This tag marks dspack-to-a2ui as the pipeline's A2UI emitter:
- Surface emission: dspack surface v0.1 → A2UI v0.9 messages (
--emit-surface,emitSurface), projection knowledge as profile data (surfacePlandirectives), every synthesis audited as a warning — nothing silent. - Emitter gates A1–A3 (schema-compile / catalog-shape / instance validation), the architecture-wide names for the existing ajv gates; the render demo hosts the governed Generate view driven by
dspack-gen serve. - Library boundary: exports map + declarations, pack-and-install verified; consumed by dspack-gen as a git dependency pinned to this SHA (
b47a2cf). npm publish is a deliberate open decision. - Input contract at dspack v0.3 (mirrors dspack@m1).
Companion M1 tags: dspack@m1, dspack-gen@m1.
Addendum: main has since advanced two commits past this tag (#8, a demo-only "scripted fixture replay" label — demo/ is outside the published package's files set). npm publish of 0.2.0 from main 101e925 therefore ships a tarball byte-equivalent to this tag's library content.
Rename note (2026-07-02): this repository was renamed dspack-to-a2ui → dspack-emit after the json-render target merged (ADR-D2; trigger fired on #9). The name above is the repo's name at tag time. The npm package remains @aestheticfunction/dspack-to-a2ui@0.2.0 until the next publish (then @aestheticfunction/dspack-emit, with the old package deprecated).