Skip to content

ci(nightly): share compiler-cache settings between warmer, PR Release and nightly Release - #30128

Merged
teamleaderleo merged 6 commits into
feat-cmux-nextfrom
lane/nightly-cache-align
Nov 1, 2026
Merged

teamleaderleo merged 6 commits into
feat-cmux-nextfrom
lane/nightly-cache-align

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

The nightly warmer and PR Release build used different Xcode compiler-cache settings from the nightly Release build, while sharing cache keys. This follow-up routes both through the same allowlisted fleet-compilation-cache.sh settings so restored entries use compatible invocation settings.

This addresses the independent review follow-up on #30061 at beb297ffb5f5a77c7c7f539476c3c9f85df42c84 and closes #30106. The regression test checks both workflow steps consume the shared settings helper.

Validation:

  • python3 tests/test_ci_fleet_compilation_cache.py (7 tests)
  • python3 scripts/cmux-next/prepush-gate.py

Agent session: agent session
🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Aligns the nightly warmer and PR Release Xcode builds with the nightly Release build's compiler-cache settings, so restored cache entries use compatible invocation settings.

  • Extracts the allowlisted fleet CAS settings into a shared scripts/ci/fleet-compilation-cache.sh helper, replacing the inline logic in compile-app-host-test-product.sh.
  • Wires the warmer and PR Release builds through the same helper; an absent or unhealthy managed CAS keeps each build local.
  • Adds the helper to product and incremental build identity tracking so settings changes force a clean build.
  • Adds regression tests covering the helper's allowlist behavior and workflow wiring.

Written for commit 14a5455. Summary will update on new commits.

View guided diff Turn on auto-fix

@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 14a5455: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr30128 -f ref=lane/nightly-cache-align -f platform=macos -f backend_mode=local

red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on d271ffb to compare; do not merge until green; see lane-rules

Shipped in:

@github-actions github-actions Bot added the risk:high Risk tier (docs/ci/risk-tiers.md) label Nov 1, 2026

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 13 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="scripts/ci/fleet-compilation-cache.sh">

<violation number="1" location="scripts/ci/fleet-compilation-cache.sh:24">
P2: The helper call has no timeout, so a hung fleet node blocks the build instead of falling back to local compilation. Bound the call with a timeout, and send its stderr to the build log instead of `/dev/null` so unhealthy-CAS fallbacks stay diagnosable.</violation>
</file>

<file name="scripts/ci/compile-app-host-test-product.sh">

<violation number="1" location="scripts/ci/compile-app-host-test-product.sh:250">
P2: A failing `fleet-compilation-cache.sh` is ignored here, so the build continues without the prefix-mapping and diagnostic settings and gets silent cache misses. Capture the output with a plain assignment so `set -e` stops the build on helper failure.</violation>
</file>

Reply with feedback, questions, or to request a fix.

View guided diff | Turn on auto-fix | Re-trigger cubic

fleet_cas_socket="${CMUX_FLEET_CAS_SOCKET:-$fleet_cas_root/fleet-cas.sock}"
if [ -x "$fleet_cas_settings" ] && [ -S "$fleet_cas_socket" ]; then
fleet_settings=''
fleet_settings="$("$fleet_cas_settings" "$fleet_cas_socket" 2>/dev/null | head -n 8)" || fleet_settings=''

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: The helper call has no timeout, so a hung fleet node blocks the build instead of falling back to local compilation. Bound the call with a timeout, and send its stderr to the build log instead of /dev/null so unhealthy-CAS fallbacks stay diagnosable.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At scripts/ci/fleet-compilation-cache.sh, line 24:

<comment>The helper call has no timeout, so a hung fleet node blocks the build instead of falling back to local compilation. Bound the call with a timeout, and send its stderr to the build log instead of `/dev/null` so unhealthy-CAS fallbacks stay diagnosable.</comment>

<file context>
@@ -0,0 +1,46 @@
+  fleet_cas_socket="${CMUX_FLEET_CAS_SOCKET:-$fleet_cas_root/fleet-cas.sock}"
+  if [ -x "$fleet_cas_settings" ] && [ -S "$fleet_cas_socket" ]; then
+    fleet_settings=''
+    fleet_settings="$("$fleet_cas_settings" "$fleet_cas_socket" 2>/dev/null | head -n 8)" || fleet_settings=''
+    fleet_plugin_ok=0
+    fleet_remote_ok=0
</file context>

Comment on lines +250 to +252
while IFS= read -r setting; do
fleet_cache_setting+=("$setting")
done < <(bash "$SCRIPT_DIR/fleet-compilation-cache.sh")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2: A failing fleet-compilation-cache.sh is ignored here, so the build continues without the prefix-mapping and diagnostic settings and gets silent cache misses. Capture the output with a plain assignment so set -e stops the build on helper failure.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At scripts/ci/compile-app-host-test-product.sh, line 250:

<comment>A failing `fleet-compilation-cache.sh` is ignored here, so the build continues without the prefix-mapping and diagnostic settings and gets silent cache misses. Capture the output with a plain assignment so `set -e` stops the build on helper failure.</comment>

<file context>
@@ -255,40 +246,10 @@ build() {
-  if [ "${CMUX_CI_DISABLE_COMPILATION_CACHE:-}" = 1 ]; then
-    fleet_cache_setting=()
-  fi
+  while IFS= read -r setting; do
+    fleet_cache_setting+=("$setting")
+  done < <(bash "$SCRIPT_DIR/fleet-compilation-cache.sh")
</file context>
Suggested change
while IFS= read -r setting; do
fleet_cache_setting+=("$setting")
done < <(bash "$SCRIPT_DIR/fleet-compilation-cache.sh")
local fleet_cache_output
fleet_cache_output="$(bash "$SCRIPT_DIR/fleet-compilation-cache.sh")"
while IFS= read -r setting; do
fleet_cache_setting+=("$setting")
done <<< "$fleet_cache_output"

@blacksmith-sh

blacksmith-sh Bot commented Nov 1, 2026

Copy link
Copy Markdown

Found 2 test failures on Blacksmith runners:

Failures

Test View Logs
test_every_listed_hook_is_one_glaeda_released_with_the_check (main.SigningHooksInSt
epWithGlaedaTests.test_every_listed_hook_is_one_glaeda_released_with_the_check)/
test_every_listed_hook_is_one_glaeda_released_with_the_check (main.SigningHooksInSt
epWithGlaedaTests.test_every_listed_hook_is_one_glaeda_released_with_the_check)
View Logs
test_runtime_added_app_capabilities_are_runtime_only (main.StaticCapabilityRuntimeO
nlyTests.test_runtime_added_app_capabilities_are_runtime_only)/
test_runtime_added_app_capabilities_are_runtime_only (main.StaticCapabilityRuntimeO
nlyTests.test_runtime_added_app_capabilities_are_runtime_only)
View Logs

Fix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Review (codex, router-review): SHIP at 14a5455

Reviewer: codex gpt-6.1-sol xhigh, fast tier.

SHIP at 14a5455

Visual verdict: no images; Leo tries the build.

No correctness findings.

Follow-ups: none

@teamleaderleo teamleaderleo removed the risk:high Risk tier (docs/ci/risk-tiers.md) label Nov 1, 2026
@github-actions github-actions Bot added the risk:high Risk tier (docs/ci/risk-tiers.md) label Nov 1, 2026
@teamleaderleo
teamleaderleo merged commit dd83a12 into feat-cmux-next Nov 1, 2026
187 of 200 checks passed
@teamleaderleo
teamleaderleo deleted the lane/nightly-cache-align branch November 1, 2026 04:32

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 14a5455e Deployed Nov 1, 2026 by teamleaderleo via wait for same-key tree publisher #93500
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:high Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant