Skip to content

ci-target-graph: a test's .claude/.codex path is a home dir, not a repo read (fixes Tier routing base red) - #26248

Merged
teamleaderleo merged 1 commit into
feat-cmux-nextfrom
ib/tier-route-claude-settings
Oct 27, 2026
Merged

teamleaderleo merged 1 commit into
feat-cmux-nextfrom
ib/tier-route-claude-settings

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Oct 27, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes the base red in "cmux-next checks" → "Tier routing": tests/test_cmux_next_route.py test_every_routed_input_triggers_the_workflow fails with AssertionError: False is not true : .claude/settings.json.

Cause

c14a002 (the base autofix regenerating the CI target graph after #26139, "Cloud: confirmed owner-only provider credential transfer") recorded .claude/settings.json as a CmuxNextAppTests read. CloudCredentialTransferTests names home.appendingPathComponent(provider == .claude ? ".claude/settings.json" : ".codex/auth.json"), a temp home dir. literal_reads matched that literal against the repository's own tracked .claude/settings.json. The cmux-next.yml pull_request paths filter has no .claude/ pattern, so the route test, which requires every routed input to trigger the workflow, failed.

Fix

scripts/cmux-next/ci-target-graph.py literal_reads now skips .claude and .codex, the same way it already skips .git. Those directories hold the agent sessions' own config, and a test that names them means a user's home directory. Adding .claude/ to the paths filter would also turn the check green, but the whole cmux-next workflow would then run on every hook edit, for a file no Swift test reads.

The graph is bot-only (generated_outputs.py), so this PR doesn't touch it. The base autofix workflow triggers on scripts/cmux-next/ci-target-graph.py and regenerates the graph after merge. I reran literal_reads for every test target in the committed graph with this change. The only difference is that .claude/settings.json drops out of CmuxNextAppTests. Until that regeneration lands, this PR's own Tier routing step stays red, the same failure base has.

Test: tests/test_ci_target_graph.py now plants .claude/settings.json and .codex/hooks.json literals. The test fails without the fix and passes with it.

Risk: low. Only CI routing is affected. A Swift test that really read a repo file under .claude/ or .codex/ would no longer route on it, and none does today.

Review: an independent Codex review (gpt-6-astra, xhigh) returned SHIP at 4f92f35.

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.

…po read

The base autofix c14a002 (regenerating the graph after #26139) recorded
".claude/settings.json" as a CmuxNextAppTests read: CloudCredentialTransferTests
names home.appendingPathComponent(".claude/settings.json"), and the repository
happens to track its own .claude/settings.json. The cmux-next pull_request paths
filter does not list .claude/, so test_cmux_next_route's
test_every_routed_input_triggers_the_workflow failed on base.

literal_reads now skips .claude and .codex alongside .git: those are the agent
sessions' config, and a test naming them means a user's home. The base
autofix reruns on a generator change and drops the read from the graph.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-cc8bff1c3ddb4ec353c5
@github-actions

Copy link
Copy Markdown
Contributor

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

Review 4f92f35: 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=pr26248 -f ref=ib/tier-route-claude-settings -f platform=macos -f backend_mode=local

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

Owned by an agent session · session

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Oct 27, 2026
@blacksmith-sh

blacksmith-sh Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Found 2 test failures on Blacksmith runners:

Failures

Test View Logs
nightly.yml must derive the embedded key and sign every appcast through the helper/
nightly.yml must derive the embedded key and sign every appcast through the helper
View Logs
test_the_repository_highlights_validate (main.DigestTests.test_the_repository_highl
ights_validate)/
test_the_repository_highlights_validate (main.DigestTests.test_the_repository_highl
ights_validate)
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

Bead cx-2461go created for this PR by the cmux coordinator.

@github-actions

Copy link
Copy Markdown
Contributor

The feat-cmux-next push run https://github.com/manaflow-ai/cmux/actions/runs/40537790758 at b0ec872 failed: cmux-next generated files.
Those jobs last passed at b727b48. This pull request is one of 5 merged since: #26179, #26253, #25985, #26248, #26132.
If the failure is in your change, fix forward on feat-cmux-next. Pull requests run only the tiers their paths reach (docs/ci/cmux-next-tiers.md); label a batch PR full-ci to run them all before merging.

austinywang added a commit that referenced this pull request Oct 27, 2026
…e paths itself

#26248 made ci-target-graph.py ignore .git, .claude and .codex paths a test
names, so the one-literal form no longer routes CmuxNextAppTests on the
repository's settings file. Back to the base's line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Shipped in:

cmux-bot Bot pushed a commit that referenced this pull request Oct 30, 2026
* docs(next): the Cloud start-session highlight links its docs (release-notary red on base)

test_the_repository_highlights_validate fails on every feat-cmux-next PR: the
highlight from #25625 has no tryIt action or docs link.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(nightly): read the legacy publish job with its moved step scripts inline

#25879 moved "Generate the old feed's
appcast" into scripts/ci/nightly-steps/legacy-identity-appcast.sh, so
test_the_appcast_comes_from_the_tested_plist no longer found its commands in
nightly.yml (ValueError: substring not found) and release-notary went red on
feat-cmux-next. Read the workflow through nightly_workflow_text.nightly_text(),
as the other nightly workflow tests do.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(nightly): leave test-execution.toml as on the base

The pre-commit hook registered two base tests that this PR does not touch;
keep this PR to the two red fixes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* release notes: two new fixed highlights get their Try it action (base red)

home-composer-border (#26119) and selected-harness-start (#26106) landed with
neither an action nor a docs link, which scripts/whats-new/validate.py requires,
so release-notary's test_the_repository_highlights_validate is red on
feat-cmux-next. The Chief field one opens Home; the harness one starts a new
agent chat.

Test: python3 scripts/whats-new/test_digest.py: 1 failure before, OK after.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* nightly: the Sparkle key test reads nightly.yml with its moved steps inline (base red)

#26196 and #26210 moved two of the four SPARKLE_PRIVATE_KEY="$(./scripts/ci/nightly-sparkle-key.sh)"
call sites into scripts/ci/nightly-steps/, so the raw workflow has two and
tests/test_nightly_sparkle_key.sh (release-notary) fails its at-least-three check.
It now greps nightly_workflow_text.nightly_text(), the expansion the other
workflow tests read.

Test: bash tests/test_nightly_sparkle_key.sh: FAIL on the base, PASS here.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* cmux-next routing: a test's home-folder Claude settings path is not a repository read (base red)

CloudCredentialTransferTests named ".claude/settings.json" under a temp home
in one literal; ci-target-graph.py found the repository's own file at that
path and listed it as a CmuxNextAppTests read (base autofix c14a002), which
cmux-next.yml's pull_request paths do not cover, so Tier routing's
test_every_routed_input_triggers_the_workflow is red on feat-cmux-next. The
test builds the path from folder and file, and the graph loses the read
(literal_reads recomputed: the target's other 14 reads are unchanged).

Test: python3 tests/test_cmux_next_route.py: 1 failure on the base, OK here.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* acpmux: the upload-link test names no literal ~/.acpmux state root (base red)

Same change as #26087, combined here because each is red on the other's red:
check-state-roots counts the inline test module's /home/me/.acpmux/... fixture
(since #25840). upload_ids reads only the parent folder, so the test is the same.

Test: bash scripts/cmux-next/check-state-roots.sh .: exit 1 on the base, ok here.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* acpmux: collapse the Codex broker's account checks into let chains (clippy base red)

#26191 nested two if-lets in codex_auth_broker.rs; clippy -D warnings
(collapsible_if) fails on it for every PR that touches acpmux. Same checks,
one let chain each.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* release notes: the compact thought-row highlight gets its Try it action (base red)

#26270 added it with neither an action nor a docs link, so release-notary's
test_the_repository_highlights_validate is red again.

Test: python3 scripts/whats-new/test_digest.py: 1 failure before, OK after.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* tests: leave test-execution.toml as the base has it

The pre-commit hook registered unrelated tests while committing the base merge.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* cmux-next tests: drop the settings-path split; the graph skips .claude paths itself

#26248 made ci-target-graph.py ignore .git, .claude and .codex paths a test
names, so the one-literal form no longer routes CmuxNextAppTests on the
repository's settings file. Back to the base's line.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs(next): the Cloud start-session highlight links its docs (release-notary red on base)

test_the_repository_highlights_validate fails on every feat-cmux-next PR: the
highlight from #25625 has no tryIt action or docs link.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs(next): give the two base highlights release-notary rejects a live action

feat-cmux-next's inline-pr-pills and inspector-error-colours highlights have
no action or docs line, so scripts/whats-new/test_digest.py
(release-notary) fails on the base. Use existing palette actions rather than
https://cmux.com/docs/agents, which returns 404.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs(next): give the new Find in Chat highlight a live action (release-notary red on base since 93ff53c)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Leo <cheerleaderleo@outlook.com>

This branch was previously deployed

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

Labels

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant