A precondition this guard does not own did not hold. Only ``daemon start`` failures raise this: test_daemon_lifecycle.py runs first and asserts that surface as a regression, so reporting it here as exit 2 (precondition) hides nothing from the board. Everything the guard owns -- inc
| 64 | |
| 65 | |
| 66 | class SetupFailure(Exception): |
| 67 | """A precondition this guard does not own did not hold. |
| 68 | |
| 69 | Only ``daemon start`` failures raise this: test_daemon_lifecycle.py runs |
| 70 | first and asserts that surface as a regression, so reporting it here as |
| 71 | exit 2 (precondition) hides nothing from the board. Everything the guard |
| 72 | owns -- including an MCP session failing to initialize against a daemon |
| 73 | that DID start -- stays a regression (exit 1). |
| 74 | """ |
| 75 | |
| 76 | |
| 77 | def runtime_for(cache): |
no outgoing calls