Skip to content

base red: clone-mark asks role::acpmux_home for acpmux's home, no literal state root (after #33140) - #33218

Merged
lawrencecchen merged 1 commit into
feat-cmux-nextfrom
base-red/state-roots-33140
Nov 3, 2026
Merged

lawrencecchen merged 1 commit into
feat-cmux-nextfrom
base-red/state-roots-33140

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

Fixes the cmux-next checks red "No literal state roots (per-build isolation S7, cx-is1kf.8)" at feat-cmux-next tip. It is red on every PR now (seen on #33175). Culprit: #33140 (8ac30a4).

Cause

#33140 added pub const MARKER: &str = "/home/cmux/.acpmux/clone-boot"; in cmux-host/src/cloud/clone_mark.rs. That is a literal acpmux state root. check-state-roots.sh refuses it: the file has no baseline row (0).

Takes back #33140: only its literal MARKER path in clone_mark.rs; the marker path is now made from role::acpmux_home and is the same, so #33140's behavior stays.

Fix

role.rs already names the work user's acpmux home in one place (home.join(".acpmux"), a reviewed keep row of the baseline). That line is now role::acpmux_home(home). clone_mark::marker() makes the marker path from acpmux_home(WORK_HOME) and MARKER_NAME (clone-boot, the name acpmux's hub/clone_boot.rs reads). The path is the same: /home/cmux/.acpmux/clone-boot. No baseline change, no exception.

marker() is Linux only, as role and the clone-mark verb are.

Regression test: tests/linux_agent.rs clone_mark_writes_in_the_work_users_acpmux_home pins the path.

Red at the base, green at the head

Command: scripts/cmux-next/check-state-roots.sh

  • Red at the tip 145c5a3 (and from 8ac30a4): cmux-tui/crates/cmux-host/src/cloud/clone_mark.rs has 1 literal state root line(s), baseline 0
  • Green at this head: check-state-roots: ok

Changelog

none

Observed / Not run

Observed: check-state-roots.sh red and green as above; rustfmt --check on the 4 changed files passes; prepush-gate.py passed.
Fleet step: cmux-tui-rust-check.sh --os linux test clone_mark at this head (step c030229917d137da27feaf16); result in a comment below.
Not run: no Rust build on this VM (rule). No red run of the new test: without the fix marker() does not exist, so that run is a compile failure.

…eral state root (after #33140)

#33140 (8ac30a4) added clone_mark.rs MARKER = "/home/cmux/.acpmux/clone-boot",
a literal state root that check-state-roots refuses (baseline 0 for that file).
role.rs already names the work user's acpmux home once (its reviewed baseline
row); that line is now role::acpmux_home, and clone_mark::marker() builds the
path from it and daemon_spec::WORK_HOME. The path is the same.

Red at 8ac30a4 and at tip: scripts/cmux-next/check-state-roots.sh
  clone_mark.rs has 1 literal state root line(s), baseline 0
Green here: check-state-roots: ok. No baseline change.
Test: tests/linux_agent.rs clone_mark_writes_in_the_work_users_acpmux_home
pins the path (Linux; runs on the fleet/CI, not on this VM).
@lawrencecchen lawrencecchen added the risk:low Risk tier (docs/ci/risk-tiers.md) label Nov 3, 2026
@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

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

Review 8f8d81a: 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=pr33218 -f ref=base-red/state-roots-33140 -f platform=macos -f backend_mode=local

Shipped in:

@github-actions github-actions Bot added risk:normal Risk tier (docs/ci/risk-tiers.md) and removed risk:low Risk tier (docs/ci/risk-tiers.md) labels Nov 3, 2026
@lawrencecchen

Copy link
Copy Markdown
Contributor Author

Review (independent subagent): SHIP at 8f8d81a

Checked by reading and with the static checks (no Rust build on this machine):

  • Marker path is the same: acpmux_home("/home/cmux") + MARKER_NAME = /home/cmux/.acpmux/clone-boot. acpmux reads home.join(MARKER) with MARKER = "clone-boot" (hub/clone_boot.rs), with home() = ~/.acpmux by default (config.rs default_home).
  • Compile: role is #[cfg(target_os = "linux")] pub mod role; marker() is cfg(linux) too, and its only callers are cli.rs clone_mark (cfg linux) and tests/linux_agent.rs (#![cfg(target_os = "linux")], reaches cmux_host::cloud::clone_mark::marker through pub mods). No other reference to the removed MARKER const in any crate. Path/PathBuf are already imported in role.rs. paths.at(&marker) and store.write(&marker, ..) take &str from a String, so the borrow is needed (no clippy needless_borrow). MARKER_NAME is pub, so no dead-code warning on non-Linux.
  • scripts/cmux-next/check-state-roots.sh: red on a tree export of the parent 145c5a3 (clone_mark.rs:21, baseline 0), ok at this head. No baseline change; role.rs keeps its one ".acpmux" keep row.
  • rustfmt --edition 2024 --check on the 4 files: clean. prepush-gate.py: no new violations.
  • The inventory check is red on test_event_stream_drift_is_rejected (runtime event selection-changed stream metadata). This diff does not touch it; it is not caused by this PR.

@lawrencecchen lawrencecchen added the ready-to-land Reviewed at this head; next-autoland merges it into feat-cmux-next when its only reds are base reds label Nov 3, 2026
@blacksmith-sh

blacksmith-sh Bot commented Nov 3, 2026

Copy link
Copy Markdown

Found 1 test failure on Blacksmith runners:

Failure

Test View Logs
build_only must be a conjunctive exclusion on the helper, signing, and publication jobs
, and must not gate the unsigned app build/
build_only must be a conjunctive exclusion on the helper, signing, and publication jobs
, and must not gate the unsigned app build
View Logs

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

@lawrencecchen

Copy link
Copy Markdown
Contributor Author

Fleet step c030229917d137da27feaf16 (Linux, Blacksmith) at 8f8d81a: cmux-tui-rust-check.sh test clone_mark: 3 tests run, 3 passed, including the new cmux-host::linux_agent clone_mark_writes_in_the_work_users_acpmux_home. The build compiled on Linux.

@lawrencecchen
lawrencecchen merged commit cce154d into feat-cmux-next Nov 3, 2026
217 of 227 checks passed
@lawrencecchen
lawrencecchen deleted the base-red/state-roots-33140 branch November 3, 2026 07:16

This branch was previously deployed

3 inactive deployments
artifacts — 8f8d81a3 Deployed Nov 3, 2026 by lawrencecchen via publish tree-addressed cmux-tui #104499
sentry-dsyms — 8f8d81a3 Deployed Nov 3, 2026 by lawrencecchen via upload cmux-tui dSYMs to Sentry #104499
ci-routing-agent — 8f8d81a3 Deployed Nov 3, 2026 by lawrencecchen via cmux-tui tree preflight #104499
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-land Reviewed at this head; next-autoland merges it into feat-cmux-next when its only reds are base reds risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant