Skip to content

chore(bootstrap): pin a7cb962f8920 and re-record digests - #86

Merged
bdelanghe merged 1 commit into
mainfrom
claude/front-desk-not-working-6993hp
Aug 1, 2026
Merged

chore(bootstrap): pin a7cb962f8920 and re-record digests#86
bdelanghe merged 1 commit into
mainfrom
claude/front-desk-not-working-6993hp

Conversation

@bdelanghe

Copy link
Copy Markdown
Contributor

The bump #84 needs, done by hand because the pin job could not do it.

main is currently red on schema: bootstrap-pin.test.mjs asserts FRESHNESS on push, and the pin still names e7126e4c274d, which predates #84's changes to session-start-dispatch.mjs and register-mcp.mjs. Any session without .github attached is being served the pre-#84 files from the fallback path. This is the designed hand-off — PIN cannot name a merge commit before that commit exists — it just did not complete.

Why the automation did not do it

The pin job minted its brokered App token and passed the pull_requests: write assertion, then failed one step later on the push:

remote: Permission to bounded-systems/.github.git denied to bounded-systems-front-desk[bot]
fatal: unable to access 'https://github.com/bounded-systems/.github.git/': The requested URL returned error: 403
##[error]Process completed with exit code 128

The installation is missing contents: write on this repo. Note the job asserts the scope it needs to open the PR but not the one it needs to push the branch — so this surfaced as a bare 403 at exit 128, and none of the named ::error annotations below it ran. That is the same argument the assertion step's own comment makes about gh pr create, one step earlier in the sequence. Filed as a follow-up; this PR does not touch the workflow.

Contents

Verification

107 tests pass with GITHUB_EVENT_NAME=push, which is the setting that asserts FRESHNESS — i.e. checked under the condition that is currently failing on main, not just the PR-mode one.


Generated by Claude Code

By hand, because the `pin` job could not do it. Its brokered App token minted
and passed the `pull_requests: write` assertion, then 403'd one step later on
the push:

    remote: Permission to bounded-systems/.github.git denied to
            bounded-systems-front-desk[bot]
    fatal: ... The requested URL returned error: 403

So the App installation is missing `contents: write` on this repo. The job
asserts the scope it needs to OPEN the PR but not the one it needs to PUSH the
branch, which is why this surfaced as a raw 403 rather than the named error the
step was written to produce. Filed separately; this commit just gets main green.

Also corrects a comment in the canonical bootstrap text that #84 disproved: the
setup script's `register-mcp.mjs` call is no longer the only one that can work,
so "this must happen here, not in the dispatcher" is wrong. It is still the one
ordered before launch, which is the reason to keep it — so the comment now says
that instead.
@bdelanghe
bdelanghe requested a review from a team as a code owner August 1, 2026 14:32
@bdelanghe
bdelanghe merged commit 47db577 into main Aug 1, 2026
8 checks passed
@bdelanghe
bdelanghe deleted the claude/front-desk-not-working-6993hp branch August 1, 2026 14:33
@github-project-automation github-project-automation Bot moved this from Todo to Done in Front Desk Aug 1, 2026
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants