v0.10.0 — Agent architecture decoupling and dialogue-state tracking
Added
- Dialogue-state tracking wired in: the previously uncompiled dialogue-state feature is now live —
DialogueStateStoretrait defined and included in theStateStorefacade,dialogue_statestable created by migration, runtime rebuild/record functions compiled, andpart_13_dialogue_stateintegration tests included in the suite. - Specialist prompt overhaul: specialists share a common
_executor_base.mdcore with per-kind sections;spawn_agentdescriptions nudge delegation when work fits a specialist.
Changed
- Agent internals decoupled (no user-facing behavior change) — completion of the architecture campaign started in v0.9.0:
- The ~60 loose mutable variables in the agent loop now live in 8 per-concern state structs (
StallTracker,FailureLedger,RecoveryState,BudgetTracker,EvidenceLedger,ReflectionState,PendingDirectives,LoopCounters) composed in aTurnState, with per-phase projections. - All nine loop phases (bootstrap, orchestration, message build, LLM, response, completion, stopping, tool prelude, tool execution) are free functions with explicit
Ctxinputs andOutcomeresults — no more extension-method sprawl on theAgentstruct (31impl Agentblocks reduced to 13, each justified). runtime/history.rs(4,117 lines) split intofollowup,completion_contract,turn_context,project_scope, andnotesmodules;agent/mod.rsshrunk from 4,233 to ~800 lines; no file insrc/agent/exceeds ~2,000 lines.- Outer ring: deferred cycle-breaking wiring consolidated into
startup/wiring.rs; newApprovalBrokertype replaces the raw approval channel sender threaded through 21 files; Telegram bootstrap-signing and approval rendering extracted fromtelegram.rs; six tools narrowed from the fullStateStorefacade to the specific store sub-trait they use. - Verified behavior-preserving by characterization tests (stall, force-text, completion blocking, truncation recovery, background ack) and an identical 2,294-test green suite at every slice.
Full Changelog: v0.9.35...v0.10.0
- The ~60 loose mutable variables in the agent loop now live in 8 per-concern state structs (
Full Changelog: v0.9.35...v0.10.0