Skip to content

claw: the merger merges as TRI CLAW and on workflow_run of the required checks - #10474

Merged
gHashTag merged 1 commit into
masterfrom
claude/claw-merger-app-10396-5eced5
Oct 18, 2026
Merged

gHashTag merged 1 commit into
masterfrom
claude/claw-merger-app-10396-5eced5

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Closes #10396

Lane 3 of the TRI CLAW queue epic (#10393). Only .github/workflows/auto-merge-ready-prs.yml changes.

What changes

  • FR-001, merge as TRI CLAW. A new actions/create-github-app-token@v2 step mints a token with only permission-contents: write and permission-pull-requests: write (the merge-pr row of specs/claw/github_surface.t27, named in a comment). The merge step uses it, so the merge starts the push-triggered workflows on master. If CLAW_APP_PRIVATE_KEY / CLAW_APP_ID is unset (or the mint fails, continue-on-error), the merge falls back to github.token and says which one it used in $GITHUB_STEP_SUMMARY.
  • FR-002, workflow_run. The workflow also runs on workflow_run: completed of the four workflows that carry the base branch's required checks (Schema Validation, Issue Gate, Spec Parse Ratchet, Own Language), pull-request runs only, not cancelled ones. The PR comes from workflow_run.pull_requests[0], else from the open PR whose head is the run's head sha (forks); with no single PR the run judges nothing and never falls back to a sweep. The cron stays as the backstop.
  • FR-003. --match-head-commit is untouched on the merge; the gate script (find-ready) is untouched, so the merger self-test passes unchanged.
  • FR-004, concurrency. The group is per PR (number, or head sha for a fork run) for workflow_run and the bee's label event, and one sweep group for cron/manual runs. A single global group would not do: GitHub keeps one pending run per group and cancels older pending ones, and four required workflows finish per push. Because a sweep and a per-PR run can still meet on the same PR, the merge step now treats "already merged by another run" as success instead of a failure.

Budget note

The own-language budget is shrink-only (added lines must not exceed deleted lines, 40 per file), so this diff is +32/-32: historical narrative comments (the 2026-09-19 laptop story, the 2026-10-03 measurement paragraph, one || echo note) were trimmed to a line or two to pay for the new lines. No logic was removed.

Verification (Railway lab, not the Mac)

  • python3 tools/bees/merger_gate_selftest.py: exit 0, "0 failure(s) of 41".
  • YAML parses; triggers are schedule, pull_request_target, workflow_run, workflow_dispatch; --match-head-commit is still on both merge paths.
  • actionlint is not installed on the lab; run on the Mac as a read-only lint, it reports only shellcheck info/style notes (SC2086, SC2129) inside the unchanged find-ready script.

Not verified yet

  • The Success Criteria timings (median last-green-to-merged under 2 min on the first 5 merges; a push run on master within 1 min of an App merge) can only be measured after this lands.
  • Whether the TRI CLAW installation's repository ruleset lets the App merge is only known on the first real merge; if the mint or merge is refused the workflow falls back to / reports github.token.
  • Checks that also fail on other recent PRs (claw-sarif, Corpus ratchet, Verilog widths, t27b-native-*, withdrawn-live) are inherited, not caused here.

🤖 Generated with Claude Code

…ed checks (Closes #10396)

Mint a merge-pr token (contents write, pull_requests write) with
actions/create-github-app-token and merge with it so the merge starts the
downstream runs; fall back to github.token with a step summary when the App
secret is unset. Add a workflow_run trigger for the required checks' workflows
judging only that run's PR, a concurrency group per PR, and treat an
already-merged PR as success. --match-head-commit stays on every merge.
Narrative comments trimmed so the diff does not grow (foreign-line budget).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@gHashTag
gHashTag enabled auto-merge October 18, 2026 13:29
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-18 13:31:15 UTC

Summary

Status Count
Total Open PRs 50
PRs with Failing Checks 50
PRs with All Checks Green 0
READY 0
FAILING 50
PENDING 0
NO CHECKS YET 0

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=fad12492937a != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit 2dc0d37 into master Oct 18, 2026
25 of 28 checks passed
gHashTag added a commit that referenced this pull request Oct 18, 2026
…the new master tip (Refs #10397)

Census moved: quiet 'named a path but not quiet' 210 -> 220 and shell 'run: steps' 320 -> 324
(runner-does 301 -> 303). The claw-refresh job in gate-topology.yml adds run steps; the rest
of the movement came from master (the merger workflow, #10474) while this branch waited.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
gHashTag added a commit that referenced this pull request Oct 18, 2026
…#10474

#10474 rewrote auto-merge-ready-prs.yml so the merger runs as TRI CLAW on
workflow_run; the rewrite added two run: steps (both handed to bash by the
runner, 299 -> 301) and six steps that name a path without a quiet shape.
Master's cli-tri went red on that merge; blessed with tri census pin --bless
at master 6070e9b on the lab, byte-identical.

Refs #10469

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag added a commit that referenced this pull request Oct 18, 2026
… merge (Closes #10397) (#10482)

* claw: refresh -- update-branch every behind, conflict-free PR after a merge (Closes #10397)

specs/claw/refresh.t27 decides which open PRs get PUT .../update-branch after a push to master (held, draft, fork without maintainer edits, conflicting, unknown and current ones are skipped; at most 30, oldest first; fail closed on unreadable records). The claw-refresh job in gate-topology.yml only lists, feeds gen/c/claw/refresh.c and calls the endpoint.

The foreign-code shrink rule is paid by deleting two dead wave generators (scripts/gen_w658.py, gen_w659.py: referenced only by old wave reports).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* claw: re-bless the census for the claw-refresh job (Refs #10397)

tools/census/shell.txt: jobs 91 -> 92, run: steps 320 -> 322, runner-named shell 299 -> 301 (the new claw-refresh job in gate-topology.yml, two run steps, no shell: key).
tools/census/quiet.txt: named a path but not quiet 210 -> 214 (the same job's steps name paths; none is a quiet shape).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* claw: refresh -- tests for the 27 mutation survivors that were real gaps (Refs #10397)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* t27b ledger: name specs/claw/refresh.t27, the reference passes it (Refs #10397)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* claw: refresh -- drop the blank line at the end of the spec (review suggestion, Refs #10397)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* claw: re-seal after the final-newline fix and re-bless the census at the new master tip (Refs #10397)

Census moved: quiet 'named a path but not quiet' 210 -> 220 and shell 'run: steps' 320 -> 324
(runner-does 301 -> 303). The claw-refresh job in gate-topology.yml adds run steps; the rest
of the movement came from master (the merger workflow, #10474) while this branch waited.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
gHashTag added a commit that referenced this pull request Oct 18, 2026
…tforms' safe zone, a marketing clock (Closes #10469) (#10471)

* t27f token_floor: drone flights instead of hard cuts, text in the platforms' safe zone, a marketing clock (Closes #10469)

The owner on the #10451 reels: the text runs over itself, the transitions
are too jerky (fly like a drone camera, as in The Matrix), and the reel
should work as marketing.

- reel_marketing.t27 (new): seven measured overlay sources and the safe
  rect taking the widest margin of each edge, the hook clock, the reset
  window, the CTA hold and size, the 15-30 s length; sources listed.
- token_floor_scenes: each shot after the first opens with a flight -- a
  quintic Hermite in ln z and one in the screen px the centre sweeps,
  matching the drifts at both ends, a pull-back for long flights and a
  hover. Worst shove 20.1 px/frame^2 tall, 19.9 wide (bound 24); a hard
  cut would throw it more than 300. Tall layout inside reel_safe.
- token_floor: a label leaving the scene's safe rect fades whole.
- token_floor_mux: hook, CTA and safe-zone tests against reel_marketing.
- clamp01 written once (pbr_sphere), so duplicate-bodies is green; the
  t27b ledger names pbr_sphere (pass) and token_floor (blocked, type
  [N]T), cap 74 -> 75 for the one new non-pass spec.

Lab: test-report 0 FAIL, 0 vacuous on all five; seals rewritten; both
reels 15.000 s at -14.0 LUFS; four tall shards equal the full render.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* census: re-bless quiet 210 -> 216 and shell 320 -> 322 run steps after #10474

#10474 rewrote auto-merge-ready-prs.yml so the merger runs as TRI CLAW on
workflow_run; the rewrite added two run: steps (both handed to bash by the
runner, 299 -> 301) and six steps that name a path without a quiet shape.
Master's cli-tri went red on that merge; blessed with tri census pin --bless
at master 6070e9b on the lab, byte-identical.

Refs #10469

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* t27b ledger: max_not_pass 130 -> 132 for token_floor_scenes and token_floor_mux

Both were pass at 1ef60ae and are now blocked on ExprCall(@sin): the drone
flight's hover in token_floor_scenes calls @sin, and token_floor_mux uses
scenes. The CI ratchet on f0d69e4 counted 132 non-pass entries against
the cap of 130 (OVER CAP 1, every other column 0); the merge from master had
dropped this branch's cap edit.

Refs #10469

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.

claw: the merger merges as TRI CLAW and on workflow_run, so a merge starts the downstream runs

1 participant