| A per-node decomposition bound takes down a converged tree |
High |
The dominant risk, and the one live rounds keep landing on. Three separate bounds have each discarded a whole tree: a wall-clock ceiling, turn exhaustion, and a width cap the atomicity gate cannot read. The first two are absorbed at the level that asked for the split, so a node fails without the tree failing. The third is open: the two caps that size a level contradict each other, so compliance was fatal and non-compliance was rejected. See the loop round log. |
| A run dies with rows nothing will move again |
High |
Level-triggered recovery rather than edge-triggered dispatch: RunRecoveryReconciler classifies every plan status on every pass, requeues orphaned rows as INTERRUPTED, re-judges a task left in review with no open human decision, and hands the waves back to the coordinator. gate_wave parks a subtask whose declared inputs died, and the three abandon passes cover the waves a stopped run never reached, the wave that raised, and the rows routing could place in no wave at all. |
| Context window exhaustion on complex tasks |
Medium |
Partially mitigated: context budget management tracks fill, injects indicators, and compacts at turn boundaries. Remaining: LLM-based summarization for higher-quality summaries. |
| Cost explosion from agent loops |
High |
Budget hard stops, loop detection, max iterations per task, and a capability ladder that picks the band first (the exact rung, else the nearest higher, else the nearest lower) and orders on cost only within that band, so it buys the cheapest agent at the rung the work demands rather than the cheapest agent that could scrape through. Nothing re-points a bound (provider, model) pair to save money; an agent is a fixed unit and work needing more capability goes to a different agent. |
| Agent quality degradation with cheap models |
Medium |
Capability-aware prompt profiles adapt prompts to model capability. Quality gates and minimum model requirements per task type. |
| Third-party library breaking changes |
Medium |
Python deps exact-pinned (==), JS deps range-based with lockfiles. Integration tests, abstraction layers, Renovate weekly updates. |
| Memory retrieval quality |
Medium |
Hybrid retrieval (dense + BM25 sparse with RRF fusion) shipped. LMEB-guided embedding selection implemented. The domain fine-tuning orchestrator is wired into boot; trajectory-mode training additionally requires a configured memory backend, otherwise the controllers degrade to HTTP 501. |
| Agent output inconsistency |
Low |
One org-wide house writing style with per-role and per-department scoping, hard rules enforced deterministically at the boundary. |
| WebSocket scaling |
Low |
In-process channels today. Multi-instance fan-out can ride on the shipped NATS JetStream bus when needed. |