Notes
- Nested
<Aspects>inherit outer budgets wholesale: an innertokenBudgetorlatencySloreplaces the parent’s config for that field (no per-field merge), thoughtracking’stokens/latencyeach fall back to the parent independently. - Budgets enforce at task-dispatch time, independent of
tracking(which only controls metric emission). Before each task, the engine checks accumulated tokens againsttokenBudget.maxand elapsed wall-clock againstlatencySlo.maxMs, then appliesonExceeded:failraisesASPECT_BUDGET_EXCEEDEDand fails the run,warnlogs and continues,skip-remainingskips the task;perTasklimits aren’t enforced yet. - Accumulated token usage is per run, survives resume, and re-seeds from persisted token-usage events.