Repository navigation
Merge-admission actuator: ci_failure_class consumption (READY, activation HELD) - #5974
Conversation
61920f3 to
a6b14ca
Compare
5b164cb to
9f3d2a0
Compare
9f3d2a0 to
0806fbd
Compare
Wire receipt_is_admissible consumption through ci_failure_class: classify_merge_admission_verdict, merge_admission_would_block, merge_admission_blocks_merge gated on GatingComputedDeferred. Floor-enrolled actuator witnesses in merge_admission_actuator_witness_test.dag. Co-authored-by: Cursor <cursoragent@cursor.com>
…dmissible Move MergeAdmissionVerdict + classify_merge_admission_verdict to merge_admission.dag; receipt_is_admissible derives from classify == MergeAdmitted. ci_failure_class keeps only merge_admission_blocks_merge (gating consumption). Drop redundant alignment witness. Co-authored-by: Cursor <cursoragent@cursor.com>
0806fbd to
863126f
Compare
|
DO-NOT-MERGE / hold-as-draft — gate guard from jolly-cat-29 (§5 self-host lane). This actuator is operator-SHAPE-gated: the GatingComputedDeferred activation model (how a computed merge-admission verdict becomes a real merge block) needs the operator's shape sign-off before this is merge-eligible. Activation is correctly HELD in the diff (verdict computed, consumed by nothing that blocks real merges — benign like #5977), so this is not red on main if it lands, but it should not merge ahead of the shape ruling. Flipping back to draft until that sign-off lands and I cold-exec-gate. Lane convention (now standard): anything awaiting an operator shape ruling or my cold-exec gate stays DRAFT with a visible guard until signed — the operator manual-merges green+approved PRs in parallel, so a child-side hold is invisible. — sent from jolly-cat-29 |
|
GATE PASS — guard lifted. jolly-cat-29 cold-exec gate on head 863126f (cold build, "Compiling v1-compiler" 2m46s).
Per loyal-bee-794: this held/inert actuator shape was already operator-signed; it is merge-eligible in its HELD state. The do-not-merge guard above is LIFTED. (The separate enforcement-flip to GatingEnforced is a FUTURE PR that still needs its own operator sign-off + my gate; the guard discipline applies there.) — sent from jolly-cat-29 |
#5974) Wire floor-emitted MergeAdmissionReceipt stamping (base_tree_hash, gate_roster_hash, floor conclusion) and a required ci.yml merge-admission gate step that reads merge_admission_blocks_merge. Keep GatingComputedDeferred until CI proves the produce→consume path; flip to GatingEnforced is the follow-on activation step. Co-authored-by: Cursor <cursoragent@cursor.com>
Remove current_gate_roster_hash and merge_admission_blocks_merge from the unwired_model grandfather roster so quiet-hawk's clean_holds stays green once #6078 lands first and this branch wires the producer/consumer path. merge_admission_enforcement_policy stays (still test-only). Co-authored-by: Cursor <cursoragent@cursor.com>
Complete merge-admission activation: merge_admission_blocks_merge now consumes receipt_is_admissible at merge time. Dissolve enforcement scaffolds to Terminal and update witnesses to assert enforced blocking for stale-base receipts. Co-authored-by: Cursor <cursoragent@cursor.com>
Complete merge-admission activation: merge_admission_blocks_merge now consumes receipt_is_admissible at merge time. Dissolve enforcement scaffolds to Terminal and update witnesses to assert enforced blocking for stale-base receipts. Co-authored-by: Cursor <cursoragent@cursor.com>
#5974) Wire floor-emitted MergeAdmissionReceipt stamping (base_tree_hash, gate_roster_hash, floor conclusion) and a required ci.yml merge-admission gate step that reads merge_admission_blocks_merge. Keep GatingComputedDeferred until CI proves the produce→consume path; flip to GatingEnforced is the follow-on activation step. Co-authored-by: Cursor <cursoragent@cursor.com>
Remove current_gate_roster_hash and merge_admission_blocks_merge from the unwired_model grandfather roster so quiet-hawk's clean_holds stays green once #6078 lands first and this branch wires the producer/consumer path. merge_admission_enforcement_policy stays (still test-only). Co-authored-by: Cursor <cursoragent@cursor.com>
Complete merge-admission activation: merge_admission_blocks_merge now consumes receipt_is_admissible at merge time. Dissolve enforcement scaffolds to Terminal and update witnesses to assert enforced blocking for stale-base receipts. Co-authored-by: Cursor <cursoragent@cursor.com>
#5974) Wire floor-emitted MergeAdmissionReceipt stamping (base_tree_hash, gate_roster_hash, floor conclusion) and a required ci.yml merge-admission gate step that reads merge_admission_blocks_merge. Keep GatingComputedDeferred until CI proves the produce→consume path; flip to GatingEnforced is the follow-on activation step. Co-authored-by: Cursor <cursoragent@cursor.com>
Remove current_gate_roster_hash and merge_admission_blocks_merge from the unwired_model grandfather roster so quiet-hawk's clean_holds stays green once #6078 lands first and this branch wires the producer/consumer path. merge_admission_enforcement_policy stays (still test-only). Co-authored-by: Cursor <cursoragent@cursor.com>
Complete merge-admission activation: merge_admission_blocks_merge now consumes receipt_is_admissible at merge time. Dissolve enforcement scaffolds to Terminal and update witnesses to assert enforced blocking for stale-base receipts. Co-authored-by: Cursor <cursoragent@cursor.com>
#5974) Wire floor-emitted MergeAdmissionReceipt stamping (base_tree_hash, gate_roster_hash, floor conclusion) and a required ci.yml merge-admission gate step that reads merge_admission_blocks_merge. Keep GatingComputedDeferred until CI proves the produce→consume path; flip to GatingEnforced is the follow-on activation step. Co-authored-by: Cursor <cursoragent@cursor.com>
Remove current_gate_roster_hash and merge_admission_blocks_merge from the unwired_model grandfather roster so quiet-hawk's clean_holds stays green once #6078 lands first and this branch wires the producer/consumer path. merge_admission_enforcement_policy stays (still test-only). Co-authored-by: Cursor <cursoragent@cursor.com>
Complete merge-admission activation: merge_admission_blocks_merge now consumes receipt_is_admissible at merge time. Dissolve enforcement scaffolds to Terminal and update witnesses to assert enforced blocking for stale-base receipts. Co-authored-by: Cursor <cursoragent@cursor.com>
#5974) Wire floor-emitted MergeAdmissionReceipt stamping (base_tree_hash, gate_roster_hash, floor conclusion) and a required ci.yml merge-admission gate step that reads merge_admission_blocks_merge. Keep GatingComputedDeferred until CI proves the produce→consume path; flip to GatingEnforced is the follow-on activation step. Co-authored-by: Cursor <cursoragent@cursor.com>
Remove current_gate_roster_hash and merge_admission_blocks_merge from the unwired_model grandfather roster so quiet-hawk's clean_holds stays green once #6078 lands first and this branch wires the producer/consumer path. merge_admission_enforcement_policy stays (still test-only). Co-authored-by: Cursor <cursoragent@cursor.com>
Complete merge-admission activation: merge_admission_blocks_merge now consumes receipt_is_admissible at merge time. Dissolve enforcement scaffolds to Terminal and update witnesses to assert enforced blocking for stale-base receipts. Co-authored-by: Cursor <cursoragent@cursor.com>
…CI proof (#6080) * WIP: Activate merge-admission gate (#5974): build the missing PRODUCER (stamp * WIP: Activate merge-admission gate (#5974): build the missing PRODUCER (stamp * WIP: Activate merge-admission gate (#5974): build the missing PRODUCER (stamp * Activate merge-admission gate: in-repo producer + enforcement consumer (#5974) Wire floor-emitted MergeAdmissionReceipt stamping (base_tree_hash, gate_roster_hash, floor conclusion) and a required ci.yml merge-admission gate step that reads merge_admission_blocks_merge. Keep GatingComputedDeferred until CI proves the produce→consume path; flip to GatingEnforced is the follow-on activation step. Co-authored-by: Cursor <cursoragent@cursor.com> * Revert ci.yml from commit — workflow file push blocked by GitHub App token ci_workflow.dag authority updated; generated_artifact_drift_gate will require regen via main_wet on merge (operator/workflows permission). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: Activate merge-admission gate (#5974): build the missing PRODUCER (stamp * WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, # * WIP: Build a floor-enrolled lens that BANS UNWIRED MODELS: any declared type/ * WIP: Build a floor-enrolled lens that BANS UNWIRED MODELS: any declared type/ * chore(unwired_model): roster-trim merge_admission decls wired by #5974 Remove current_gate_roster_hash and merge_admission_blocks_merge from the unwired_model grandfather roster so quiet-hawk's clean_holds stays green once #6078 lands first and this branch wires the producer/consumer path. merge_admission_enforcement_policy stays (still test-only). Co-authored-by: Cursor <cursoragent@cursor.com> * feat(ci): flip merge_freshness_gating_status to GatingEnforced (#5974) Complete merge-admission activation: merge_admission_blocks_merge now consumes receipt_is_admissible at merge time. Dissolve enforcement scaffolds to Terminal and update witnesses to assert enforced blocking for stale-base receipts. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(#6080): address review — roster scaffolds, shell exceptions, fail-closed git - Add merge_admission_* Terminal disposition scaffolds to unwired_model_roster (peer pattern with gunbc_ci_footprint_granularity_disposition). - Enroll merge_admission_produce + stamp/gate tools on medium_structure_exception_roster with dissolve-on trigger. - Remove fail-open `2>/dev/null || true` from merge-target tree hash reads and gate fetch script (§5 stale-base path). Co-authored-by: Cursor <cursoragent@cursor.com> * revert(#6080): hold GatingEnforced flip until real CI floor proof Restore GatingComputedDeferred, NOT-ENFORCING gate step scaffold, and deferred witnesses. Flip to GatingEnforced is a follow-on after a real CI run proves produce→consume (fresh admitted, stale/red blocked). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(#6080): roster-enroll merge_admission metadata unwired decls Add merge_admission_gating_activation_trigger and merge_admission_receipt_schema to unwired_model_roster — self-tested metadata strings with no production consumer (peer pattern with scaffold disposition rows). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(#6080): regen ci.yml — realize merge-admission producer + gate steps Sync committed workflow with ci_spec/ci_workflow model: floor stamp tail (FLOOR_EXIT + merge_admission_stamp) and merge-admission gate step. Closes model↔workflow fork flagged by drift gate review. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(#6080): full wire round-trip + set +e for red-floor stamp path - parse_receipt_wire reads head_sha (line 4) and pr_number (line 5); witness asserts full round-trip before GatingEnforced flip. - set +e before claim_executor so FLOOR_EXIT is captured on red floor and Failure receipt is stamped (ci.yml regen). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, # * fix(merge-admission): export CI_FLOOR_EXIT to stamp subprocess Prefix CI_FLOOR_EXIT on the gunbc invocation line so the stamp tool witnesses red floor exits instead of defaulting to Success (Absent env). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(merge-admission): reject wire missing head_sha instead of fabricating zero parse_receipt_wire now requires four lines (base, roster, conclusion, head_sha) and returns Absent on short bodies — no minted 000…0 SHA. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(merge-admission): stamp main-tip tree hash to match gate KeyedReceipt requires base_tree_hash == current main's tree at CI time. The stamp was recording merge-base tree while the gate compared origin/main tip — causing false MergeDeniedStaleBase on normal PRs. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(merge-admission): align stamp receipt fields and tidy shell nits Parse PR number into stamp_floor_receipt so struct and wire agree; use render_receipt_wire. Drop no-op concat tails; treat empty CI_FLOOR_EXIT as unset. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(merge-admission): trim shell stdout before receipt fields git show / pwd / jq / rev-parse stdout carries trailing newlines that double-split the wire and break gate tree-hash comparison at enforcement. Single authority: shell_stdout_line in merge_admission_produce. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(merge-admission): fail-closed on partial wire and empty floor exit Require five wire lines (incl. pr_number); unparseable pr → Absent. Treat unset/empty CI_FLOOR_EXIT as failure, not green. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, # * fix(ci): unblock compile-clean gate and merge-admission stamp - Stamp: use shell.Exec printenv instead of shell.Env (v2 shell overlay shadows dsl and lacks Env when both source roots are active). - v2/extdeps/shell: restore shell.Env service for primary-precedence compile-clean perturb receipt. - Remove stale inert_lens_hygiene witness (superseded by unwired_model). Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, # * WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, # * fix(merge-admission): use shell.Env.Get in stamp env_var helper Consume the typed shell.Env transport instead of hand-built printenv via shell.Exec — single authority for env reads (review 34244). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ci): repair three floor witnesses broken by merge-admission wiring - Bump ci job step-count witness 6→7 for merge-admission gate step. - Trim stale unwired_model_roster entries wired on main since last census. - Align zero-budget spawn-width witness with int_min fallback semantics. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, # * fix(#6080): complete claude review — stamp witnesses + roster scaffold enrollment - Witness STAMP_EXIT propagation and fail-closed CI_FLOOR_EXIT policy string. - Enroll unwired_model roster scaffold decls + stamp policy on roster. - Floor witness asserts owner/ceiling/dissolution-trigger documentation. Co-authored-by: Cursor <cursoragent@cursor.com> * fix(#6080): clarify gate step name — receipt required, freshness held Step label now distinguishes structural receipt checks (always enforced) from freshness verdict blocking (held until GatingEnforced flip). Co-authored-by: Cursor <cursoragent@cursor.com> * fix(ci): sync unwired_model_roster after main drift (#6066 ACL) Enroll 12 Tailscale ACL unwired decls from main; trim 5 stale entries for witnesses wired on main since last roster census. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, # * WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, # * fix(ci): sync unwired_model_roster after #6061 affected-set rebase Enroll floor_host_scaffold_precompute_would_skip from main drift. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, # * WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, # * fix(ci): trim stale extdeps_shape_transport_policy roster entries Remove two decls retired from the live unwired census when main landed Co-authored-by: Cursor <cursoragent@cursor.com> #6043; unwired_model_no_unrostered_or_stale was failing batch 2. * WIP: COMPLETE merge-admission activation (royal-moth-238 archived mid-task, # * fix(ci): sync unwired_model roster after main rebase (#deploy-access) Rebase onto main renamed deploy access types and added GPU witness decls; regenerate roster from live census and restore scaffold metadata decls. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
gunbc.ci_failure_class.classify_merge_admission_verdict,merge_admission_would_block,merge_admission_blocks_mergewired through existingmerge_freshness_gating_status.GatingComputedDeferredunchanged — verdict computed, consumed by nothing that blocks real merges (same pattern asfloor_exit_blocks_merge).merge_admission_actuator_witness_test.dag(7 test fns).Test plan
gunbc compile --source-root dsl— 0 diagnosticsclaim_batch— all 7 actuator witnesses PASSMade with Cursor