v0.3.77
62 commits since v0.3.75. 105 files changed, +7320 / -341 lines.
✨ Features
7dc9f376Telegram /usage cache breakdown: per-model cache breakdown in /usage (#815)1eda8e1eRSI /evolve proposal: surface an available release as an /evolve proposal (#821)8683d7bdBrain proactive memory: surface relevant memory without waiting to be asked (#799)70f6a14dBrain query loading: let load_brain_file return only the sections that match (#800)d1521ce2RSI config-example tracking: track the config examples so pricing fixes reach users (#819)78ddf975Brain template-sync merge: additive key-level TOML merge for template sync (#819)785b6bedTUI finished checklist: keep the finished checklist on screen after a plan completes (#810)0dc08c2eModels natural naming: accept a model named the way people say it (#801)c852daae/execute provider routing: route /execute onto its own provider and model (#793)d37f1308/plan provider routing: route /plan onto its own provider and model (#792)34558b5dTelegram /new gating: gate /new to the owner and scope the menu to its audienced82629c7Brain clarify-before-build: instruct the agent to clarify before implementing
🔧 Fixes
51d3f6afPlan-card lock deadlock: stop the plan-card lock deadlocking every chat (#831)31544ba4Plan prose duplication: stop plan prose duplicating across card and flow block (#824)e1d24cf8Telegram HTML conversion: apply HTML conversion to all telegram_send actions (#835)b35c2710TUI bg-task position: move bg-task feedback from left to right on input border (#836)59b40556Memory UTC timestamps: store timestamps in UTC with the zone stated (#826)3632f741Phantom file-delivery detection: detect a claimed file delivery when nothing sent one (#825)58a28b81Telegram /start closed-group: /start recognises an existing member of a closed group (#776)9ad09c13RSI finding hash: hash the finding, not the events that illustrate it (#804)3ecc8c2aTelegram substance check: stop defining substance as "contains a pipe table" (#824)c3e238aePhantom null-effect calls: null-effect tool calls no longer buy immunity (#825)a1cf081cBrain no-announce rule: restore the rule against announcing a call instead of making one700fcc49RSI content-gated sync: gate template sync on content, not on the version number (#820)c6a817ddTelegram plan-card serialisation: serialise plan-card writes so concurrent refreshes stop duplicating (#822)439ed829Usage Opus 5 pricing: price Claude Opus 5 on /usage (#817)1ff869deUsage qwen3.8 pricing: price qwen3.8-max-preview on /usage (#816)7df4d617Plan completed-card revert: stop resurrecting completed plans everywhere (#813, #809)8c93bc71Telegram plan-card flood: stop the plan card flooding itself into duplicates (#814)3b99c835Telegram plan-card persistence: persist plan-card tracking so a restart stops duplicating it (#809 defect 1)dc072018Discord typing indicator: add the sustained typing indicator it never had (#812)f26ac0eeChannels typing persistence: keep the typing indicator alive through background tasks (#812)5d1a4e9fPlan completed-card render: let the completed card render its final state (#809 defect 2)3a390bedRSI capability-gap routing: route capability gaps to a proposal instead of discarding them (#811)b314020fRSI dead-cycle guard: stop cycles that can never execute a tool (#805)f0bfe3b4Usage cost attribution: attribute cost to the provider that served it (#807)a9898159TUI duplicate-submit guard: drop a re-submitted message the running turn is already answering (#798)83704dd9Brain unrun-command quote: quote the command a turn never ran back at it (#797)04ebc6e6Brain phantom-belief correction: correct the belief behind a phantom turn, not the format (#796)424e4f98Brain reasoning-cannot-tools: state that reasoning cannot execute tools (#795)822d2092TUI command labelling: label commands by what they run, not the directory (#790, #791)14bb031fPhantom command verification: verify claimed commands against what the turn actually rana56f6bedRepetition fenced-code exclusion: exclude fenced code from streaming loop detection65255c9eTelegram follow-up tools turn: run a real tools turn when a follow-up is tapped8b29df55TUI harness-status handling: stop counting harness status as work, and stop burying ita57c1241Phantom evidence check: check quoted evidence against what the tools returned9eea2a86Phantom investigation claim: count claimed investigation as a completion claim198c6999Phantom both-ends check: examine both ends of a turn, not just the leada2c285f6TUI steps-and-tools display: show steps AND tool calls, drop the either/or fallback7f645896Phantom self-update claim: count self-update claims as completion claims
📖 Documentation
0b44e266docs(readme): document the spaced /models form (#803)09ec1783docs(readme): document plan/execute provider and model routing (#794)
🧹 Miscellaneous
b49419b3chore(provider): log the reasoning_content decision (#830 step 1)7df4d617revert(plan): stop resurrecting completed plans everywhere (#813, #809)cead5014test(rsi): assert what the sync tracks and how each entry routes (#823)7ecadacfrefactor(brain): cut the domain sections to reference size64edc85drevert(telegram): stop delivering the agent's working-out to chat135b9015fix(phantom): catch a claim of having played or launched something5db83f3ffix(telegram): stop the flow block posting a new message every tick10d6ac51fix(telegram): drop an echoed plan title from the response (#837)1bc58dbffix(telegram): gate flush_intermediates like the streaming path (#838)
📊 Stats
- 62 commits since v0.3.75
- 105 files changed, +7320 / -341 lines
- 5,656 tests (5,631 passed, 0 failed, 25 ignored)
Full Changelog: v0.3.75...v0.3.77