v0.3.62
49 commits since v0.3.61. 64 files changed, +7500 / -404 lines.
✨ Features
537f5c9fCollapsible Slack tool groups: Expand/Collapse toggle on grouped tool-call blocks13c950ceSlack reaction turns and react-back: emoji reactions trigger agent turns, Telegram parity (#372)d324f427Slack grouped tool-call messages: tool calls collapse into one edited-in-place message (#371)dfd90ed4Concurrent auto-approved tool batches: parallel execution of independent tool calls (#361)d2c8a749Document tools in lazy-tools discovery: generate_document variants surfaced in tool_search (#368)d4da1bbbPPTX style layer: brand templates, accent titles (#366)1206761bDOCX style layer: accent headings, page furniture, shaded tables (#365)b2b48645XLSX style layer: header fill, zebra rows, freeze panes, autofilter (#364)272d60dcDejaVu Sans bundled for PDF: real Unicode text rendering (#363)a06a71a7PDF page-header logos: brand logos rendered on every styled PDF page (#362)d937690cPDF style layer: brand colors, page furniture, zebra rows (#362)8c5dee93PDF content-sized columns: auto-width columns, header separator, row rules7ab3cb7cPPTX fallback backend: generate_document PPTX via fallback when native backend unavailable (#357)7f4c64a9Native PDF backend: generate_document PDF generation (#357)a96ee480Native DOCX backend: generate_document Word document generation (#357)f57cd0b3generate_document tool: new tool with native XLSX backend for spreadsheet generation (#357)d1ff6fdbNative Telegram rich content decoding: raw JSON stays as safety net (#359)a42cef1cRaw-aware Telegram update intake: forwards of undecodable content reach the agent (#354)b3320c85default_provider and default_model config: new [agent] config keys (#314)5cdf4b61Self-extract media frames: preamble guidance for vision-absent models (#308)
🔧 Fixes
0844954dSlack image and TTS external uploads: migrated to the external upload flow (#370 follow-up)3b406f6cTUI inactive pane rendering: live tool rounds now show on inactive panes (#369)1e845ed3Slack send_file external upload: migrated to the external upload flow (#370)06ae1620Synthetic prompt compactness: system tags persist instead of scaffoldinge1a35543PDF mojibake and table overlap: follow-up fix for document generation (#357)e8a02397Telegram mid-turn message queuing: queue instead of cancelling in-flight tools7b1e11f0Telegram standalone status removal: removed entirely (#360 follow-up)cb8deb41Telegram payload truncation limit: increased to 4096beb77eabTelegram single progress surface: status folds into block header (#360)ca10019eTelegram edit-failure resilience: never delete the processing-log block (#356)6794b215Telegram forward preservation: never drop forwarded messages, tag with provenance (#354)188b34c0Telegram reaction mapping: map to allowed set, never go silent (#353)7b89fe4dTelegram folded-finals dedup: exact-match at any length (#316)1c46ec7bTelegram status parse_mode: add HTML to sends/edits (#312)5433f704Telegram initial status HTML: parse HTML in initial status messagesb826d97bLazy tools CORE_TOOLS: add analyze_image/analyze_videofc5f575bTelegram markdown-to-HTML: apply conversion for formatted output (#315)e900903fTelegram bold status: visual prominence (#312, #313)2758f7e0Telegram folded-block dedup: match by prefix, not exact (#311)ac6397b0Reaction-triggered turns: default to react-only, not text (#309)
📖 Documentation
3054db7eupdate test counts to 4,647 across 424 modules (11 new test files)06e60222document Slack grouped tool calls, reactions, external uploads1d3d8578document [agent] max_concurrent now that it is enforced (#361)7598f419document the generate_document tool and its styling surface (#367)a0c74bfatool description tells the agent to deliver files on channels1ebe8598clarify rebuild is a cron-scheduled background jobaf362f40document default_provider and default_model in [agent] section (#314)
🧹 Miscellaneous
b717c0d8test(agent): cover parallel tool-batch eligibility, ordering, cancellation (#361)54a7d69ftest(doc_gen): prove every wrapped table line gets its own baseline
📊 Stats
- 49 commits since v0.3.61
- 64 files changed, +7500 / -404 lines
- 4648 tests (4648 passed, 0 failed, 29 ignored)
Full Changelog: v0.3.61...v0.3.62