changelog
v0.18.0 (2026-01-13)
changes
add per-chat and per-topic default agent via /agent set command #109
add session resume shorthand for pi runner #113
expose sender_id and raw fields on MessageRef for plugins #112
fixes
recreate stale topic bindings when topic is deleted and recreated #127
use stdout session header for pi runner #126
docs
restructure docs into diataxis format and switch to zensical #121 #125
v0.17.1 (2026-01-12)
fixes
fix telegram /new command crash #106
track telegram sessions for plugin runs #107
align telegram prompt upload resume flow #105
v0.17.0 (2026-01-12)
changes
add chat session mode (session_mode = "chat") for auto-resume per chat without replying, reset with /new #102
add message_overflow = "split" to send long responses as multiple messages instead of trimming #101
add show_resume_line option to hide resume lines when auto-resume is available #100
add auto_put_mode = "prompt" to start a run with the caption after uploading a file #97
expose thread_id to plugins via run context #99
use tomli-w for config serialization #103
add voice_transcription_model setting for local whisper servers #98
docs
document chat sessions, message overflow, and voice transcription model settings
v0.16.0 (2026-01-12)
fixes
harden telegram file transfer handling #84
changes
simplify runtime, config, and telegram internals #85
refactor telegram boundary types #90
docs
add tips section to user guide
rework readme
v0.15.0 (2026-01-11)
changes
add telegram file transfer support #83
docs
document telegram file transfers #83
v0.14.1 (2026-01-10)
changes
add topic scope and thread-aware replies for telegram topics #81
docs
update telegram topics docs and user guide for topic scoping #81
v0.14.0 (2026-01-10)
changes
add telegram forum topics support with /topic command for binding threads to projects/branches, persistent resume tokens per topic, and /ctx for inspecting or updating bindings #80
add inline cancel button to progress messages #79
add config hot-reload via watchfiles #78
docs
add user guide and telegram topics documentation #80
v0.13.0 (2026-01-09)
changes
add per-project chat routing #76
fixes
hardcode codex exec flags #75
reuse project root for current branch when resolving worktrees #77
docs
normalize casing in the readme and changelog
v0.12.0 (2026-01-09)
changes
add optional telegram voice note transcription (routes transcript like typed text) #74
fixes
fix plugin allowlist matching and windows session paths #72
docs
document telegram voice transcription settings #74
v0.11.0 (2026-01-08)
changes
add entrypoint-based plugins for engines/transports plus a takopi plugins command and public API docs #71
fixes
create pi sessions under the run base dir #68
skip git repo checks for codex runs #66
v0.10.0 (2026-01-08)
changes
add transport registry with --transport overrides and a takopi transports command #69
migrate config loading to pydantic-settings and move telegram credentials under [transports.telegram] #65
include project aliases in the telegram slash-command menu with validation and limits #67
fixes
validate worktree roots instead of treating nested paths as worktrees #63
harden onboarding with clearer config errors, safe backups, and refreshed command menu wording #70
docs
add architecture and lifecycle diagrams
call out the default worktrees directory #64
document the transport registry and onboarding changes #69
v0.9.0 (2026-01-07)
projects and worktrees
register repos with takopi init <alias> and target them via /project directives
route runs to git worktrees with @branch — takopi resolves or creates worktrees automatically
replies preserve context via ctx: project @branch footers, no need to repeat directives
set default_project to skip the /project prefix entirely
per-project default_engine and worktree_base configuration
changes
transport/presenter protocols plus transport-agnostic exec_bridge
move telegram polling + wiring into takopi.telegram with transport/presenter adapters
list configured projects in the startup banner
fixes
render ctx: footer lines consistently (backticked + hard breaks) and include them in final messages
breaking
remove takopi.bridge; use takopi.runner_bridge and takopi.telegram instead
docs
add a projects/worktrees guide and document takopi init behavior in the readme
v0.8.0 (2026-01-05)
changes
queue telegram requests with rate limits and retry-after backoff #54
docs
improve documentation coverage #52
align runner guide with factory pattern
add missing pr links in the changelog
v0.7.0 (2026-01-04)
changes
migrate logging to structlog with structured pipelines and redaction #46
add msgspec schemas for jsonl decoding across runners #37
v0.6.0 (2026-01-03)
changes
interactive onboarding: run takopi to set up bot token, chat id, and default engine via guided prompts #39
lockfile to prevent multiple takopi instances from racing the same bot token #30
re-run onboarding anytime with takopi --onboard
v0.5.3 (2026-01-02)
changes
default claude allowed tools to ["Bash", "Read", "Edit", "Write"] when not configured #29
v0.5.2 (2026-01-02)
changes
show not installed agents in the startup banner (while hiding them from slash commands)
fixes
treat codex reconnect notices as non-fatal progress updates instead of errors #27
avoid crashes when codex tool/file-change events omit error fields #27
v0.5.1 (2026-01-02)
changes
relax telegram ACL to check chat id only, enabling use in group chats and channels #26
improve onboarding documentation and add tests #25
v0.5.0 (2026-01-02)
changes
add an opencode runner via the opencode cli with json event parsing and resume support #22
add a pi agent runner via the pi cli with jsonl streaming and resume support #24
document the opencode and pi runners, event mappings, and stream capture tips
fixes
fix path relativization so progress output does not strip sibling directories #23
reduce noisy debug logging from markdown_it/httpcore
v0.4.0 (2026-01-02)
changes
add auto-router runner selection with configurable default engine #15
make auto-router the default entrypoint; subcommands or /{engine} prefixes override for new threads
add /cancel + /{engine} command menu sync on startup
show engine name in progress and final message headers
omit progress/action log lines from final output for cleaner answers #21
fixes
improve codex exec error rendering with stderr extraction #18
preserve markdown formatting and resume footer when trimming long responses #20
v0.3.0 (2026-01-01)
changes
add a claude code runner via the claude cli with stream-json parsing and resume support #9
auto-discover engine backends and generate cli subcommands from the registry #12
add BaseRunner session locking plus a JsonlSubprocessRunner helper for jsonl subprocess engines
add jsonl stream parsing and subprocess helpers for runners
lazily allocate per-session locks and streamline backend setup/install metadata
improve startup message formatting and markdown rendering
add a debug onboarding helper for setup troubleshooting
breaking
runner implementations must define explicit resume parsing/formatting (no implicit standard resume pattern)
fixes
stop leaking a hidden engine-id cli option on engine subcommands
docs
add a runner guide plus claude code docs (runner, events, stream-json cheatsheet)
clarify the claude runner file layout and add guidance for jsonl-based runners
document "minimal" runner mode: started+completed only, completed-only actions allowed
v0.2.0 (2025-12-31)
changes
introduce runner protocol for multi-engine support #7
normalized event model (started, action, completed)
actions with stable ids, lifecycle phases, and structured details
engine-agnostic bridge and renderer
add /cancel command with progress message targeting #4
migrate async runtime from asyncio to anyio #6
stream runner events via async iterators (natural backpressure)
per-thread job queues with serialization for same-thread runs
render resume as codex resume <token> command lines
various rendering improvements including file edits
breaking
require python 3.14+
remove --profile flag; configure via [codex].profile only
fixes
serialize new sessions once resume token is known
preserve resume tokens in error renders #3
preserve file-change paths in action events #2
terminate codex process groups on cancel (posix)
correct resume command matching in bridge
v0.1.0 (2025-12-29)
features
telegram bot bridge for openai codex cli via codex exec
stateless session resume via `codex resume <token>` lines
real-time progress updates with ~2s throttling
full markdown rendering with telegram entities (markdown-it-py + sulguk)
per-session serialization to prevent race conditions
interactive onboarding guide for first-time setup
codex profile configuration
automatic telegram token redaction in logs
cli options: --debug, --final-notify, --version