Repository navigation
v0.3.11
Koder v0.3.11
A large harness release: more accurate usage and cost, a bigger and smarter /review, first-class Office/PDF attachments, a built-in local model engine, and a long list of reliability fixes across the turn loop, the TUI, and imports.
Highlights
- Accurate usage & cost. The authoritative context budget now shows on both CLI and desktop, multi-step turns count their full token usage (not just the last step), and cost is consistently marked as an estimate everywhere. (#804, #803, #802, #809)
- Bigger
/review. Added dedicated security, performance, and concurrency review specialists on top of the existing reviewers. (#806) - Office & PDF attachments. Read and attach Excel, Word, and PowerPoint on CLI and desktop; PDFs on a text-only model are pointed at
pdftotextinstead of dead-ending. (#781, #782, #814, #816) - Built-in local engine. Run on-disk GGUF models with no separate daemon. (#783)
- Live OpenRouter catalog. The full OpenRouter model list is now surfaced. (#811)
- New tools.
multiedit(batched atomic single-file edits),repo_map(fast structural codebase map), and LSP navigation on by default. (#791, #794, #792) - Queued messages & steering. Surface and control mid-turn queued messages, with a steer-now option. (#787)
Added
- Authoritative context budget on CLI and desktop (#804)
/reviewsecurity, performance, and concurrency specialists (#806)- Built-in local engine over on-disk GGUF models, no daemon (#783)
- Full live OpenRouter catalog (#811)
- Read & attach Excel / Word / PowerPoint on CLI and desktop (#781); attach plain-text/source files on paste (#782)
multiedittool — batched atomic edits to a single file (#791)repo_maptool — fast structural codebase map for orientation (#794)- LSP navigation tool enabled by default, opt-out (#792)
- Mid-turn queued-message controls and steer-now (#787)
- PDF guidance: point the agent at
pdftotextwhen a model can't read PDFs natively (#816) - Background-shell completion notification (#815)
- Audit trail: bracket a session with
session.start/session.end(#774) and recordtool.start/tool.endper call behindconfig.audit.record_activity(#775) - Opt-in
insecureTLS for self-hosted providers reached by bare IP / internal CA (#814) - Autonomy: dropped the forced objective and the default round wall (#797)
Fixed
- Turn loop: recover from context overflow with a bounded retry (#796); fail a stalled model stream instead of hanging forever (#808); escalate SIGTERM→SIGKILL so killed children can't linger (#800); keep the internal
invalidrepair tool for restrictive agents (#801); close four race/robustness findings from the audit (#795) - Usage/stats: count a multi-step turn's full tokens (#803); mark cost as an estimate consistently (#802); distinguish "usage not reported" from a free/empty turn (#809)
- Attachments/documents: Office-doc extraction fidelity — PPTX speaker notes, real XLSX sheet names, DOCX whitespace (#814); place r-less XLSX cells positionally and reject non-OOXML archives (#784); degrade unprocessable pasted images instead of failing the turn (#780)
- Contracts: make the frozen prompt-snapshot and conformance suites OS-independent (#813), backed by a read/control conformance suite (#812)
- TUI: eliminate multi-session memory leaks (#778); resolve session root by full chain and separate states by hue (#786); keep Unicode filename spaces and cap pasted image/PDF size, parse desktop
file://drops (#785); actionable errors for/loopand/workflowwhen disabled (#790); make silently-inert commands act or guide (#789) - Permissions: match tool enable/disable to ask domains and gate
package_exec(#798) - MCP: bound MCP tool calls by default (5 min) so a hung server can't stall a turn (#793)
- Sessions: make session removal robust and diagnosable instead of all-or-nothing (#807)
- Imports/skills: stop dropping content silently — warn on skipped skills and imported attachments (#810)
- Observability: log the failures the turn-end and MCP paths previously swallowed (#799)
- Performance: cap injected instruction sources at 100KB (#788)
Docs
- Explain
limit.contextfor local models (#805)
Full commit history: v0.3.10...v0.3.11