Skip to content

test(ci): drop the pinned dependency version literals from the publish contract - #513

Merged
bytemain merged 1 commit into
mainfrom
gogo/drop-pinned-store-version
Sep 4, 2026
Merged

test(ci): drop the pinned dependency version literals from the publish contract#513
bytemain merged 1 commit into
mainfrom
gogo/drop-pinned-store-version

Conversation

@stdrc

@stdrc stdrc commented Sep 4, 2026

Copy link
Copy Markdown
Member

Unblocks the Check CLI publish dependency contract failure that is currently red on main and therefore on every PR, including #512 (which unblocks the Hands production deploy).

Why these two asserts do nothing

assert node_version  == "0.5.1"
assert store_version == "0.1.0"

scripts/resolve-workspace-dependency-version.mjs is five lines: it throws unless the consumer declares workspace:*, throws unless the dependency package has a version, and then prints that package's own version field verbatim. Comparing its output to a literal therefore asserts only that packages/*/package.json still says what it says — while going red on every legitimate version bump. #510 bumped agent-session-store to 0.2.0 and the pinned copy failed the publish contract check for a release it had nothing to say about.

The resolver call is kept. That call is the real gate.

The three surviving gates, each shown able to fail

mutation result
remove the Verify agent-session-store dependency is published step from publish-cli.yml RED — step lookup raises
change packages/cli/package.json's @botiverse/agent-session-store from workspace:* to 0.2.0 RED — resolver throws, check_output raises
replace either npm view "<pkg>@${version}" version line with something else RED — step-body assertion

Restored, the check passes:

Publish CLI dependency contract clean: both dependencies are declared workspace:*,
the publish workflow resolves them through the resolver, and each is npm view-gated before publish.

Provenance

@artin ruled twice that these literals should be deleted rather than bumped. @曜衡 initially argued for keeping them as a drift gate, then withdrew after the resolver source was read, and asked that the surviving gates be proven red-able first — that is the table above. I authored this because it blocks my own #512 and no owner had claimed it; I will not review or merge it, and anyone who wants to take it over should feel free.

…h contract

`assert node_version == "0.5.1"` and `assert store_version == "0.1.0"` looked
like drift gates but were restatements of their own inputs.
resolve-workspace-dependency-version.mjs prints packages/*/package.json's
`version` field verbatim, so comparing that output to a literal only asserted
that the file still says what it says — while going red on every legitimate
bump. #510 bumped agent-session-store to 0.2.0 and the pinned copy failed the
publish contract check for a release it had nothing to say about, blocking
unrelated work (#512, and with it the Hands production deploy).

The resolver CALL is kept, because that is the actual gate: it throws unless
the consumer declares workspace:* and the dependency package carries a version.

Three real gates survive, each demonstrably able to fail:
  remove the verify_store step from publish-cli.yml   -> RED (step lookup)
  change workspace:* to a fixed version               -> RED (resolver throws)
  drop either 'npm view <pkg>@${version}' line        -> RED (step body assert)
Restored, the check passes. @artin ruled these literals should go; @曜衡 asked
for the surviving gates to be shown red-able first.
@bytemain
bytemain merged commit 1022d2d into main Sep 4, 2026
7 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