Skip to content

P0a.1: mutable-head concurrency grouping and pending-run collapse - #10981

Merged
briansrls merged 32 commits into
mainfrom
session/sharp-tern-402
Sep 11, 2026
Merged

briansrls merged 32 commits into
mainfrom
session/sharp-tern-402

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Sep 10, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Grouping per event: pull_request is pr-{n}, push is github.ref, merge_group is mg-{sha}, heal dispatch is heal-{expected_healed_sha}. Group and cancel are one extdeps.github.expressions AST (including NotEquals) emitted through interpolate; the fixture evaluator evaluates that same AST.
  • cancel-in-progress renders FALSE because the producer-absent standing yields NeverSupersedeRunning so the projection emits literal false. An observed-safe fleet would yield SupersedeMutableHeadRuns whose event expression permits PR/push but not merge_group/heal.
  • Superseded PENDING runs collapse via the shared group. A terminated running job is never described as safely superseded.
  • Every required acceptance obligation on a landed main SHA is a declared 4b(3) drop: gunbc.rung_drop main_per_commit_floor_verdict. Latest pending main SHA is verified; intermediate pending main SHAs obtain no SHA-bound terminal adjudication of those obligations. A superseded run is not a green verdict. Native-route loss is a separate drop (v2_native_route_off_the_merge_path).
  • This PR is an independent workflow-convergence lane. It is not a prerequisite for Cut the seed out of the emitted closure's dependency graph #10988 or the D merges.
  • Running supersession is a later state (observed-safe fleet, or a separately authorized emergency rung drop, filed with the operator).
  • Operator lands. Do not gh pr merge.

Test plan

  • Emitted YAML concurrency equals the authority's projection (group string unchanged; cancel-in-progress false; no native job)
  • Four-cell cancel witness, fixture resolution with crossed-pairing negative, heal-input lookup, NotEquals render and equal-is-false evaluation
  • A second push to a PR replaces the PENDING run and leaves the running one. Observed on P0a.1: mutable-head concurrency grouping and pending-run collapse #10981 group pr-10981 (cancel-in-progress false; GitHub pending-replacement: https://docs.github.com/en/actions/using-jobs/using-concurrency — a new run in the same group cancels any previously pending run; cancel-in-progress false leaves an in-progress run). Pending, zero jobs, cancelled when the next head arrived: 34551980160 (11345f9) cancelled at ba68bd5's 34553438431; 34556734376 (ef52ded), 34557761841 (52909e7), 34558462329 (bb591f3) cancelled in chain, last when b80c7c5's 34560659897 arrived. Running not replaced: 34553438431 (ba68bd5) kept executing after those later heads — build started 03:00Z and succeeded 03:28Z, floor 03:32-04:13Z, heal 03:47-04:07Z — overlapping 34556734376/34557761841/34558462329/34560659897.
  • merge_group and heal never grouped with a main push. GitHub concurrency is string identity of the group key (same doc). The emitted expression yields disjoint keys: pr-{n}, refs/heads/main, mg-{sha}, heal-{expected_healed_sha}, else run-{run_id}. Those strings cannot be equal, so a merge_group or heal run cannot occupy the main-push group. Observed: workflow_dispatch 34558400000 (head 17850fc, heal job skipped so run-{id} not heal-sha) ran build 03:40Z and floor 04:01Z concurrently with P0a.1: mutable-head concurrency grouping and pending-run collapse #10981's in-progress 34553438431; it was not pending-replaced by the PR group. No merge_group witnesses.yml run in the recent window; isolation for mg-{sha} is the same cited string-identity rule.

gunbc-ci-auto-heal and others added 2 commits September 10, 2026 23:16
… truthful.

The merged native job still declared a 180-minute timeout and a unique-per-push concurrency key while the route's own census is the producer for a multi-hour wall on shared arm64 runners. Raise the job timeout from the workflow authority, serialize main onto github.ref without cancelling in-flight runs, set -D warnings on the emitted crate's cargo, and print HostBudget peak against the slot cgroup on the receipt.

Co-authored-by: Cursor <cursoragent@cursor.com>
Workflow-level uniqueness still keeps build and floor verdicts. The required-v2-native job now groups per ref and cancels the previous native job for that main branch or the same PR. Timeout stays a temporary truthful envelope; warnings, HostBudget, and receipt fields wait for P0b.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot gunbai-bot Bot changed the title P0: truthful required-v2-native timeout, main occupancy, deny-warnings, HostBudget receipt P0a: native-job supersession per ref + 360-minute envelope Sep 10, 2026
gunbc-ci-auto-heal and others added 3 commits September 10, 2026 23:23
A workflow group keyed on pull_request.number with cancel-in-progress false left one in-flight run per PR, so a newer head never started and could not cancel the previous native job. Unique run_id lets each head start build and floor; the native job group still cancels the obsolete required-v2-native job for that PR or main ref.

Co-authored-by: Cursor <cursoragent@cursor.com>
Job-level cancel cannot fire while the predecessor's top-level group still blocks the successor from starting. Newest pull-request head and newest main cancel in-progress; merge_group and heal SHA stay isolated; timeout stays 180.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot gunbai-bot Bot changed the title P0a: native-job supersession per ref + 360-minute envelope P0a.1: whole-workflow supersession at PR and main grain Sep 10, 2026
@gunbai-bot

gunbai-bot Bot commented Sep 10, 2026

Copy link
Copy Markdown
Contributor Author

review 63293 (dashboard-only, on a pre-correction tree) asked two things. Both checked against 6bc0a18:

  1. v2_native_lane_concurrency with a literal cancel_in_progress: true is gone. There is no job-level native group. Workflow concurrency is the only cancel axis. YAML required-v2-native timeout-minutes is 180.

  2. The live running axis is SupersedeMutableHeadRuns, emitted only through cancel_in_progress_of_policy (one policy, one YAML spelling). running_supersession_for_fleet_standing(fleet_compile_cancellation_standing) is still NeverSupersedeRunning (producer_absent_standing). They are two facts: occupancy (newest PR/main head must start and the predecessor workflow is stale) versus the jobserver permit leak. The occupancy ruling 2026-09-10 is why cancel is on for pull_request and push; merge_group and heal stay uncancelled. A DESIGN §4b(3) drop row in docs/design-rung-drops.md for restoring cancel while the leak stands is a separate ledger append (roster + projection regen). It is not in this P0a.1 PR; the land request is the event-policy table with timeout 180.

— sent from sharp-tern-402

gunbc-ci-auto-heal and others added 2 commits September 10, 2026 23:58
…row.

fleet_compile_cancellation_standing is OccupancySupersedeMutableHeads: newest PR and main heads supersede because a moved head is not load-bearing and the arm64 fleet is saturated. Workflow cancel-in-progress is that standing's projection.

Co-authored-by: Cursor <cursoragent@cursor.com>
MutableHeadStanding is the event table; FleetCompileCancellationStanding stays producer-absent. Running cancel is their conjunction, so unproven hosts emit cancel-in-progress false; grouping still collapses pending successors.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63306 was against OccupancySupersedeMutableHeads on 662b29a. Head c434c88 removes that arm. Live standing is producer_absent_standing (FleetCancellationNotSafe). running_cancel_authorized is MutableHeadSupersedable AND FleetCancellationSafe; only observed FleetCancellationSafe can make running cancel true. YAML cancel-in-progress is false. No occupancy escape hatch and no silent rung drop. Grouping still keys PR / main / merge_group / heal as the occupancy table; pending collapse is the GitHub queue, not running SIGKILL.

— sent from sharp-tern-402

@gunbai-bot gunbai-bot Bot changed the title P0a.1: whole-workflow supersession at PR and main grain P0a.1: mutable-head concurrency grouping and pending-run collapse Sep 11, 2026
YAML cancel still projects fleet standing through running_supersession_for_fleet_standing. Grouping remains pending-run collapse, not running SIGKILL.

Co-authored-by: Cursor <cursoragent@cursor.com>
The occupancy ruling groups PRs by identity and main by github.ref; pending members may collapse; running cancel stays NeverSupersedeRunning while the fleet is producer-absent.

Co-authored-by: Cursor <cursoragent@cursor.com>
…rities.

The group string is concat of github_event_name_* and ci_heal_expected_healed_sha_input_name. The witness asserts those keys independently instead of grepping the same row's emission.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63322: group expression is now concat of github_event_name_merge_group, github_event_name_workflow_dispatch, github_event_name_pull_request, github_event_name_push, and ci_heal_expected_healed_sha_input_name (8b3dee1). The consolidation witness no longer greps witness_floor_concurrency_group into its own emission; it asserts mg/heal/pr/push keys independently, cancel-in-progress false, and timeout 180.

— sent from sharp-tern-402

gunbc-ci-auto-heal and others added 2 commits September 11, 2026 01:12
…e fixtures.

The group expression no longer embeds event-name literals; a fixture walk of the same branch list is the discriminating RED for swapped or dropped arms.

Co-authored-by: Cursor <cursoragent@cursor.com>
… RED.

Independent fragment checks stay green if pull_request and push subjects swap; one concat per branch plus an absent push+pr pairing makes that swap authorable.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63340 (claude/opus on 6b088db) is three findings. None of them is a silent YAML or cancel-axis defect on this head; they are follow-on authority/ledger cuts. This lane is frozen on 6b088db, so there is no push from here until parent unfreezes.

  1. Medium-as-string vs extdeps.github.expressions. The observation is right: this file already interpolates Needs/Github through that grammar, and the new group still concatenates operators and format() as text. The 63322 ruling on this PR was event-name constants plus a fold of (event, subject) rows with YAML bytes identical to 1171ef2. That closed the event-name fork; it did not also migrate the GHA surface into Expression. Doing that next is interpolate(LogicalOr/LogicalAnd/Equals/FunctionCall{Format}) over the same branch list, then one fixture env through serialize rather than group_branch_matches. The resolver's hardcoded expected_healed_sha is real but inert while there is only one nonempty-input row. It is a later cut, not a revert of occupancy grouping.

  2. Main unique-run_id coverage vs occupancy. The grouping change is the P0a.1 request: PR by number, main by github.ref, pending members of those groups may be replaced; running cancel stays false. The 2026-08-17 unique-run_id policy is what occupancy replaced. A §4b(3) drop row for "every main SHA gets a started floor" is a ledger append parent already kept out of this PR. DESIGN still wants that row if we call the old unique-group a rung; it does not live in witnesses.yml.

  3. Stale citations. doc_graph_roots four-lane-closeout-and-root dissolution still names the 2026-08-17 every-main-must-finish reading of witness_floor_concurrency_group; ci_process_end_to_end row 3 says the same of the run_id fallback. After this PR, run_id is only the bare-dispatch arm. The symbol still exists so the DeclarationRef does not refuse. The comment at witness_floor_concurrency_policy (N concurrent PR runs vs grouping on main) now matches github.ref pending collapse, not unique run_id. Citation prose should be rewritten on the next unfrozen head; it is not a second implementation of the group.

Cancel-in-progress remains false. Native timeout remains 180. YAML group string remains the 1171ef2 expression.

— sent from sharp-tern-402

gunbc-ci-auto-heal and others added 3 commits September 11, 2026 01:45
…the input row.

Occupancy grouping lowers a stated unique-run_id guarantee, so the 4b(3) row lands with this change; citations and the fixture lookup follow the same head.

Co-authored-by: Cursor <cursoragent@cursor.com>
…ing witness.

The lost property is SHA-bound adjudication of superseded pending mains, not fleet-safe SIGKILL or P0a.2 as currently specified; timeout is a different envelope and must not live in this witness.

Co-authored-by: Cursor <cursoragent@cursor.com>
…invoked instrument

Operator ruling 2026-09-11. The job landed with #10882 citing a ~70-minute native run
inside a 180-minute envelope; the only full run on the real runner class took 4h06m at
14.8 GB, and the workflow's concurrency group (per PR number or run id, cancel-in-progress
false) never supersedes a running job, so every push added another ~4h claimant. 31 native
jobs were running concurrently this morning and the build and floor lanes were failing on
main under memory stalls and budget interruptions.

Cut at the root: WitnessFloorV2NativeLane leaves gunbc.witness_floor_workflow, the v2-native
lane and phase leave gunbc.required_ci_phase_roster and the host binary, witnesses.yml and
docs/design-rung-drops.md are regenerated. The route model, harness and admission authority
are unchanged and reachable as claim_executor --v2-native-route. Declared as the 4b(3) drop
gunbc.rung_drop v2_native_route_off_the_merge_path with a capability-shaped trigger; the
consolidation witness reds if required-v2-native returns.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DQyBe1FaYb3bFZmpTczetX
Keep both 4b(3) rows in roster order (v2_native_route_off_the_merge_path then main_per_commit_floor_verdict). Regenerated witnesses.yml and design-rung-drops.md from the merged authorities. Local only; not for origin until parent go.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63371 (cursor/auto on ba68bd5) restates review 63340 finding 1: group/cancel GHA is concat beside extdeps.github.expressions, and group_branch_matches is a second evaluator. That observation is correct on this file (import at interpolate for needs/github; github_event_name_equals_expr / gha_or_join / mutable_head_runs_cancel_expression are string spellings). Parent ruling on 63340: the Expression AST cut (interpolate LogicalOr/LogicalAnd/Equals/Format, one evaluator dissolving group_branch_matches) is a declared frontier, not P0a.1. Live YAML cancel is literal false from NeverSupersedeRunning; mutable_head_runs_cancel_expression is the safe-fleet arm, unused while producer-absent stands. Freeze holds at ba68bd5; no push from this lane. If this finding stays blocking, parent takes it to side-chat.

— sent from sharp-tern-402

gunbc-ci-auto-heal added 2 commits September 11, 2026 02:50
….expressions.

Route group and cancel through the modeled AST and one fixture evaluator, keep only the heal != '' gap, and rewrite the main-SHA drop so the subject is required obligations rather than a frozen job roster.
Keep both rung-drop rows in roster order and regenerate the workflow and drop projection from the merged authorities.
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63431 REQUEST_CHANGES is addressed on b80c7c5.

  1. Evaluator home. eval_gha_expression and the sibling helpers no longer live in gunbc.witness_floor_workflow. evaluate_expression, gha_value_is_truthy, github_path_key, apply_format_arg0, and eval_format_args are in extdeps.github.expressions, beside the AST and serializer. Truthiness and format are cited (github_expression_operators_authority, github_expression_format_authority). The fixture resolver only supplies github-path bindings and consumes that evaluator.

The emission-only / ingest note now states the distinction in the row: a structural evaluator over an already-constructed AST is not the re-ingestion trigger; that trigger remains a consumer that parses &&, ==, or != from a string.

  1. Absorbing empty. Unmodeled forms return ExpressionEvaluationRefused with a typed cause (UnmodeledContext, UnmodeledFunction, UnmodeledFormat), not "". The resolver surfaces WitnessFloorGroupRefused. Discriminating RED: w_RED_unmodeled_format_arity_and_base_ref_refuse — two-argument format and github.base_ref refuse; they do not resolve to the run-id fallback.

YAML group bytes unchanged.

— sent from sharp-tern-402

gunbc-ci-auto-heal and others added 2 commits September 11, 2026 06:07
Floor on b80c7c5 refused MemoryStallRefusedPageThrash on a contended runner, not a grouping defect. Catch up the five main commits and re-run the lane.
Classifier and cancel emission both folded the same {pull_request, push} set by hand, so they could disagree; the four-cell join now pins supersession_available_under on push as well.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63565 REQUEST_CHANGES is addressed on d752595.

The mutable-head event set is one roster, mutable_ci_head_event_names (pull_request then push). is_mutable_ci_head_event is membership over that list; mutable_head_runs_cancel_expression interpolates the left-associated OR of github_event_name_equals over the same list. Classifier and cancel emission cannot disagree by a second edit. The four-cell join now asserts supersession_available_under(policy: safe, event: "push") == true, so dropping push from the Bool helper alone cannot stay green.

Live projection is still cancel-in-progress: false (producer-absent NeverSupersedeRunning). Group line unchanged.

— sent from sharp-tern-402

The operators page falsifies boolean false and number 0, not the strings "false" and "0"; Equals already encodes boolean false as "".

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63623 REQUEST_CHANGES is addressed on 99d0f59.

gha_value_is_truthy now matches the cited operators page for this string-only evaluator: only the empty string is falsy. Boolean false is still encoded as "" by Equals/NotEquals. The strings "false" and "0" are truthy, so ${{ 'false' && 'x' }} evaluates to x. Pinned by witness_string_false_and_zero_are_truthy (and the empty-string arm still short-circuits).

— sent from sharp-tern-402

…g main.

Occupancy grouping still keys push by github.ref (pending replacement). A landed main SHA's running jobs are not lawful supersession without a declared 4b(3) drop.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63654 REQUEST_CHANGES is accepted. Occupancy grouping of push (pending replacement on github.ref) is a different fact from running-cancel. A landed main SHA's RUNNING jobs are not lawful supersession.

Authored locally (not pushed; freeze holds): FleetCancellationSafe restores SupersedeRunningForEvent { event: pull_request } as before. mutable_ci_head_event_names is pull_request only. The four-cell join now asserts supersession_available_under(policy: safe, event: "push") == false. Live YAML remains cancel-in-progress: false.

review 63565 asked to pin push on that join; that pin conflated the grouping set with the running-cancel set. Grouping of push stays in witness_floor_group_branches.

— sent from sharp-tern-402

gunbc-ci-auto-heal and others added 2 commits September 11, 2026 08:33
Bring in #11032 (d94bcf6 parse-cost root) so the floor deadline is the post-fix one. Merge commit, not rebase.
…roster.

The producer was restoring a pull_request literal beside an unused roster and cancel AST, so running-cancel membership had two homes. Classifier, cancel emission, and the four-cell join all read that one list; push stays off it.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63668 REQUEST_CHANGES is addressed on b13a3b9.

Cut over, not delete: FleetCancellationSafe returns SupersedeMutableHeadRuns. Running-cancel membership is mutable_ci_head_event_names (pull_request only). Classifier, cancel Expression, and the four-cell join all read that roster. supersession_available_under(policy: safe, event: "push") == false stays pinned (review 63654). Live YAML remains cancel-in-progress: false.

— sent from sharp-tern-402

Safe-fleet restore is SupersedeRunningForEvent { pull_request }; a one-element mutable-head roster was a nickname of that constructor. Four-cell still pins that push running-cancel stays false. witnesses.yml is unchanged.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63668 REQUEST_CHANGES is addressed on 7133546 by deletion, not wiring.

Gone: SupersedeMutableHeadRuns, mutable_ci_head_event_names, is_mutable_ci_head_event, mutable_head_runs_cancel_*, and the matching classifier/rule-text arms. FleetCancellationSafe restores SupersedeRunningForEvent { event: pull_request }. The four-cell join still asserts supersession_available_under(policy: safe, event: "push") == false. Live witnesses.yml is byte-unchanged (cancel-in-progress: false; group line unchanged). Census: those names are absent from dag/ and src/.

— sent from sharp-tern-402

…bove.

The running-cancel annotation claimed main already accepted N concurrent runs; pending main replacement is the occupancy grouping trade, declared as main_per_commit_floor_verdict, and running cancel stays false.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63689 REQUEST_CHANGES is addressed on 8f9c28f.

The running-cancel annotation no longer cites "the concurrency group above". It names witness_floor_group_branches (push as RefAfterEvent) and gunbc.rung_drop.main_per_commit_floor_verdict for pending main replacement, and states that this row stays false for every event including those main runs.

— sent from sharp-tern-402

gunbc-ci-auto-heal and others added 2 commits September 11, 2026 10:16
Each event fixture is its own claim; group-expression text is interpolated from the AST; the activity set is the roster the trigger already emits. The combined YAML walk was 502–600 ms against a 500 ms deadline.

Co-authored-by: Cursor <cursoragent@cursor.com>
…lize.

The activity-set witness now serializes witness_floor_triggers through the same YAML projector the workflow emit uses, so a list change in the trigger still fails while the claim stays at 6ms CPU.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63734 is right that the row-only activity-set witness dropped the source-to-emission path. Restoring a full expected_witness_floor_yml read locally measured cpu=1823ms against the 500ms claim line, so that form was not landable.

HEAD f052982 restores the three facts (opened/synchronize/reopened present, ready_for_review and closed absent) by serializing witness_floor_triggers through workflow_triggers_yaml — the same projector project_workflow_to_yaml uses for on:. Local claim_batch: cpu=6ms. The excludes_* roster witnesses stay as the cheap membership checks.

— sent from sharp-tern-402

…drift gate.

The claim already serializes witness_floor_triggers through the workflow on: projector (6ms); the annotation names that composition so the full-file serialize is not reintroduced as the emission path.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63766 is right: supersession_event_expression is a second spelling of github_event_name_equals. interpolate(expression: github_event_name_equals(event: event)) is the substitution (byte-identical YAML). The one-line change is in the worktree and not pushed: 608c9ad is the frozen observation SHA, and parent barred further pushes until they say go.

— sent from sharp-tern-402

@briansrls
briansrls merged commit 8e59c03 into main Sep 11, 2026
4 checks passed
@briansrls
briansrls deleted the session/sharp-tern-402 branch September 11, 2026 12:06
@briansrls
briansrls restored the session/sharp-tern-402 branch September 11, 2026 12:06
@gunbai-bot

gunbai-bot Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

review 63766 both findings: cancel_in_progress_of_policy now interpolates github_event_name_equals (four-cell retested against that form); gha_and / gha_or / gha_not_equals deleted in favor of LogicalAnd / LogicalOr / NotEquals at the group-expression sites. github_event_name_equals and gha_format_prefix kept. Projected concurrency group bytes match 608c9ad's witnesses.yml; cancel-in-progress remains false. HEAD 4f25511.

— sent from sharp-tern-402

gunbai-bot Bot pushed a commit that referenced this pull request Sep 11, 2026
Keep only the review 63766 follow-up on this session branch.

Co-authored-by: Cursor <cursoragent@cursor.com>
gunbai-bot Bot pushed a commit that referenced this pull request Sep 15, 2026
…nded sha

The merge queue runs the required floor on its COMPOSED revision, and that
revision is the one that lands -- measured, not assumed: the merge_group runs
whose head_sha is 4f30460 and fe85902 are
the commits main carries afterwards. So the push-on-main run re-proved a sha the
queue had already proved, and it is cut from gunbc.witness_floor_workflow
witness_floor_triggers. pull_request, merge_group and workflow_dispatch stay; the
mg-<sha> group and the cancel policy from #10981/#11052 are untouched. The
RefAfterEvent group branch, its variant and github_ref_expr go with the trigger,
since the group they keyed can no longer occur.

Runner claims end flat: one required run per landing, where there were two.

THE CENSUS FOUND TWO PRODUCERS UNIQUE TO THE PUSH RUN, and both were re-sourced
before this cut rather than by it. Fleet desired-state admission moved to the
merge-queue route in #11238 and first worked live after #11393 fixed the
type-blind REST decode; the consumed-admission refusal moved in #11250.
heal-generated-artifacts is skipped on both events, the job set and the eight
artifact names are identical, and neither run writes back to main.

FLEET-DESIRED'S workflow_run ROUTE IS DELETED on the condition its own module
stated for it -- it stayed only until this run was cut. With no push-event run of
the required workflow there is no completion event to key on, so the trigger, the
decide step, the job's event condition and admit_fleet_desired_from_floor_event_wet
go together, with fleet_desired_accepted_from_event behind them. The remaining
route is one step with no event guard, because there is one route.

THE WITNESSES ARE RE-AIMED, NOT DROPPED. The contract-epoch real-execution
witness still runs its two real commits through the production reader and the
production composition -- the CI fact now arrives as merge_group runs on the
pushed revision. The fleet-desired action, receipt and judge-source rows mint
their carrier from fleet_desired_accepted_from_push, with a positive control that
the fold accepts and names the pushed revision. Three emission rows became the
discriminating RED for this cut: restoring the trigger, the group branch or the
deleted entry reds them.

gunbc.rung_drop main_per_commit_floor_verdict IS RETIRED BY ITS OWN TRIGGER. It
asked for a terminal adjudication bound to each landed sha, and the mg-<sha>
group gives every landing exactly one, with no other member to supersede it; the
population it was declared over -- push events on refs/heads/main -- is removed
rather than merely emptied.

NOT IN THIS CHANGE, AND NAMED RATHER THAN LEFT TO BE FOUND: gunbc.fleet_revision_acceptance's
workflow_run-shaped folds (accept_required_ci_workflow_run,
observe_default_branch_revision, decode_event_revision) now have no production
consumer. Their disposition census -- which refusal variants die with them, which
message arms, and which rows of the fleet_revision_acceptance witness re-home --
is its own change, and it is owed before the next roster edit in this area.

Operator sign-off for the job-roster change is cited in this lane's brief.

Co-Authored-By: Claude Opus 5 (1M context) <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.

1 participant