Skip to content

docs: document the shipped ./browser + ./adapter-types subpaths; backfill five releases - #56

Merged
ryandmonk merged 1 commit into
mainfrom
docs/ecosystem-sync
Aug 10, 2026
Merged

docs: document the shipped ./browser + ./adapter-types subpaths; backfill five releases#56
ryandmonk merged 1 commit into
mainfrom
docs/ecosystem-sync

Conversation

@ryandmonk

Copy link
Copy Markdown
Contributor

From an ecosystem-wide documentation audit. The package shipped 0.2.0 → 0.3.2 with real behavior changes and no doc updates.

  • ./browser was documented nowhere despite shipping in 0.3.2. It's the boundary dspack-studio's Composer uses to run the governed pipeline in the page (gates + emission in the browser; only the proposal leaves), and the node:crypto aliasing caveat lived only in a source header.
  • ./adapter-types appeared only in a 0.1.3 changelog line. It's the seam a host implements its own provider against — dspack-studio's agent uses it for the OpenAI-compatible adapter, which deliberately does not live in this package.
  • Gate scope was stale: S2 omitted sub-component containment (0.3.0, spec v0.4 §5.1) and that containment errors are repairable in-loop; S3 omitted requiredCategories (0.2.2, §4.3).
  • CHANGELOG stopped at 0.2.0 — backfilled 0.2.1 / 0.2.2 / 0.3.0 / 0.3.1 / 0.3.2 and fixed the emit peer-range sentence it left narrow.
  • Cross-reference to dspack-emit's exit codes omitted 5 (--strict-surface).
  • docs/CONTRACT-PIN.md said the contract migration is "gated on the dspack-emit representation milestone" — that shipped as emit 0.6.0, and this package already admits ^0.6.0, so the pin is now a reviewable fixture-corpus decision rather than a wait.

Verified: npm test 138 passing; the documented context command runs against the pinned fixture. The CLI, exit codes, adapters, /core, env var, and every fixture reference audited clean and are untouched.

🤖 Generated with Claude Code

…ckfill five releases

The package went 0.2.0 → 0.3.2 with real behavior changes and no doc updates,
so the README described a package two gate-scopes and two export subpaths
behind what npm actually ships.

- `./browser` (shipped in 0.3.2) was documented nowhere. It is the boundary
  dspack-studio's Composer runs the governed pipeline on in the page — gates
  and emission in the browser, only the proposal leaves — and the
  `node:crypto` aliasing caveat existed only in a source header.
- `./adapter-types` was documented only in a 0.1.3 changelog line. It is the
  seam a host implements its own provider against (dspack-studio's agent uses
  it for the OpenAI-compatible adapter that does NOT live in this package).
- S2's documented scope omitted sub-component containment (0.3.0, spec v0.4
  §5.1) and the fact that containment errors are repairable in-loop; S3's
  omitted `requiredCategories` (0.2.2, §4.3).
- CHANGELOG stopped at 0.2.0. Backfilled 0.2.1, 0.2.2, 0.3.0, 0.3.1, 0.3.2
  and corrected the now-narrow emit peer range sentence.
- The cross-reference to dspack-emit's exit codes omitted `5`
  (`--strict-surface`).
- docs/CONTRACT-PIN.md still said the migration is "gated on the dspack-emit
  representation milestone" — that milestone shipped as emit 0.6.0 and this
  package already admits ^0.6.0, so the pin is now a reviewable
  fixture-corpus decision, not a wait.

Verified: `npm test` 138 passing, and the documented `context` command runs
against the pinned fixture.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 10, 2026 19:09

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates dspack-gen’s public documentation to reflect shipped subpath exports and previously undocumented behavior changes across releases 0.2.1–0.3.2, aligning the README/contract pin rationale/changelog with current package behavior.

Changes:

  • Expanded gate documentation (S2 containment; S3 requiredCategories) in README.md.
  • Documented the shipped ./browser and ./adapter-types subpaths and their intended usage in README.md.
  • Backfilled CHANGELOG.md entries for 0.2.1, 0.2.2, 0.3.0, 0.3.1, 0.3.2; updated docs/CONTRACT-PIN.md rationale around the emit milestone being shipped.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 1 comment.

File Description
README.md Updates gate descriptions and documents ./browser + ./adapter-types usage.
docs/CONTRACT-PIN.md Clarifies why the fixture contract pin remains and updates milestone status context.
CHANGELOG.md Adds missing release notes for 0.2.1–0.3.2, including ./browser export documentation.
Suppressed comments (2)

docs/CONTRACT-PIN.md:23

  • This paragraph explains the dspack-emit representation milestone has already shipped (0.6.0), but the Removal section below still reads as if that milestone is pending. Updating the Removal wording will keep the doc internally consistent with the new rationale.
goldens and grammar corpus against the production contract.

**Enforcement:** the sync check verifies the pinned artifact's sha256 on every run (a pinned ref must be immutable; a change means force-push or CDN mismatch — `TAMPERED`, exit 1), still fails on local drift, and always prints how far behind `main` the pin sits. Verified: clean → 0, mutated hash → 1, restored → 0.

**Removal:** after the emit representation capabilities land and the profile migration completes — remove the `pin` block, `node scripts/check-sync.mjs --write`, regenerate goldens, commit together.

README.md:153

  • The PR description says the README’s cross-reference to dspack-emit exit codes was updated to include code 5 (--strict-surface), but the Exit codes section in this README still only mentions 3 and 4. Please update that earlier Exit codes note so the docs match the PR description.
`@aestheticfunction/dspack-gen/adapter-types` exposes the adapter interface
alone (`GenerationAdapter`, `GenerateRequest`, `GenerateResult`,
`AdapterOutputError`, `parseJsonOutput`) for hosts implementing their own
provider — the seam dspack-studio's agent uses for its OpenAI-compatible
adapter.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread README.md
Comment on lines +136 to +140
`@aestheticfunction/dspack-gen/browser` is the **browser-safe** subpath: the
same `runPipeline` plus `ScriptedAdapter`, without the Node-only adapters and
emitter plumbing, so a page can run the governed pipeline itself and bring its
own adapter for the model turn (dspack-studio's Composer does exactly this —
gates and emission in the browser, only the proposal goes out):
@ryandmonk
ryandmonk merged commit bbd8029 into main Aug 10, 2026
3 checks passed
@ryandmonk
ryandmonk deleted the docs/ecosystem-sync branch August 10, 2026 19:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants