chore(bootstrap): pin 9536835c92d4 and re-record digests - #98
Merged
Conversation
By hand again, for #97, because the `pin` job still cannot push its bump branch (#87 — the App installation lacks `contents: write` on this repo). Third hand-bump in the same pattern. #97 changed session-start-dispatch.mjs, a fetched file, so main is serving older bytes than the tree contains to any session without `.github` attached — and FRESHNESS is asserted on push, so `schema` is red on main until this lands. Only the dispatcher's digest moved; register-mcp.mjs and stop-hook-git-check.sh are byte-identical at the new pin. Verified with GITHUB_EVENT_NAME unset, the mode that asserts FRESHNESS rather than reporting it: 6 pass, and 109 across `.claude/`. This is the designed hand-off running with its automated half broken, and every PR touching `.claude/` will keep needing it until #87 is fixed.
bdelanghe
marked this pull request as ready for review
August 3, 2026 19:06
bdelanghe
added a commit
that referenced
this pull request
Aug 3, 2026
Two changes, one cause (#87). 1. Point at `front-desk-pin`, not `front-desk`. The fan-in entry carries no `contents`, so it could never push the bump branch, and it cannot be given any: it is deliberately unpinned and `contents` is privileged, so the broker would refuse the entry outright and take every other consumer with it. The separate pinned entry is bounded-systems/infra#172. 2. Do not use the token when the mint step FAILED. `require: contents, pull_requests` (#93) worked exactly as designed on the merge of #97 — it reported `contents(granted: absent)` and named both places the gap could live. Then `continue-on-error: true` swallowed the verdict, the job used the token anyway, and died on the very push the assertion had just said would fail. An assertion whose verdict nothing consumes is decoration. The fallback is not a downgrade: github.token holds contents:write here and pushed this branch fine before the broker was wired in (#79). So on a scope gap the branch now LANDS with the correct pin and only opening the PR is lost — a click, versus the full hand-regenerate it costs today (#79, #86, #89, #98). A third annotation separates "broker reachable, scopes insufficient" from "broker unreachable", since the two are fixed in different systems.
This was referenced Aug 3, 2026
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.
The follow-up #97 could not do on its own branch:
PINis a commit and cannot name a merge commit that does not exist yet.By hand again, because the
pinjob still cannot push its bump branch — #87, the App installation lackscontents: writeon this repo. This is the third bump in this pattern (#79, #86, #89), and the automated half has never once completed.Why this is urgent rather than tidy
#97 changed
session-start-dispatch.mjs, which is in the verified fetch set. Two consequences on main right now:.githubattached installs the pre-I1: replace the dispatcher's bespoke repairs with a manifest, gated against the canonical field text #97 dispatcher from the pinned commit — older bytes than the tree contains, and nothing else reports it, because the attached checkout always wins locally.pull_request), soschemais red on main until this lands.What changed
Only two lines, both written by
gen-bootstrap-pin.mjsrather than by hand:register-mcp.mjsandstop-hook-git-check.share byte-identical at the new pin, so their digests are untouched — which is the expected shape, since #97 changed only the dispatcher.Verification
Run with
GITHUB_EVENT_NAMEunset — the mode that asserts FRESHNESS instead of reporting it, i.e. what main will do:bootstrap-pin.test.mjs: 6 pass, 0 fail (INTEGRITY and FRESHNESS both green)..claude/suite: 109 pass, 0 fail.Generated by Claude Code