OK    valid task validates (exit 0)
OK    unknown task key exits 2 (exit 2)
OK    unsupported taskVersion exits 2 (exit 2)
OK    invalid task id exits 2 (exit 2)
OK    empty prompt exits 2 (exit 2)
OK    NUL in expectExact exits 2 (exit 2)
OK    out-of-range timeout exits 2 (exit 2)
OK    missing mission file exits 4 (exit 4)
OK    task with valid mission validates (exit 0)
OK    invalid mission exits 2 (exit 2)
OK    validate missing task exits 4 (exit 4)
OK    validation does not modify the task file
OK    prune dry-run exits 0 (exit 0)
OK    dry-run deleted nothing
OK    prune --keep=2 --yes removes oldest (exit 0)
OK    kept exactly 2 newest runs
OK    newest run kept, oldest pruned
OK    append-only receipt written (3 entries)
OK    sessions/workspaces untouched by prune
OK    prune with invalid keep exits 4 (exit 4)
skip adapter seam cases (docker daemon unavailable)
skip workspace/capability cases (docker daemon unavailable)
skip live task cases (docker unavailable)
OK    onboard without name exits 4 (non-interactive) (exit 4)
OK    onboard --name renders profile (exit 0)
OK    profile written
OK    canon structure: required filled, optional placeholdered
OK    canon sections present
FAIL user recall run succeeds (exit 1)
FAIL recalled user name (response: )
OK    no agent identity on headless run

selftest: 26 passed, 2 failed
