Bound the slash dispatch future depth
Merged
VA
3d ago+15+15+01234567890123456789-3-3-0123456789
The client-commands target overflows rustc's query depth while laying out the slash dispatch future. Dispatch contains prompt admission, direct tools, and compaction/resumption; submit and resume previously returned opaque boxed concrete futures, which still exposed their nested type graphs.
Return the existing BoxProviderFuture trait object at dispatch, submit, and resume boundaries. The command implementation and task behavior stay the same; submit/resume retain their existing allocations, and dispatch adds one box.
Decisions
- Keep compiler recursion/query limits unchanged.
- Isolate this build fix from the ancestry follow-up (#763), based directly on origin/main.
- Use the failing client-command compilation as the regression; the public return types now enforce type erasure.
Validation
- bb1: cargo check -p acyclic-harness --tests --features filesystem-local,native-execution,test-support,tui,terminal,hooks � passed in 2m16s, including client-commands.
- Windows: lb.ps1 cargo check -p acyclic-harness --lib --tests --features filesystem-local,native-execution,test-support,tui,terminal,hooks � passed in 22.90 s.
Summary by cubic
Bounds the slash dispatch future depth so client-command compilation no longer overflows rustc's query depth.
dispatch_configured_command,admit, andresumenow returnBoxProviderFuturetrait objects instead of concrete nested future types.- Command behavior and task behavior are unchanged; submit/resume keep their existing allocations, and dispatch adds one box.
- The now-erased public return types serve as the regression guard for this build fix.