Repository navigation
fix(stryker-js-cli-contract): release the manifest change made after v0.4.0 - #265
Merged
Merged
Conversation
…v0.4.0 #247 added three devDependencies to the published package.json after the v0.4.0 tag and recorded a none intent, so the packed content no longer matches the tag's recorded integrity and the release derive phase refuses with tag-integrity-mismatch. Replace the none intent with a patch intent.
ryanleecode
approved these changes
Oct 10, 2026
ryanleecode
left a comment
Contributor
There was a problem hiding this comment.
Verified: CI green on 3e64d9c, diff read, no open threads.
systemfsoftware-maker
added a commit
that referenced
this pull request
Oct 10, 2026
Brings in #262, #263 and #265 (main 4bf5952). One conflict, in packages/stryker-js/src/mutation-reporting.service.ts. #262 added `rememberedMutantIds` to MutationReportingInput and a stampRemembered step to the incremental-report writers. On this branch the service file declares the port only and the implementation lives in drivers/mutation-reporting.ts, so the input field goes on the port and stampRemembered plus its two call sites go into the driver. #262's check-cost-workspace fixture called Engine.RunEnvironment.stage, which this branch renamed to Engine.stage; the fixture now uses that.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Release on main has been red since #247: the derive phase refuses with
tag-integrity-mismatchfor@systemfsoftware/stryker-js-cli-contract@0.4.0. #247 added three devDependencies (released-stryker-js-cli-contract,released-stryker-js-plugin-interface,yaml) to the publishedpackage.jsonafter the v0.4.0 tag, and recorded that with anoneintent. The packed tarball no longer matches the integrity the tag records, and with no release intent the planner compares it against the tag and refuses. That also blocks publishing the ignorer minor that #259 merged.This PR replaces the
noneintent with apatchintent, so cli-contract releases 0.4.1. The integrity check is untouched: no allowlist, no skip, no re-recorded tag, no workflow edit.Drift sweep (every publishable package)
Each package tarball from
nix build .#workspace-tarballs(the input the derive phase uses), hashed the way the release tool does (sha512over the.tgzbytes), compared with theintegrityin its last tag's annotation. 16 packages: 12 match their tag, 4 drift:@systemfsoftware/stryker-js@systemfsoftware/stryker-js@v18.1.0sha512-1jS8pzkgkhUXVvK8N4QKDEXyZhlEEnPuYXFRAJ7f38rToHq2k8fu0OZsccLSOM8lbVofpReM86RwidNVtrYWSw==sha512-9BSv++UsO7REpCZEEaDFJaIFBoJ2GhC/nwLLPlx6LlRNserAF8H2shRqWa5gHzcoVreAalfCrMt7Wd56f0wpgg==README.md,dist/RunEnvironment.service-DGLf1gEn.d.mts,dist/RunEnvironment.service-DKUihCVC.d.mts,dist/index.d.mts…checker-grouped-cell,engine-keyed-verdict-reuse), already on main@systemfsoftware/stryker-js-cli-contract@systemfsoftware/stryker-js-cli-contract@v0.4.0sha512-Al6/xLfkql9rhXDAPkleSD69Q+iqRxyK2+ZlYPmJo21JI8hFApX3abL4h6w1fFhZ+vNF8/9dZbDr1MIQRzjn+w==sha512-UNI0x1c4CiZifcNf5Fo9iJN55Xm7uGSjAV1Dc1v5IuEY7m+aRrICdZxmEGJktjCQSybLBLS+SkBMnnK2yUSX0g==package.jsonnone)@systemfsoftware/stryker-js-typescript-checker@systemfsoftware/stryker-js-typescript-checker@v8.3.1sha512-SM3mFEyj3q3/3CgJs+1WXLBpBtfVKmN4ADLNxVIER57AbIdMAbBr/bU0kVhvJmUcxMEqQYy+8fiA/tgmgOsWdA==sha512-U0MEDT4OSh5RBHeqcXYokWitRPk9zxUKB2/zJoxvh96bZABxfxZ4zh0OSZX9XBvOZBWQQMK6giglFttUrlQUsQ==dist/main.mjs,dist/runtime.mjsexports-*,extends-legacy-candidate-order), already on main@systemfsoftware/stryker-ignorer-effect-schema-declarations@systemfsoftware/stryker-ignorer-effect-schema-declarations@v0.2.1sha512-5NIzS3PK361vXAevHLPcKrkwze597VbLsrC0utH/6VdWD9Y1/m53z9dpwp1hSe9ZRIJ3HKW7/PKTSXzemn7q3Q==sha512-cU3elqaIUVBeZNIBUjJ4ZLGUoQX2oy9+3/lPBbBqgz/jHoUh8nOuoN0Z2VQyA0EDWUqu4LoP5VbXq966bdHefw==README.md,dist/index.d.ts,dist/index.mjsschema-ignorer-recursion-budget, #259), already on mainThe other three drifted packages already have a pending intent of patch or higher on main, so this PR adds no second changeset for them. One would only put a duplicate line in their CHANGELOGs.
How I proved the derive phase passes
I ran the release tool's own
plancommand locally with the same release-tools build CI uses (pnpm-release-management@b9b4a1d) and the same tarballs:d2f018db4it exits 1 withrefused: tag-integrity-mismatch, package: @systemfsoftware/stryker-js-cli-contract@0.4.0, recorded: sha512-Al6/…, current: sha512-UNI0…, the same refusal as Release run 38015192958;plan-release: pending_intents=8 this_cycle=0 deferred=0 -> phase=version.How an agent consumes this
plan · derive phasefailure readingrefused: tag-integrity-mismatch, package: <pkg>@<version>, …, file: <path>means<pkg>'s packed content changed since its tag and no pending changeset releases it.<pkg>(patchwhen nothing a consumer imports or runs changes). Never re-record the tag or skip the check.nix build .#workspace-tarballsand compare it with theintegrityfield in the annotation of<pkg>@v<version>(git cat-file -p <tag>).apps/github-release-management/src/render.tsinsystemfsoftware/pnpm-release-management, which this repo uses through the reusablerelease.yml. A$GITHUB_STEP_SUMMARYblock naming the package, its tag and "add a changeset for " has to land in that repo. Doing it from here would mean editing.github/workflows/, which this change must not touch.Review
Report-only
ce-code-review(lite,mode:agent, base origin/main) on3e64d9c8a: no findings. For the supervisor it recorded the two judgement points above: no duplicate changesets for the three packages that already have intents, and the step summary belongs upstream.Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.