Skip to content

Releases: mideco-tech/codex-tg

v0.5.0

18 May 13:56

Choose a tag to compare

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/daemon
  • go 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

07 May 16:42

Choose a tag to compare

v0.4.0

v0.4.0 adds the first macOS service installer layer for codex-tg.

Highlights

  • ctr-go service install creates 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 to CTR_GO_CONFIG.
  • Release packaging now includes macOS .pkg artifacts alongside the existing
    CLI archives.

Safety

  • Telegram tokens stay in local config.env with 0600 permissions.
  • 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/trayapp
  • go 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

07 May 11:35

Choose a tag to compare

v0.3.0 Release Notes

Highlights

  • Added official GitHub Release binaries for macOS, Linux, and Windows.
  • Added ctr-go init for first-run local configuration.
  • Added ~/.codex-tg/config.env support, 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-go
  • go 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, and 0600 config 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.0 is a distribution and onboarding release on top of v0.2.7.

v0.2.7

06 May 15:15

Choose a tag to compare

v0.2.7 Release Notes

Highlights

  • Replaced the operator-specific Russian-language instruction in AGENTS.md with 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.7 is a documentation hotfix on top of v0.2.6.

v0.2.6

06 May 10:43

Choose a tag to compare

v0.2.6 Release Notes

Highlights

  • Plan-like Final Cards now show Turn off Plan so 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.
  • /default and /reply --default remain hidden compatibility fallbacks, but /default is no longer advertised in the Telegram command menu or /help.
  • /stop no 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/storage
  • go 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.6 is a patch release on top of v0.2.5.

v0.2.5

06 May 02:03

Choose a tag to compare

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.
  • /default and /reply --default can 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/telegram
  • go test ./internal/telegram ./internal/config ./internal/daemon ./internal/storage ./tests
  • go 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_details and notification_contract

Notes

  • No App Server protocol changes were required.
  • No database migration is required.
  • CTR_GO_NOTIFY_NEW_RUN=false keeps the New run card visible but silent.
  • v0.2.5 is a patch release on top of v0.2.4.

v0.2.4

05 May 23:19

Choose a tag to compare

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_ROOT configures the Chat folder root and defaults to ~/Documents/Codex.
  • ADR-014 records the /newchat folder contract and the /newthread escape hatch.

Validation

  • go test ./internal/daemon ./internal/config ./internal/telegram ./tests
  • go 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.
  • /newthread sends no Telegram-selected cwd to thread/start; App Server may still attach the daemon default cwd.
  • v0.2.4 is a patch release on top of v0.2.3.

v0.2.3

05 May 22:28

Choose a tag to compare

v0.2.3 Release Notes

Highlights

  • Fixed the public CI secret-pattern smoke scan after v0.2.2 by using public Windows path fixtures in tests.
  • Added /newchat to the Telegram command menu registration, matching the existing runtime command and docs.
  • Added command-menu unit coverage so /newchat stays visible and duplicate command names are caught.

Validation

  • go test ./internal/telegram
  • go test ./...
  • go build -buildvcs=false ./...
  • git diff --check
  • targeted secret/local scan
  • macOS LaunchAgent rebuild/restart
  • Telegram Bot API getMyCommands readback included newchat
  • GitHub Actions CI passed on main

Notes

  • No App Server protocol changes were required.
  • No database migration is required.
  • v0.2.3 is a patch release on top of v0.2.2.

v0.2.2

05 May 21:48

Choose a tag to compare

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/read payloads.

Validation

  • go test ./internal/daemon ./internal/storage
  • go test ./...
  • go build -buildvcs=false ./...
  • git diff --check
  • targeted secret/local scan
  • macOS LaunchAgent rebuild/restart
  • live Telegram readback:
    • checked-in details_binding case

Notes

  • No App Server protocol changes were required.
  • No database migration is required.
  • v0.2.2 is a patch release on top of v0.2.1.

v0.2.1

05 May 20:40

Choose a tag to compare

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.
  • /projects now separates Codex UI Documents/Codex chats into a dedicated Chats navigation path with recency sorting and pagination.
  • Project buttons use N. Project name; Chat buttons use Chat N. Thread name.
  • Project rows no longer expose internal key: values and instead show last 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 ./tests
  • go 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.0 remains the live App Server event refactor release.
  • v0.2.1 is a patch release for current-tool stability plus Projects/Chats UX polish.
  • No App Server protocol changes were required.