Skip to content

ductor v0.9.0

Choose a tag to compare

@PleasePrompto PleasePrompto released this 01 Mar 06:46
· 266 commits to main since this release

ductor 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.
  • --new flag: Pass --new in ask_agent / ask_agent_async to 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_all command: 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. /stop still only kills local processes — use /stop_all when you want to nuke everything.

UX improvements

  • Case-insensitive commands: /Session, /STATUS, /Model all 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\_start displaying with a backslash in usage messages — now shows /agent_start correctly.

Upgrade

ductor upgrade
# or
pip install --upgrade ductor