Skip to content

I2673 — The sccache client configuration is derived from the selected offer, local disk first

Emit the sccache environment for the chosen offer through majordomus env, local as level one and the offer as level two, with no hand-set variable.

BLOCKED wave 2 · p1 · implementation profile · runs alone

Part of development-runtime — The runtime has a development surface.

Blocked. This issue cannot start until I2670, I2672 are done. The status is derived from that, not declared.

Objective

Emit the sccache environment for the chosen offer through majordomus env, local as level one and the offer as level two, with no hand-set variable.

Why

The owner, 2026-10-13, with full clearance: set up MinIO, an sccache server and every mesh node, verified and validated. The cluster compiles the same Rust on every machine from a cold cache; two declared offload hosts were under their disk minimum that day. See ADR 0157.

Current state

Measured on master b29cf4e487 on 2026-10-13: RUSTC_WRAPPER=sccache is set by the user's ~/.cargo/config.toml with no remote; environment/shell.rs exports nothing about it.

Desired state

majordomus env exports the derived configuration when sccache is present and an offer is selected, local-only otherwise, and a diagnostic when sccache is absent; the committed .envrc is unchanged; a user's cargo config is never edited.

Scope

  • apps/majordomus-cli/src/environment/
  • docs/ENVIRONMENT.md

Out of scope

  • Writing ~/.cargo/config.toml
  • Distributed compilation

Dependencies

What waits on this

Acceptance criteria

  • With an offer selected the exported variables name it and the local level and no secret is printed
  • With no offer the client is local-only
  • With the offer unhealthy at the moment the sccache server would start, the second level is left out and the compile succeeds: measured on 2026-10-13, a server started with a down store fails the compile (exit 2)
  • A store that stops while the server runs leaves the compile correct (measured: a miss, exit 0)
  • The installed sccache's multi-level support is read from the executable, not assumed
  • Cross-checkout path normalisation is investigated and the finding recorded

Validation

  • bin/majordomus plan validate
  • MJ_TEST_JOBS=2 bash test/run.sh 3013_a_mesh_build_cache

Evidence required

  • client_derivation_case
  • sccache_multilevel_measured

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

Timeline

started
—
verified
—
completed
—

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I2673.yaml. Read it back with majordomus plan show I2673.

Searches the titles and descriptions of every page this site publishes.