Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I3956 — Every worker, and every process it starts on any machine, is traced to its session, and the board names the address that reaches it

Derive, never ask, who owns work: the board row of a Claude Code session carries the address that reaches it (its cross-session name and socket), announced by the session-start hook; every remote run (offload derive, remote test or build on a cluster host) carries its owner (session key, board peer, issue) in its process environment and in a run record on the host; `majordomus mesh who <pid|path|issue|host-pid>` answers the owner and the address; a remote cargo started around the offload path is refused by a hook.

BLOKOVÁNO vlna 0 · p0 · profil implementation · bezpečné paralelně

Part of builds-reuse-the-mesh-cache — Builds reuse the mesh cache: compiled Rust, the cargo build directory, mix deps and npm packages, keyed by platform, toolchain and inputs.

Blocked. This issue cannot start until milestone:builds-reuse-the-mesh-cache is done. The status is derived from that, not declared.

Cíl

Derive, never ask, who owns work: the board row of a Claude Code session carries the address that reaches it (its cross-session name and socket), announced by the session-start hook; every remote run (offload derive, remote test or build on a cluster host) carries its owner (session key, board peer, issue) in its process environment and in a run record on the host; `majordomus mesh who <pid|path|issue|host-pid>` answers the owner and the address; a remote cargo started around the offload path is refused by a hook.

Proč

The owner, 2026-10-22, after a coordinator could not tell which of six local sessions ran a 33-minute `cargo test --doc` that kept lundra (the build host) thrashing at load 21: 'that is core evidence, this must not happen; it must be wired into Majordomus derived, inferred, generic, dynamic, enforced (hooks, ...)'. The answer took a process-tree trace (ssh parent chain to a Claude pid, then matching start times to the session list), because every session's working directory is the primary checkout and the board row names no address.

Aktuální stav

Measured on 2026-10-22: the board row (majordomus_announce) carries client name and version but no cross-session address; ListAgents names sessions without their board peer or issue; Claude processes all report the primary checkout as cwd; remote runs on lundra carry no owner in their environment or in /tmp/offload-queue beyond the offload tag.

Cílový stav

From any one fact — a pid on any mesh host, a worktree path, an issue, a board peer — one command answers the session, its board peer, its issue and the address to message it, on every surface; a run that cannot be traced is refused before it starts.

Rozsah

  • apps/majordomus-cli/src/peers.rs
  • apps/majordomus-cli/src/mesh/
  • apps/majordomus-cli/src/offload/
  • apps/majordomus-cli/src/capability/builtin/mesh.rs
  • apps/majordomus-cli/src/cli.rs
  • apps/majordomus-cli/src/commands/mesh.rs
  • .claude/hooks/
  • .ai/repo/providers/
  • test/cases/3957_every_process_is_traced_to_its_session.sh

Mimo rozsah

  • Stopping another session's process: the trace names the owner, the owner acts

Závislosti

Žádné. Tento úkol je kořenem grafu.

Kritéria přijetí

  • A session-start hook announces the session's cross-session address on the board, and the board row carries it
  • An offload derive and a remote run export the owner (session key, peer, issue) into the remote process environment and write it into the host's run record
  • mesh who answers the owner of a remote pid, a local pid, a worktree path and an issue, with the address, from a fixture of two sessions
  • A command that starts cargo on a cluster host outside the offload path is refused by a hook, naming the traced path
  • A remote run is started in its own process group and stopped as a group; a run's leftover (parent init, working directory deleted) is found by a sweep and named with its owner (measured 2026-10-22: rustc pid 1416661 survived its cargo and bash being killed, 50 min, lundra in 11 GiB swap)

Validace

  • bin/majordomus plan validate
  • MJ_TEST_JOBS=2 bash test/run.sh 3957_every_process_is_traced_to_its_session

Požadované důkazy

  • trace_case

Důkazy

Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.

Časová osa

zahájeno
—
ověřeno
—
dokončeno
—

Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.

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

Prohledává názvy a popisy všech stránek, které tento web publikuje.