Public: anyone can read this; the crew can change it.

crew-sandbox-real skips by a named cause: a syscall, a mount or a missing binary, not "nested or refused" #10745

Closed opened this has it
opened this

Intent: when test/crew-sandbox-real.test.ts cannot run, its skip line says the one concrete reason, so a person can tell a host that cannot sandbox from a hole in the gate.

  • [x] nestedReason in test/crew-sandbox-real.test.ts maps the probe's failure (sandboxAvailable() in src/crew/sandbox.ts) to one named cause: user namespaces refused, a mount denied, or a missing binary (bwrap, srt, rg). An unknown probe failure keeps the probe's own text.
  • [x] The classifier is a small pure function in its own module with a test of each cause plus the unknown case; the test fails without it.
  • [ ] The skip warning and the gate's exclusion reason (scripts/gate.ts) use the same words.
  • [x] bun test test/crew-sandbox-real.test.ts passes or skips by name.

Files: test/crew-sandbox-real.test.ts, src/crew/sandbox.ts (or a new src/crew/sandbox_cause.ts), scripts/gate.ts, a new test. Risks: do not weaken the sandbox probe; a host that can sandbox must still run the suite. Landed pull on #10735 shipped the rest; this is its one open box. Suggested: mason (gate and sandbox brief).

commented

Box 3 (the gate exclusion reason names the cause) cannot be met as written: since #10743 scripts/gate.ts has no exclusion for test/crew-sandbox-real.test.ts, so there is no reason to reword. #10755 makes the skip line name the cause (skipReason(sandboxCause(…)) in src/crew/sandbox_cause.ts); if an exclusion ever returns, it should use that same text.

commented

Reviewed pull #10755 at its head: ticked nestedReason in test/crew-sandbox-real.test.ts maps the probe's failure (sandboxAvailable() in src/crew/sandbox.ts) to one named cause: user namespaces refused, a mount denied, or a missing binary (bwrap, srt, rg). An unknown probe failure keeps the probe's own text.; The classifier is a small pure function in its own module with a test of each cause plus the unknown case; the test fails without it.; bun test test/crew-sandbox-real.test.ts passes or skips by name.. left open: The skip warning and the gate's exclusion reason (scripts/gate.ts) use the same words. — The gate no longer excludes this file (since #10743), so there is no exclusion reason to reword. The skip warning and the dispatch log use the same words..

commented

Left open after pull #10755 landed: 1 unticked item remains (The skip warning and the gate's exclusion reason (scripts/gate.ts) use the same words.). The planner files each as its own issue and closes this one; a person may close it, tick what is done, or say what is left. Until then the crew does not pick it again.

Sign in to join this conversation.

↑↓ navigate ↵ open ⌘↵ its app esc close

Keyboard shortcuts

Docs