ductor v0.9.1
ductor v0.9.1
Hotfix for v0.9.0 — fixes a type error in /stop_all when background tasks are active.
Bug fix
/stop_allwith background tasks: Fixed aTypeErrorinabort_all_agents()that occurred when a sub-agent had active background tasks. The background task registry was iterated by task ID (string) instead of chat ID (int), causingcancel_all()to fail.
What's in v0.9.0
Named inter-agent sessions, /stop_all for multi-agent abort, provider-switch detection, and UX improvements.
Named inter-agent sessions
Inter-agent communication now uses persistent named sessions — sub-agents remember previous conversations and can resume where they left off.
- Automatic session resume: When the main agent talks to a sub-agent, the conversation continues in the same CLI session. No more cold starts on every message.
- Per-sender isolation: Each calling agent gets its own named session (
ia-main,ia-helper, etc.), so parallel conversations don't interfere. --newflag: Pass--newinask_agent/ask_agent_asyncto force a fresh session when you need a clean slate.- Session persistence: Named sessions survive bot restarts — stored in each agent's
named_sessions.json. - Provider-switch detection: If a sub-agent switches provider (e.g. codex → claude), the old session is automatically ended (session IDs aren't portable across providers) and a fresh one is created. A notification is sent to the Telegram chat so you know what happened.
Thanks to @n-haminger for the Named Sessions implementation in #18!
/stop_all — kill everything
New command that stops all running processes across all agents at once.
/stop_allcommand: Kills CLI processes on the main agent and every sub-agent, plus cancels in-flight async inter-agent tasks on the bus.- "stop all" bare words: Type "stop all", "stopp alle", "cancel all", or "abort all" in chat — works the same as the command, no slash needed.
- Multi-provider safe: Works regardless of how many sub-agents you have or which providers they use.
/stopstill only kills local processes — use/stop_allwhen you want to nuke everything.
UX improvements
- Case-insensitive commands:
/Session,/STATUS,/Modelall work now. Mobile keyboards that auto-capitalize after/no longer break commands. - Changelog keeps upgrade button: Tapping "Changelog" on an update notification no longer removes the "Upgrade now" button. Both stay visible, and "Upgrade now" is also shown below the changelog text.
- Clean command names: Fixed
/agent\_startdisplaying with a backslash in usage messages — now shows/agent_startcorrectly.
Upgrade
ductor upgrade
# or
pip install --upgrade ductor