Skip to content

v0.17.0

Choose a tag to compare

@PleasePrompto PleasePrompto released this 17 May 08:09
· 54 commits to main since this release

ductor v0.17.0

Release with Docker port publishing, Gemini CLI aliases, Telegram routing fixes, background task environment improvements, and cleaner Codex/workspace error handling.

TL;DR

  • Docker port publishing — new docker.published_ports config maps host/container ports through Docker, useful for local web UIs and services started inside the sandbox.
  • Gemini aliases in /modelauto, pro, flash, and flash-lite now appear before discovered Gemini models.
  • Cleaner Telegram group behavior — unaddressed group messages are dropped before queue indicators, including media prompts.
  • Forum topic delivery fixes — inter-agent and webhook wake replies preserve Telegram forum topics.
  • Background task environment fix — cron, webhook, and named background task subprocesses receive the correct DUCTOR_HOME.
  • Codex error cleanup — protocol-only Codex JSONL events are no longer shown to users as raw output.
  • Skill sync cleanup — invalid synced skills without required SKILL.md frontmatter are skipped/cleaned without touching user-owned skill folders.

Merged PRs

  • #120 by @ryuhaneul — preserve Telegram forum topic routing for inter-agent and webhook delivery.
  • #121 by @kdramapulse — pass DUCTOR_HOME into task CLI subprocesses.
  • #123 by @attid — drop unaddressed Telegram group messages before showing queue indicators.
  • #124 by @attid — expose Gemini CLI aliases in the model selector.
  • #125 by @ryuhaneul — handle PermissionError during rule-file sync.
  • #126 by @ryuhaneul — preserve response session IDs on error/abort paths.
  • #129 by @brianmarr — add Docker published_ports config.

Fixes

Codex raw JSONL output (#128)

Codex background/interrupted error paths no longer leak protocol-only JSONL events into user-visible output. If Codex provides a structured error, stderr, or partial assistant text, ductor still shows the best available message.

Skill frontmatter warnings (#119)

Skill sync now validates required YAML frontmatter before sharing skills across CLI homes. Invalid Ductor-managed links/copies are cleaned up, while user-owned real directories are preserved.

Session preservation polish

Error/abort paths can keep a newly returned session ID for resume, but failed turns no longer overwrite a known good session ID or count as successful messages.

Verification

  • pytest — 3697 passed
  • ruff format --check .
  • ruff check .
  • mypy ductor_bot
  • python -m ductor_bot --versionductor 0.17.0
  • python -m build → built ductor-0.17.0.tar.gz and ductor-0.17.0-py3-none-any.whl

Full changelog: v0.16.3...v0.17.0