Releases: mideco-tech/codex-tg
Releases · mideco-tech/codex-tg
v0.5.0
v0.5.0
v0.5.0 starts the Codex Control Plane direction for codex-tg.
Highlights
- Repositions the project from a Telegram-first remote UI to a local Codex Control Plane with Telegram as the first production adapter.
- Adds ADR-019 and a full documentation set for the v0.5 architecture, research, theory log, roadmap, and user-facing Control Plane wiki page.
- Adds
internal/control, an adapter-independent Go layer for runtime sessions, threads, turns, approvals, events, ecosystem discovery, diagnostics, and notification severity. - Extends the App Server client with control-plane wrappers for thread administration and ecosystem discovery.
- Adds a schema-backed capability map so future router-agent work can detect installed Codex method support instead of assuming docs and local versions always match.
Compatibility
- Telegram behavior is intended to remain compatible with
v0.4.0. - App Server remains the authoritative live state source.
- SDK/MCP are allowed only as orchestration adapters under ADR-019.
- No public HTTP API, voice adapter, or cloud layer is introduced in this release.
Validation
go test ./internal/control ./internal/appserver ./internal/daemongo test ./...go build -buildvcs=false ./...git diff --check- targeted secret/local scans over edited docs and control code
Live Telegram E2E was not required because this release does not change Telegram-visible behavior.
v0.4.0
v0.4.0
v0.4.0 adds the first macOS service installer layer for codex-tg.
Highlights
ctr-go service installcreates local config, service plist, and optional
start-at-login setup through a friendly CLI wizard or flags.ctr-go service start|stop|restart|status|enable-login|disable-login|uninstall
manages the user LaunchAgent.- macOS tray app controls service state, opens config/logs, runs doctor, and can
start the terminal setup flow. - Proxy-dependent macOS setups are supported by preserving proxy env in the
private config while keeping the LaunchAgent plist limited toCTR_GO_CONFIG. - Release packaging now includes macOS
.pkgartifacts alongside the existing
CLI archives.
Safety
- Telegram tokens stay in local
config.envwith0600permissions. - LaunchAgent environment contains only
CTR_GO_CONFIG. - The tray app does not read or display secrets.
Validation
go test ./internal/config ./cmd/ctr-go ./internal/trayappgo test ./...go build -buildvcs=false ./...- macOS tray build
- local macOS package dry-run
git diff --check- targeted secret/local scan
- macOS live Telegram E2E through service-managed daemon
v0.3.0
v0.3.0 Release Notes
Highlights
- Added official GitHub Release binaries for macOS, Linux, and Windows.
- Added
ctr-go initfor first-run local configuration. - Added
~/.codex-tg/config.envsupport, with explicit environment variables still taking priority. - Kept Telegram bot tokens out of
status,doctor, daemon logs, and init summaries. - Added a release packaging workflow with SHA-256 checksums.
Validation
go test ./internal/config ./cmd/ctr-gogo test ./...go build -buildvcs=false ./...- local release artifact dry-run through
scripts/build-release.sh - extracted darwin/arm64 binary smoke:
ctr-go init,ctr-go status, token leak check, and0600config mode git diff --check- targeted secret/local scan
Notes
- No App Server protocol changes were required.
- No database migration is required.
- Existing environment-variable deployments continue to work because env values override config file values.
v0.3.0is a distribution and onboarding release on top ofv0.2.7.
v0.2.7
v0.2.7 Release Notes
Highlights
- Replaced the operator-specific Russian-language instruction in
AGENTS.mdwith language-neutral contributor guidance. - Future agents should match the current user's language when clear, while public docs may remain English-first.
- Runtime behavior is unchanged.
Validation
go test ./...go build -buildvcs=false ./...git diff --check- targeted secret/local scan
Notes
- No App Server protocol changes were required.
- No database migration is required.
- No Telegram live E2E was required because this hotfix only changes contributor guidance and release metadata.
v0.2.7is a documentation hotfix on top ofv0.2.6.
v0.2.6
v0.2.6 Release Notes
Highlights
- Plan-like Final Cards now show
Turn off Planso an operator can leave a thread stuck in Plan Mode without learning another public command. /stop <thread>now also arms the next ordinary turn to start in App Server Default Mode, even when the thread is already idle./defaultand/reply --defaultremain hidden compatibility fallbacks, but/defaultis no longer advertised in the Telegram command menu or/help./stopno longer tries to interrupt a completed turn just because App Server left a stale active-turn id in thread metadata.
Validation
go test ./internal/appserver ./internal/daemon ./internal/telegram ./internal/storagego test ./...go build -buildvcs=false ./...git diff --check- Python compile for the live E2E harness
- targeted secret/local scan
- macOS LaunchAgent rebuild/restart
- checked-in live Telegram E2E case:
plan_mode_reset
Notes
- No App Server protocol changes were required.
- No database migration is required.
v0.2.6is a patch release on top ofv0.2.5.
v0.2.5
v0.2.5 Release Notes
Highlights
- Telegram notification noise is reduced: only
New run(configurable),[Plan], and[Final]use normal Telegram notifications. [Final]is delivered as a new message and transient live cards are cleaned up best-effort after finalization.- Tool-only runs, such as a single long shell command with empty output, keep their current tool visible while running and expose the completed command in Details and Tools file.
/defaultand/reply --defaultcan force the next Telegram-origin turn into App Server Default Mode when a thread remains in Plan Mode.- ADR-015 records the notification contract.
Validation
go test ./internal/appserver ./internal/daemon ./internal/telegramgo test ./internal/telegram ./internal/config ./internal/daemon ./internal/storage ./testsgo test ./...go build -buildvcs=false ./...git diff --check- Python compile for the live E2E harness
- targeted secret/local scan
- macOS LaunchAgent rebuild/restart
- checked-in live Telegram E2E cases:
tool_only_sleep_detailsandnotification_contract
Notes
- No App Server protocol changes were required.
- No database migration is required.
CTR_GO_NOTIFY_NEW_RUN=falsekeeps theNew runcard visible but silent.v0.2.5is a patch release on top ofv0.2.4.
v0.2.4
v0.2.4 Release Notes
Highlights
/newchat <prompt>now creates a real Codex UI Chat folder under the configured Chats root before starting the thread./newthread <prompt>preserves a no-Chat-folder path for starting without project selection.CTR_GO_CODEX_CHATS_ROOTconfigures the Chat folder root and defaults to~/Documents/Codex.- ADR-014 records the
/newchatfolder contract and the/newthreadescape hatch.
Validation
go test ./internal/daemon ./internal/config ./internal/telegram ./testsgo test ./...go build -buildvcs=false ./...git diff --check- Python compile for the live E2E harness
- targeted secret/local scan
- macOS LaunchAgent rebuild/restart
- checked-in live Telegram E2E case:
newchat_folder
Notes
- No App Server protocol changes were required.
- No database migration is required.
/newthreadsends no Telegram-selected cwd tothread/start; App Server may still attach the daemon default cwd.v0.2.4is a patch release on top ofv0.2.3.
v0.2.3
v0.2.3 Release Notes
Highlights
- Fixed the public CI secret-pattern smoke scan after
v0.2.2by using public Windows path fixtures in tests. - Added
/newchatto the Telegram command menu registration, matching the existing runtime command and docs. - Added command-menu unit coverage so
/newchatstays visible and duplicate command names are caught.
Validation
go test ./internal/telegramgo test ./...go build -buildvcs=false ./...git diff --check- targeted secret/local scan
- macOS LaunchAgent rebuild/restart
- Telegram Bot API
getMyCommandsreadback includednewchat - GitHub Actions CI passed on
main
Notes
- No App Server protocol changes were required.
- No database migration is required.
v0.2.3is a patch release on top ofv0.2.2.
v0.2.2
v0.2.2 Release Notes
Highlights
- Fixed a Telegram Details binding regression for multiple completed runs in the same thread.
- Older Final Cards now keep their own Details, Tool view, Tools file export, and Back behavior.
- Stale or mismatched Details callbacks fail closed instead of rendering the latest run.
- Details can resolve older turns from nested App Server
thread/readpayloads.
Validation
go test ./internal/daemon ./internal/storagego test ./...go build -buildvcs=false ./...git diff --check- targeted secret/local scan
- macOS LaunchAgent rebuild/restart
- live Telegram readback:
- checked-in
details_bindingcase
- checked-in
Notes
- No App Server protocol changes were required.
- No database migration is required.
v0.2.2is a patch release on top ofv0.2.1.
v0.2.1
v0.2.1 Release Notes
Highlights
- Telegram-origin
[Tool]no longer falls back to an older completed command while a newer live current tool is running. /projectsnow separates Codex UIDocuments/Codexchats into a dedicatedChatsnavigation path with recency sorting and pagination.- Project buttons use
N. Project name; Chat buttons useChat N. Thread name. - Project rows no longer expose internal
key:values and instead showlast thread:. /newchat <prompt>starts a new App Server thread without selecting a project cwd.
Validation
go test ./internal/daemon ./internal/config ./internal/model ./internal/storage ./testsgo test ./...go build -buildvcs=false ./...git diff --check- targeted secret/local scan
- macOS LaunchAgent rebuild/restart
- live Telegram readback:
- Projects/Chats label smoke
current_tool_priority
Notes
v0.2.0remains the live App Server event refactor release.v0.2.1is a patch release for current-tool stability plus Projects/Chats UX polish.- No App Server protocol changes were required.