chore(release): promote v1.1.6 to main - #455
Merged
Merged
Conversation
chore: sync the v1.1.5 promotion merge into development
An identity fingerprint containing a control character passed configuration validation and passed verification, and was then silently rewritten into a verification failure by the binding store. Three layers disagreed about what a storable identity field is. The configuration schema and the probe parser both accepted control characters, while the durable binding store rejected any code point below 0x20 or equal to 0x7f. A fingerprint that genuinely matched its probe therefore returned "verified" and was immediately downgraded to failed / IDENTITY_BINDING_ UNAVAILABLE, because the store raises its record rejection outside save()'s own error handling, the manager catches it as a bare failure, and the resulting unavailable flag is process-sticky and so downgraded identity verification for every profile in that process. Extract the single shared predicate and use it in all three layers so they cannot drift again. An unstorable fingerprint is now refused at configuration time with its exact path, and unstorable probe evidence can never reach the store. Doctor appends the IDENTITY_* code to its explanation so the cause is recoverable from its output rather than requiring a patched build. Fail-closed behavior on a genuine binding-storage outage is deliberate and is unchanged. Probe tools whose response spans multiple lines remain unusable for identity verification; that limitation is now reported by validate instead of surfacing as an unexplained runtime failure. Refs #451 Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Finalize the compatible v1.1.6 patch release delivering the identity fingerprint fix from #451. No public API, dependency, credential, routing, redaction, or audit behavior changed, and fail-closed behavior on a genuine binding-storage outage is unchanged. Two boundaries tighten deliberately. A configuration carrying a control character in an identity fingerprint is now rejected at validation with its exact path, and probe output containing control characters is no longer accepted as an identity field. Neither could previously produce a durable binding, so no working configuration is invalidated. Publication remains gated on exact development-to-main promotion and protected OIDC trusted publishing, registry provenance, a fresh install, and package signature verification; this release does not authorize removal of any legacy behavior. Refs #453 Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Comment |
This was referenced Sep 18, 2026
Closed
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.
Pull request
Summary
Refs #453. Reviewed release promotion of
v1.1.6fromdevelopmenttomain. This is the only permittedmainpull request perCONTRIBUTING.md.Promotes three commits:
a4c6f15fix(identity): reject control characters in identity fingerprints (fix(identity): reject control characters in identity fingerprints #452)5ebba34chore(release): prepare v1.1.6 (chore(release): prepare v1.1.6 #454)3c6298bthe v1.1.5 ancestry sync merge already ondevelopmentSecurity impact
No public API, dependency, credential, routing, policy-enforcement, redaction, audit, or subprocess change. No dependency was added, removed, or moved; the packaged file count is unchanged at 58. Fail-closed behavior on a genuine binding-storage outage is unchanged.
Two boundaries tighten deliberately, both from #451:
Neither case could previously produce a durable binding, so no working configuration is invalidated. The
IDENTITY_*codes now appended todoctoroutput are fixed enumeration members, not identity values.Validation
npm run lint— pre-existing local.worktreesparser noise only;Linux qualitypasses in CI.npm run typecheck— clean.npm test— 162 files, 2003 passed, 34 skipped, 0 failed.npm run build— success.node dist/cli/main.js schema— success.npm run check:pack—Package contract verified (58 files).node dist/cli/main.js version— reports1.1.6.Linux qualityandVerify. One Windows Node 22 run failed on annpm ci --offline120s timeout in the real-tarball install test and passed on re-run; Windows Node 20 and 24 passed that same test on the first attempt.tests/fixtures/fake-upstream-runtime.mjsis not modified, so the named-host evidence hash is intact.CHANGELOG.mdare updated.After merge
Create a GitHub Release for
v1.1.6at the exact currentmaincommit to trigger.github/workflows/publish.yml, then verify registry version and provenance, verify the GitHub Release and workflow evidence, and openchore/sync-main-ancestry-v116to back-merge this promotion intodevelopment(merge commit, never squash) so the branches do not drift.🤖 Generated with Claude Code