v0.12.0
Forum Topics — Multiple Chats in One Group
ductor now fully supports Telegram forum topics. Create a group, enable topics, and each topic becomes its own isolated chat with its own conversation context.
- Topic isolation — every topic has its own session, independent from General and your private chat
- Per-topic model selection — run
/modelinside a topic to change just that topic's provider - Background tasks stay in their topic — task questions and results are delivered back to the topic they were started in
- Named sessions work in topics —
/sessioncreates sessions scoped to the current topic - Topic names in logs and status — topics show their name instead of just an ID
A group with 5 topics gives you 6 independent conversations (General + 5 topics), all sharing the same workspace, tools, and memory.
Group Chat Management
/where— see all tracked groups (active, rejected, left) with their IDs/leave <group_id>— manually leave a group- Auto-leave — bot auto-leaves groups not in
allowed_group_ids - Group audit — runs on startup, on config reload, and every 24 hours
allowed_user_idsandallowed_group_idsare now hot-reloadable — edit config.json, changes apply within secondsgroup_mention_onlyis now hot-reloadable — no restart needed to toggle
Background Tasks
- Task results now include the actual result — previously, the final task result injection could send the original prompt instead of the computed answer. Fixed.
- TASKMEMORY.md content appended to results — when a task completes, its memory file is included so the parent agent gets the full picture
- Resume reminders — task agents get a short reminder on each follow-up about how to communicate (ask_parent, TASKMEMORY)
- Delete tasks — new
delete_task.pytool lets models permanently remove finished tasks (entry + folder) - Sub-agent folder cleanup — fixed a bug where sub-agent task folders were not cleaned up on removal
Timeout Recovery (PR #24 by @n-haminger)
- Session preserved on CLI timeout — when the CLI times out, the session ID is now captured early and preserved so the next message auto-resumes where it left off
- Clear user message — shows timeout duration and confirms the session is preserved
Inter-Agent Communication (PR #25 by @n-haminger)
--summaryflag for async messages —ask_agent_async.py --summary "Short description"lets the sender control what preview text the recipient sees in their Telegram notification
Internal Improvements
- Unified MessageBus with Envelope system — all background delivery (cron, webhooks, heartbeat, tasks, inter-agent) now routes through a single bus
- Major orchestrator refactoring — extracted selectors, providers, and lifecycle into separate modules
- Centralized shared code, eliminated duplication across modules
- Comprehensive documentation rewrite
Full Changelog: v0.11.0...v0.12.0