Found in the shannon workspace, 2026-07-26. Mechanism details + evidence from two architects.
Setup: a strict builder (builder-spir-3276) spawned a task builder from INSIDE its own worktree; the child landed nested at .builders/spir-3276/.builders/task-w-yI with branch builder/task-w-yI, a live shellper session — and no row in the Tower registry (afx status lists 18 builders, no match).
Three resulting defects, all observed:
- Send-only ghost: the nested builder can
afx send successfully, but afx send task-w-yi from an architect returns NOT_FOUND — it cannot be reached or redirected.
- Affinity broken: from its worktree,
afx send architect returns NOT_FOUND (no spawner affinity registered).
- Fallback misroute: the workspace-qualified form it fell back to resolves to the architect named
main — NOT its lane's architect. Its full work verdict was delivered to an unrelated architect verbatim.
Security framing (agreed by both architects involved): an unregistered sender falling through to main carrying a legitimate-looking builder-* name is an instruction-injection surface, not just noise — the spoofing check that governs registered builders never applies to a sender with no registry row. Today the payload was a benign stall-recovery probe; the same path delivers arbitrary instructions with apparent builder provenance.
Evidence: main architect's failed reach-back (afx send task-w-yi → NOT_FOUND) is the receive half; the misdelivered verdict (received by main 2026-07-26T16:58Z, sender builder-task-w-yi) is the send half.
Likely related: #1224 (registry family).
Found in the shannon workspace, 2026-07-26. Mechanism details + evidence from two architects.
Setup: a strict builder (builder-spir-3276) spawned a task builder from INSIDE its own worktree; the child landed nested at
.builders/spir-3276/.builders/task-w-yIwith branchbuilder/task-w-yI, a live shellper session — and no row in the Tower registry (afx statuslists 18 builders, no match).Three resulting defects, all observed:
afx sendsuccessfully, butafx send task-w-yifrom an architect returns NOT_FOUND — it cannot be reached or redirected.afx send architectreturns NOT_FOUND (no spawner affinity registered).main— NOT its lane's architect. Its full work verdict was delivered to an unrelated architect verbatim.Security framing (agreed by both architects involved): an unregistered sender falling through to
maincarrying a legitimate-lookingbuilder-*name is an instruction-injection surface, not just noise — the spoofing check that governs registered builders never applies to a sender with no registry row. Today the payload was a benign stall-recovery probe; the same path delivers arbitrary instructions with apparent builder provenance.Evidence: main architect's failed reach-back (
afx send task-w-yi→ NOT_FOUND) is the receive half; the misdelivered verdict (received by main 2026-07-26T16:58Z, senderbuilder-task-w-yi) is the send half.Likely related: #1224 (registry family).