Files
takopi/changelog.md
T
2026-01-11 01:44:35 +04:00

258 lines
9.7 KiB
Markdown

# changelog
## v0.14.1 (2026-01-10)
### changes
- add topic scope and thread-aware replies for telegram topics [#81](https://github.com/banteg/takopi/pull/81)
### docs
- update telegram topics docs and user guide for topic scoping [#81](https://github.com/banteg/takopi/pull/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](https://github.com/banteg/takopi/pull/80)
- add inline cancel button to progress messages [#79](https://github.com/banteg/takopi/pull/79)
- add config hot-reload via watchfiles [#78](https://github.com/banteg/takopi/pull/78)
### docs
- add user guide and telegram topics documentation [#80](https://github.com/banteg/takopi/pull/80)
## v0.13.0 (2026-01-09)
### changes
- add per-project chat routing [#76](https://github.com/banteg/takopi/pull/76)
### fixes
- hardcode codex exec flags [#75](https://github.com/banteg/takopi/pull/75)
- reuse project root for current branch when resolving worktrees [#77](https://github.com/banteg/takopi/pull/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](https://github.com/banteg/takopi/pull/74)
### fixes
- fix plugin allowlist matching and windows session paths [#72](https://github.com/banteg/takopi/pull/72)
### docs
- document telegram voice transcription settings [#74](https://github.com/banteg/takopi/pull/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](https://github.com/banteg/takopi/pull/71)
### fixes
- create pi sessions under the run base dir [#68](https://github.com/banteg/takopi/pull/68)
- skip git repo checks for codex runs [#66](https://github.com/banteg/takopi/pull/66)
## v0.10.0 (2026-01-08)
### changes
- add transport registry with `--transport` overrides and a `takopi transports` command [#69](https://github.com/banteg/takopi/pull/69)
- migrate config loading to pydantic-settings and move telegram credentials under `[transports.telegram]` [#65](https://github.com/banteg/takopi/pull/65)
- include project aliases in the telegram slash-command menu with validation and limits [#67](https://github.com/banteg/takopi/pull/67)
### fixes
- validate worktree roots instead of treating nested paths as worktrees [#63](https://github.com/banteg/takopi/pull/63)
- harden onboarding with clearer config errors, safe backups, and refreshed command menu wording [#70](https://github.com/banteg/takopi/pull/70)
### docs
- add architecture and lifecycle diagrams
- call out the default worktrees directory [#64](https://github.com/banteg/takopi/pull/64)
- document the transport registry and onboarding changes [#69](https://github.com/banteg/takopi/pull/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](https://github.com/banteg/takopi/pull/54)
### docs
- improve documentation coverage [#52](https://github.com/banteg/takopi/pull/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](https://github.com/banteg/takopi/pull/46)
- add msgspec schemas for jsonl decoding across runners [#37](https://github.com/banteg/takopi/pull/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](https://github.com/banteg/takopi/pull/39)
- lockfile to prevent multiple takopi instances from racing the same bot token [#30](https://github.com/banteg/takopi/pull/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](https://github.com/banteg/takopi/pull/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](https://github.com/banteg/takopi/pull/27)
- avoid crashes when codex tool/file-change events omit error fields [#27](https://github.com/banteg/takopi/pull/27)
## v0.5.1 (2026-01-02)
### changes
- relax telegram ACL to check chat id only, enabling use in group chats and channels [#26](https://github.com/banteg/takopi/pull/26)
- improve onboarding documentation and add tests [#25](https://github.com/banteg/takopi/pull/25)
## v0.5.0 (2026-01-02)
### changes
- add an opencode runner via the `opencode` cli with json event parsing and resume support [#22](https://github.com/banteg/takopi/pull/22)
- add a pi agent runner via the `pi` cli with jsonl streaming and resume support [#24](https://github.com/banteg/takopi/pull/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](https://github.com/banteg/takopi/pull/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](https://github.com/banteg/takopi/pull/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](https://github.com/banteg/takopi/pull/21)
### fixes
- improve codex exec error rendering with stderr extraction [#18](https://github.com/banteg/takopi/pull/18)
- preserve markdown formatting and resume footer when trimming long responses [#20](https://github.com/banteg/takopi/pull/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](https://github.com/banteg/takopi/pull/9)
- auto-discover engine backends and generate cli subcommands from the registry [#12](https://github.com/banteg/takopi/pull/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](https://github.com/banteg/takopi/pull/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](https://github.com/banteg/takopi/pull/4)
- migrate async runtime from asyncio to anyio [#6](https://github.com/banteg/takopi/pull/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](https://github.com/banteg/takopi/pull/3)
- preserve file-change paths in action events [#2](https://github.com/banteg/takopi/pull/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`