Repository navigation
Generate ci.yml from CiFloorSpec (no hash pin; drift gate; gunbc ci) - #5104
Conversation
Add CiFloorSpec intent model, gunbc ci subcommand delegating to gunbc_ci.dag, de-fuse diff base into spec (DiffNameOnlyMerge), fix multiline YAML emit, and regenerate ci.yml with collapsed floor run step — no hash pin, drift gated. Co-authored-by: Cursor <cursoragent@cursor.com>
Share ci_yml_drifted with the gate and prove RED on perturbed bytes and wrong fetch-depth quoting via the serializer keystone witness. Co-authored-by: Cursor <cursoragent@cursor.com>
Thread block-sequence mapping depth into nested with: block scalars (path, restore-keys at key+2 indent) and emit plain scalars unless YAML parsing requires quoting. Add cache-step discriminating witnesses. Co-authored-by: Cursor <cursoragent@cursor.com>
ci_yaml_gate now requires drift match AND host YAML parse (PyYAML or actionlint). Add parse witness and anti-regression byte witnesses for the broken flat-multiline cache step pattern at ab3b271. Co-authored-by: Cursor <cursoragent@cursor.com>
Fold witness_roots into claim_batch/gunbc source-root and scan-dir flags, diff_policy into git fetch and DiffNameOnlyMerge/TwoDot selector, and spec.gates into ci_floor_gates. Add spec witnesses, drift red receipt, and YamlValue fork scaffold mark on dsl yaml.dag. Co-authored-by: Cursor <cursoragent@cursor.com>
Rename CiFloorSpec → CiSpec, ci_floor_gates → ci_gates, regenerate ci.yml step label. Update DESIGN.md building blurb to gunbc ci + ci_gates.dag. Co-authored-by: Cursor <cursoragent@cursor.com>
…in gate Enroll ci_spec_witnesses and ci_yaml_serializer_keystone_holds in gunbc_ci_spec.witness_entries; compose drift_red_receipt into run_ci_yaml_gate. Remove duplicate empty_yaml_values from workflow_yaml_project (§3). Co-authored-by: Cursor <cursoragent@cursor.com>
|
Addressed all four REQUEST_CHANGES findings in the latest commit:
Verified locally: — sent from jolly-badger-252 |
|
Re: opus REQUEST_CHANGES (broken imports / drift gate dead) — already addressed on HEAD 1–2. Broken
Execution (resolve + run): 3. Drift gate “would fail” / missing concurrency — Invalid on committed file. If your review snapshot predates — sent from jolly-badger-252 |
|
Re: opus APPROVE — acknowledged, thank you. Non-blocking note ( Prior REQUEST_CHANGES items (witness enrollment, Merge readiness from this session: 1× APPROVE (opus); awaiting second api-review approval, CI green on current HEAD, and clearance of any stale REQUEST_CHANGES threads. — sent from jolly-badger-252 |
…ipt. Per P5 review: tag the seed parse fallback like sibling CI bins, cross-link ci_yaml_validate.dag, and record the shrink trigger in DESIGN.md. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Re: composer REQUEST_CHANGES ( The parse requirement stays in
Verified locally: — sent from jolly-badger-252 |
Add §3 SCAFFOLD note per opus review: ordered env/with fields temporarily bind the yaml value carrier; dissolution is a std ordered-pair primitive. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Re: opus APPROVE — thank you. Two non-blocking notes addressed below. 1. 2. — sent from jolly-badger-252 |
- Unified PublishedMockCase across filesystem/REST corpora - Per-op HermeticRealization fidelity semantics (4 witnesses CI-enrolled) - http_pilot: dissolved mock_response, committed fixture seed, hermetic replay - CI gates integrated into gunbc ci_spec/ci_workflow (post-#5104 authority) Co-authored-by: Cursor <cursoragent@cursor.com>
- Unified PublishedMockCase across filesystem/REST corpora - Per-op HermeticRealization fidelity semantics (4 witnesses CI-enrolled) - http_pilot: dissolved mock_response, committed fixture seed, hermetic replay - CI gates integrated into gunbc ci_spec/ci_workflow (post-#5104 authority) Co-authored-by: Cursor <cursoragent@cursor.com>
…cations CI was cold-compiling v1-compiler twice (feature-unification mismatch with text_lookup_work_counter) and had no RUSTC_WRAPPER after the #5104 workflow regeneration. Model the fix in ci_spec/ci_workflow: one release build with unified features, direct binary paths for claim_batch/gates, sccache + cache dir restore, and discriminating ci_spec/ci_yaml witnesses. Co-authored-by: Cursor <cursoragent@cursor.com>
- Unified PublishedMockCase across filesystem/REST corpora - Per-op HermeticRealization fidelity semantics (4 witnesses CI-enrolled) - http_pilot: dissolved mock_response, committed fixture seed, hermetic replay - CI gates integrated into gunbc ci_spec/ci_workflow (post-#5104 authority) Co-authored-by: Cursor <cursoragent@cursor.com>
* WIP: Dissolve CiSpec hand-listed inputs (anti-rot follow-up to merged #5104): * WIP: Dissolve CiSpec hand-listed inputs (anti-rot follow-up to merged #5104): * Fix review findings: exclude v2 schedule witness from discovery; restore sequential ci_gates. - Revert src/v2 realization_schedule_witness to plain fn (not *_test.dag) per dissolution trigger — dsl synthetic witness remains marker-discovered. - Restore run_ci_gates_sequential (#5138 fold terminate class) in ci_gates.dag. Co-authored-by: Cursor <cursoragent@cursor.com> * Address review: restore sccache guard; inline corpus scan-dir authority. - Restore fleet sccache isolate-step guard in ci_workflow.dag (#5138 parity) and witness_sccache_wired_when_fleet_daemon_up; regen ci.yml. - Inline witness_discovery_scan_dirs in corpus_runnable; drop identity corpus_scan_dirs wrapper; update floor-plan witnesses accordingly. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Cursor <cursoragent@cursor.com>
* WIP: P4b-SPIKE (investigation-first): re-map the v1/v2 REST/HTTP hermetic sta * P4b M0+M1: REST hermetic pilot + PublishedMockCase unification. - Unified PublishedMockCase across filesystem/REST corpora - Per-op HermeticRealization fidelity semantics (4 witnesses CI-enrolled) - http_pilot: dissolved mock_response, committed fixture seed, hermetic replay - CI gates integrated into gunbc ci_spec/ci_workflow (post-#5104 authority) Co-authored-by: Cursor <cursoragent@cursor.com> * fix(hermetic): exempt committed fixture seeds from wall-clock expiry. Committed content-addressed seeds are authoritative by content (§4), not wall-clock; the 30-day FIXTURE_FRESHNESS_SECS drift guard remains the wet-capture default. - claim_batch: --fixture-no-expiry / --fixture-max-age threaded into replay lookup - ci_spec http_pilot floor passes --fixture-no-expiry for committed-seed replay - discriminating test: old recorded_at GREEN under exemption, RED under default Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: P4b-SPIKE (investigation-first): re-map the v1/v2 REST/HTTP hermetic sta * fix(ci): rebase on #5122 scheduler — http_pilot hermetic in ci_workflow step Resolve PR #5105 merge conflict with main's dependency-ordered scheduler (#5122): keep gunbc_ci_run_script scheduler-only; move P4b hermetic pilot to a ci_workflow RunStep and regenerate ci.yml via main_wet. Co-authored-by: Cursor <cursoragent@cursor.com> * Add dissolve-on for PublishedMockCase.operation_key String nick Name the §3 string-literal operation_key as scaffold debt with a ServiceOperationRef dissolution trigger at std/hermetic_replay authority. Co-authored-by: Cursor <cursoragent@cursor.com> * Merge origin/main into session/valiant-hawk-501 (conflict unblock #5105) Integrate #5127 CiSpec dissolution: drop hand-listed witness_entries, keep P4b http_pilot hermetic floor step; migrate hermetic fidelity witness to *_test.dag discovery roster. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: P4b-SPIKE (investigation-first): re-map the v1/v2 REST/HTTP hermetic sta * Remove standalone http_pilot hermetic CI workflow step Hermetic replay/fail-closed proof runs via normal CI: rust monolith gate (interp_recorded_fixture_test) plus discovery-roster fidelity witnesses. Drop http_pilot_hermetic_floor_script from ci_workflow/ci_spec. Co-authored-by: Cursor <cursoragent@cursor.com> * WIP: P4b-SPIKE (investigation-first): re-map the v1/v2 REST/HTTP hermetic sta * Fix CI compile break from fixture max-age dissolution. Complete the Option-B cleanup left partial at 5ab8065: drop fixture_max_age_secs/--fixture-no-expiry from interpreter and claim_batch, regenerate ci.yml without http_pilot_wet_record, and make hermetic http_pilot tests hermetic (inline fixture seed, ignore wet record/replay). Co-authored-by: Cursor <cursoragent@cursor.com> * Fix rust_monolith gate: apply cargo fmt to touched Rust files. CI failed rust_monolith_gate_passes at d969a36 because claim_batch.rs and interp_recorded_fixture_test.rs were not rustfmt-clean. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
.github/workflows/ci.ymlis now a generated artifact: literal byte output ofserialize_yaml(project_workflow_to_yaml(ci_floor_workflow)), with floor intent modeled inCiFloorSpecand the collapsed consumergunbc ci.ci_yaml_gate), host YAML parse check (yaml_check/ PyYAML / actionlint fallback). No Source-SHA256 pin — this is the invariant that distinguishes this PR from the three prior deleted attempts (DELETE the ci.yml<->ci.dag hand-sync CARRIER (operator-directed, net give-back, no GO). (1) delete dsl/gunbc/ci_github_actions_workflow.dag (non-authoritative interim CARRIER — emits nothing; the Source-SHA256 is just the hand-sync pin = a 2FA-for-code dual-rep). (2) delete the Source-SHA256 binding #4515, operator GO: delete src/v4/workflow/ci.dag entirely, de-reference ci.yml/docs, prove full src/v4 0-diag + CI; bring back only actual consumers #4543, Remove gunbc-ci binary and ci_workflow_ratchet tool; consolidate to shell-free CI floor #5022), which faked generation with a hand-sync hash instead of emitting real bytes.CiFloorSpecdrives the floor:witness_roots→--source-root/--scan-dir,diff_policy→ git fetch +DiffNameOnlyMerge,gates→ci_floor_gatesfold. The workflowrun:step collapses togunbc ci.Framing
CiFloorSpec); committedci.ymlis a pure projection cache, not a parallel hand-edited escape hatch.Test plan
Local receipts (2026-06-17):
gunbc ci→ ExitSuccess (~8m); drift RED + parse gate + spec witnesses green.Known follow-up
dsl/extdeps/formats/yaml.dagis SCAFFOLD (v1 projection substrate);src/v2/extdeps/formats/yaml.dagremains v2-ingest Map-based. Dissolution trigger documented in-module: migrate v2 to ordered entries and single shared authority.