This is an adapter-boundary failure.The exception occurs after command resolution but before the handler runs, so every registry-backed command can fail identically.
Prove the route first.
/sessions works
/compact fails
same stack
never entered
Restore the positional contract.
await commands.execute(
agent,
line,
[],
controller.signal,
)
- 01Patch both the context-low
/compactpath and generic composer dispatch. - 02Use an explicit empty image array for text-only commands.
- 03Keep the real request-owned signal in the fourth position.
- 04Do not make signal optional to conceal the caller incompatibility.
- 05Verify unknown commands do not become model prompts.
- 06Prove the running process loads the rebuilt bundle, not a stale global copy.
No exception does not yet prove a correct fix.
Test settled results, cancellation, packaged installation, both call sites, and direct adapter arguments.
Primary evidence.
Keep the complete diagnostic.
The canonical runbook includes loaded-bundle checks, two-call-site repair, failure routing, cancellation assertions, and the integration regression contract.
Read the full runbook