Skip to content

build: admit dspack-emit 0.5.0, repair the lockfile-masked refusal fixture (0.2.1) - #50

Merged
ryandmonk merged 2 commits into
mainfrom
build/emit-0.5.0-range
Aug 7, 2026
Merged

build: admit dspack-emit 0.5.0, repair the lockfile-masked refusal fixture (0.2.1)#50
ryandmonk merged 2 commits into
mainfrom
build/emit-0.5.0-range

Conversation

@ryandmonk

Copy link
Copy Markdown
Contributor

Narrow unblock for the emit-0.5.0 release train: downstream Studio cannot swap to dspack-emit@0.5.0 with a single-version dependency tree until dspack-gen's range admits it.

  • Range: '^0.3.1 || ^0.4.0''^0.3.1 || ^0.4.0 || ^0.5.0'; lockfile regenerated from the registry (resolves 0.5.0). Version → 0.2.1 for the tag-triggered OIDC release.
  • Finding: the committed lockfile had frozen emit 0.3.1 since July, and the "emitter REFUSAL" pipeline test was green only because of it — its fixture (card > card-header) stopped refusing at emit 0.3.2 (subFlatten). Verified not a 0.5.0 change: identical outcome under 0.4.1 and 0.5.0. Fixture repaired to table-footer inside a card — outside its compound under every emitter version, preserving the test's intent (profile-unplaceable surface → first-class failed-gate, exit 3, refusal recorded).
  • Evidence: 119/119 green against registry 0.5.0; no engine or contract changes; no API changes.

After merge: tag v0.2.1 publishes via the existing OIDC trusted-publishing workflow (no token).

🤖 Generated with Claude Code

…lockfile was hiding (0.2.1)

The emit dependency range ('^0.3.1 || ^0.4.0') predates emit 0.5.0, so
downstream consumers pinning the new emitter resolve TWO emitter versions —
the exact divergence the Studio trace-risk register has warned about since
July. Widened to '^0.3.1 || ^0.4.0 || ^0.5.0'; the lockfile now resolves
0.5.0.

Doing so surfaced a finding worth recording: the committed lockfile had
frozen emit 0.3.1 since July, and one test was green only because of it.
The "emitter REFUSAL" pipeline test placed a card-header INSIDE a card —
a shape that stopped refusing the day emit 0.3.2's subFlatten taught the
card plan to dissolve its own sub-family. Under every emitter since (0.3.2,
0.4.x, 0.5.0) that surface EMITS, so the test fails the moment the lockfile
moves at all — this is not a 0.5.0 behavior change (verified by running the
fixture against 0.4.1 and 0.5.0: identical outcome).

The test's intent — a lint-clean surface the profile cannot place refuses
as a first-class failed-gate artifact, never a crash — is still exactly
right. The fixture now uses table-footer inside a CARD: outside its
compound under every emitter version, which is what the 2026-07-03
live-eval discovery actually was.

119/119 green against emit 0.5.0 from the registry.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Copilot AI lite review requested due to automatic review settings August 7, 2026 01:18

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

This PR unblocks downstream consumers by expanding @aestheticfunction/dspack-emit’s allowed semver range to include ^0.5.0, regenerating the lockfile to resolve to 0.5.0, and updating the emitter-refusal fixture to remain meaningful under newer emitter behavior.

Changes:

  • Widen @aestheticfunction/dspack-emit dependency range to include ^0.5.0 and bump package version to 0.2.1.
  • Regenerate package-lock.json so the dependency tree resolves @aestheticfunction/dspack-emit@0.5.0.
  • Update the pipeline refusal test fixture and expectation from card-header to table-footer to preserve the “sub-component outside its compound parent” refusal semantics.

Reviewed changes

Copilot reviewed 2 out of 3 changed files in this pull request and generated no comments.

File Description
src/run/pipeline.test.ts Repairs the refusal fixture to use table-footer (a table subcomponent) so the test continues to exercise emitter refusal behavior under newer emitter versions.
package.json Bumps package version to 0.2.1 and admits @aestheticfunction/dspack-emit@^0.5.0 in the dependency range.
package-lock.json Updates the lockfile to match the new package version/range and resolves @aestheticfunction/dspack-emit to 0.5.0.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

…ified policy, third repo

dspack#35 moved dspack@main to the 32-component production contract, so
check:sync — which follows main and gates the test suite in CI — went red on
every branch here with no code change (surfaced by #50's first CI run; main
was green only by staleness). Identical situation, identical fix: the pin
policy already ratified and shipped in dspack-emit (805732c, sha256-verified,
self-announcing, tracked for removal) and mirrored in dspack-studio.

The pinned artifact is byte-identical to both sibling pins (sha256
ca19f841…). Verified: clean pin exits 0; a mutated expected hash exits 1
with TAMPERED; restored exits 0. Removal gated on the emit representation
milestone (aestheticfunction/dspack-emit#28), tracked here as #51.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ryandmonk
ryandmonk merged commit dc11982 into main Aug 7, 2026
2 checks passed
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