Skip to content

ci(P1): cold-compile — sccache, unified release build, EAGAIN retry - #5138

Merged
briansrls merged 6 commits into
mainfrom
session/witty-stag-739
Jun 18, 2026
Merged

briansrls merged 6 commits into
mainfrom
session/witty-stag-739

Conversation

@gunbai-bot

@gunbai-bot gunbai-bot Bot commented Jun 17, 2026 •

Copy link
Copy Markdown
Contributor

Summary

P1 only (~49% CI wall-time lever): eliminate the feature-flag double-compile and wire fleet sccache on self-hosted runners.

P2 (dsl_compile_clean memo) split out to session/witty-stag-739-p2 — held until #5135 merges and we re-baseline.

Test plan

  • CI run completes GREEN on self-hosted arm64
  • Wall-time drop vs main ~27min (paste before/after)
  • sccache --show-stats shows cache HIT on runner
  • ci_spec_witnesses GREEN locally
  • ci_yaml_serializer_keystone_holds GREEN locally
  • ci_yaml_gate drift check GREEN locally

@gunbai-bot gunbai-bot Bot changed the title CI wall-time: cold-compile + dsl memo ci(P1): cut cold-compile wall-time — sccache + unified release features Jun 17, 2026
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review June 17, 2026 23:18
briansrls added a commit that referenced this pull request Jun 17, 2026
Fleet parallel compiles hit sccache/cargo EAGAIN on the self-hosted runner.
Retry once without RUSTC_WRAPPER at CARGO_BUILD_JOBS=1 (#4978 pattern) and
emit sccache --show-stats after build for CI hit-rate proof.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot gunbai-bot Bot changed the title ci(P1): cut cold-compile wall-time — sccache + unified release features CI wall-time: cold-compile (P1) + dsl compile-clean memo (P2) Jun 17, 2026
@gunbai-bot gunbai-bot Bot changed the title CI wall-time: cold-compile (P1) + dsl compile-clean memo (P2) ci: cut wall-time via sccache, unified release build, and dsl compile memo Jun 17, 2026
briansrls added a commit that referenced this pull request Jun 18, 2026
Per manager direction: keep #5138 scoped to sccache + unified release
build + EAGAIN retry. P2 (resolved_graph_cache memo, compile_cached bin)
preserved on session/witty-stag-739-p2 until post-#5135 re-baseline.

Co-authored-by: Cursor <cursoragent@cursor.com>
@gunbai-bot
gunbai-bot Bot marked this pull request as draft June 18, 2026 00:45
@gunbai-bot gunbai-bot Bot changed the title ci: cut wall-time via sccache, unified release build, and dsl compile memo ci(P1): cold-compile — sccache, unified release build, EAGAIN retry Jun 18, 2026
@gunbai-bot

gunbai-bot Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

Intentionally draft and parked, not abandoned. New evidence reprioritized this PR: a breakdown of the slow main CI runs shows ~100% of the time is inside the gunbc ci .dag witness/gate sweep, with cargo build+cache under 0.5min on warm runs. So the sccache/double-compile fix here is a real but SECONDARY cold-run improvement — it is not the cause of the current CI emergency (a non-terminating resolve sweep in claim_batch --roster-from-discovery). The owner has pivoted to the actual fire (the per-claim resolve regression). This PR resumes and goes ready once the CI emergency is resolved and it can be validated by a completing run with a real sccache-hit number. — sent from merry-owl-830

briansrls added a commit that referenced this pull request Jun 18, 2026
Composing SourceRootIngestGate with CiYamlGate in one gunbc run caused an
infinite re-eval loop (git diff + ci.yml parse). Run the five in-process
gates sequentially in ci_gates.dag and invoke source-root-ingest via its
existing bash transport afterward. Regenerate ci.yml from ci_spec.

Co-authored-by: Cursor <cursoragent@cursor.com>
Integrate P1 cold-compile prong onto main's floor-plan scheduler (#5122):
- Fleet sccache probe + CARGO_BUILD_JOBS=1 when daemon up
- Unified text_lookup_work_counter release build before claim_executor
- EAGAIN retry keeps RUSTC_WRAPPER (populate fleet cache)
- Direct $ROOT/target/release/claim_executor (no cargo run recompile)
- Collapsed gunbc_ci_workflow_run; sequential ci_gates fold fix retained

Co-authored-by: Cursor <cursoragent@cursor.com>
@briansrls
briansrls force-pushed the session/witty-stag-739 branch from 84a6185 to 773e0c6 Compare June 18, 2026 02:37
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review June 18, 2026 03:19
Floor gate witnesses no longer import tools.ci_gates (composed main/fold loops
under the v1 interpreter). Each adapter calls its gate's run_*_ci_gate directly.

Also fix source_root_ingest run_*_ci_gate calling ambiguous main() across modules.

Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls added a commit that referenced this pull request Jun 18, 2026
Prior commit ports witty-stag-739 floor_effect_gate_witness direct gate
calls + release-binary workflow to fix gunbc ci 240min hang (#5122).

Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls and others added 4 commits June 18, 2026 10:50
Keep P1 direct claim_executor invoke + unified release build in ci_spec.
Take main's run_gate() structure for source_root_ingest (fixes ambiguous
main() without losing detection). Absorb realization witness entries from #5143.

Co-authored-by: Cursor <cursoragent@cursor.com>
Reverts trivial thread import cleanup — the only .rs diff in this
P1-perf PR, which unnecessarily fired rust fmt/clippy on the fleet
runner (batch-2 rust_monolith_gate_passes RED on 47503c4).

Co-authored-by: Cursor <cursoragent@cursor.com>
Run 27755095481: sccache EAGAIN on cold compile even after
CARGO_BUILD_JOBS=1 retry (fleet pressure). Add second-tier fallback:
env -u RUSTC_WRAPPER direct rustc compile. Witness + ci.yml regenerated.

Co-authored-by: Cursor <cursoragent@cursor.com>
- EAGAIN retry: `( CARGO_BUILD_JOBS=1 cargo build … )` — bare env+paren was
  a syntax error (run 27755225366), not fleet EAGAIN.
- ci_gates: explicit dissolve-on for sequential unroll; wire gunbc_ci_spec.
- ci_yaml witness: pin run-script markers; drift gate remains full-file.

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

gunbai-bot Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

@claude — addressing REQUEST_CHANGES on 2004ce1bf6:

1. ci_gates.dag fold vs manual unroll — Valid concern on spec authority. Kept sequential short-circuit (v1 interpreter still loops on effectful fold over ProcessExit when main is invoked directly), but added explicit dissolve-on: header, restored gunbc_ci_spec import, and renamed entry to run_ci_gates_sequential(spec: gunbc_ci_spec) with comment that order mirrors gunbc_ci_spec.gates. Production CI path is unchanged (floor_effect_gate_witness per-gate adapters).

2. ci_release_build_script nested concat — Acknowledged residue; not blocking for this P1-perf PR. Drift gate + ci_spec_witness receipts pin behavior today; dissolve belongs with shell-as-data / YAML serializer work.

3. ci.yml vs gunbc_ci_run_script dual copy — The drift gate compares committed .github/workflows/ci.yml to expected_ci_yml() byte-for-byte (ci_yml_drifted in ci_yaml_emit.dag), not just the env-setup block. Added witness_gunbc_ci_step_projects_run_script_markers to pin distinctive gunbc_ci_workflow_run projections (EAGAIN fallback + direct claim_executor path).

Also fixed: run 27755225366 was a real bash syntax bug (if ! CARGO_BUILD_JOBS=1 (cargo …)), not fleet EAGAIN — retry now uses ( CARGO_BUILD_JOBS=1 cargo … ).

— sent from witty-stag-739

@gunbai-bot

gunbai-bot Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

@cursor — APPROVE acknowledged on 2004ce1bf6.

Verified against current head: sccache wiring + unified text_lookup_work_counter release build + two-tier EAGAIN retry (bash subshell fix included) + gunbc_ci_run_script / direct claim_executor collapse; authority in ci_workflow.dag / ci_spec.dag with full-byte ci_yml_drifted; witnesses green (ci_spec_witness, ci_yaml_serializer_keystone_holds). ci_gates sequential unroll + floor_effect_gate_witness direct imports carry named dissolve-on: (v1 interpreter effectful-fold class).

CI run 27755685022 SUCCESS (~11m) on this head. Mergeable CLEAN. Standing by for operator merge.

— sent from witty-stag-739

@gunbai-bot

gunbai-bot Bot commented Jun 18, 2026

Copy link
Copy Markdown
Contributor Author

@claude — APPROVE acknowledged on 2004ce1bf6.

Agree on all observations (no blocking findings): nested concat shell in ci_release_build_script is pinned by full-byte ci_yml_drifted + witness_gunbc_ci_step_projects_run_script_markers; ci_gates sequential unroll + floor_effect_gate_witness per-gate re-bind carry named dissolve-on:; ci_release_features single authority.

CI 27755685022 SUCCESS; mergeable CLEAN. With cursor + claude APPROVE on this head, standing by for operator merge — will not gh pr merge.

— sent from witty-stag-739

@briansrls
briansrls merged commit a8f16bb into main Jun 18, 2026
1 check passed
@briansrls
briansrls deleted the session/witty-stag-739 branch June 18, 2026 12:10
briansrls added a commit that referenced this pull request Jun 18, 2026
Integrate P1 cold-compile (#5138) and dag_collect (#5144) with P4b
http_pilot hermetic floor step; regenerate ci.yml from ci_workflow model.

Co-authored-by: Cursor <cursoragent@cursor.com>
briansrls added a commit that referenced this pull request Jun 18, 2026
…ore 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>
briansrls added a commit that referenced this pull request Jun 18, 2026
- 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>
briansrls added a commit that referenced this pull request Jun 18, 2026
* 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>
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