Skip to content

v0.3.0

Choose a tag to compare

@saucam saucam released this 14 Jul 14:38
· 130 commits to main since this release
ce1e5dd

What's Changed

  • feat: conductor foundations — session resolution (P0–P1) + durable owner-delegated identity (P2) by @saucam in #51
  • fix: re-check token expiry on every Telegram command and callback by @saucam in #121
  • fix: correlate tool calls by the SDK's toolUseID and keep subagent text out of canonical history by @saucam in #118
  • fix: re-attach sessions after TUI reconnect; treat transient token failures as retryable by @saucam in #119
  • fix: harden the pinned-file export, workdir, and provider-env read paths by @saucam in #120
  • fix: sanitize untrusted output in the legacy readline terminal client by @saucam in #122
  • feat: conductor session + read-only fleet tools (P3) by @saucam in #124
  • fix: stop the busy indicator looping forever after a mid-turn model switch by @saucam in #125
  • fix(web): functional/interaction bug batch (Esc-interrupt, IME, mergeSession, memo, approvals, dropdowns) by @saucam in #126
  • perf(web): stop large streaming code blocks and Write previews from melting the renderer by @saucam in #127
  • fix(web): state leaks + storage hardening by @saucam in #128
  • fix(web): OAuth reconnect fallback + all-session notifications + reconnect ordering/proto guards by @saucam in #129
  • feat: dispatch + routing — the conductor directs the fleet (P4) by @saucam in #130
  • feat: provider extension surface — dialogs, dynamic commands, rich parts, provider registry by @saucam in #131
  • feat: pi (pi.dev) as an officially supported session backend by @saucam in #132
  • feat: mid-session provider switching with provider-owned history seeding by @saucam in #133
  • feat(web): visual backend switcher + provider chips by @saucam in #134
  • fix: allowlist the pi subprocess environment (GHSA-38vh parity) by @saucam in #135
  • devops: replace CodeRabbit with the Gemini review bot by @saucam in #136
  • feat: daemon-native hook bus — uniform tool/turn/lifecycle hooks for every backend by @saucam in #137
  • feat: Phase-2 canonical history — native tool_use/functionCall replay across backends by @saucam in #138
  • devops: stop stray PR comments from cancelling an in-flight Gemini review by @saucam in #139
  • fix: close post-merge test gaps in hooks + Phase-2 history by @saucam in #140
  • feat: bundle pi so the backend works with zero install by @saucam in #141
  • feat: OpenAI Codex as a codeoid backend (app-server JSON-RPC, first slice) by @saucam in #142
  • feat: gemini-cli as a codeoid backend over ACP (bundled, Google-subscription auth) by @saucam in #143
  • fix: ACP authenticate fallback when session/new requires an auth selection by @saucam in #144
  • fix: codex real token usage + resolve codex outside the daemon PATH by @saucam in #145
  • feat: session.fork — branch a conversation, optionally onto another backend by @saucam in #146
  • feat: surface backend-switch + fork on telegram and web by @saucam in #147
  • fix: /fork slash misroute + session-scoped attachments + Esc/search correctness by @saucam in #148
  • fix: web feedback for destroy/mode/model/approve, guarded-mode fallback, live clocks, thinking throttle by @saucam in #149
  • fix: send during pending approval no longer auto-denies + daemon correctness batch by @saucam in #150
  • fix: telegram robustness — approval races, swallowed errors, MarkdownV2 code spans, tool-line coalescing by @saucam in #151
  • fix: LRU-bound the embedding-matrix cache by @saucam in #156
  • fix: rebuild the warm query loop when systemPromptAppend changes by @saucam in #155
  • feat: tail-first attach + on-demand scrollback paging by @saucam in #157
  • feat: web tail-first attach — loading states + scroll-up history backfill (#152) by @saucam in #158
  • fix: model catalog follows the session's backend (web) by @saucam in #160
  • feat: make the attach tail window configurable (session.attachTailBytes) by @saucam in #159
  • fix: don't advertise openai/gemini backends without their API key by @saucam in #161
  • feat: fork lineage — record + surface where a session was forked from by @saucam in #162
  • fix: codex executes approved actions — disable its redundant sandbox by @saucam in #163
  • fix: send codex sandboxPolicy in its real internally-tagged wire shape by @saucam in #164
  • feat: real cross-backend integration tests (fresh + resume) + pi harness by @saucam in #165
  • test: guard fork-while-mid-turn in the web UI by @saucam in #166
  • fix: de-flake hook-bus observe-hook test (JSON EOF race) by @saucam in #168
  • feat: size the cross-backend history seed to the target model's context window by @saucam in #169
  • feat: isolate forks in their own git worktree (carry the parent's live state) by @saucam in #170
  • feat: fork setup command, base-branch forks, and a fresh-worktree note by @saucam in #171
  • feat(web): session search UX — sidebar name filter + cross-session Ctrl+K by @saucam in #172
  • feat(web): "Fork from current state" toggle + base-branch input by @saucam in #173
  • fix(web): show forked session in sidebar immediately by @saucam in #174
  • chore(release): add release-smoke pre-release gate + fix stale CLI --version by @saucam in #175
  • docs: restructure README — screenshots, slim comparison by @saucam in #176
  • chore: release v0.3.0 by @saucam in #177

Full Changelog: v0.2.0...v0.3.0

What's Changed

  • feat: conductor foundations — session resolution (P0–P1) + durable owner-delegated identity (P2) by @saucam in #51
  • fix: re-check token expiry on every Telegram command and callback by @saucam in #121
  • fix: correlate tool calls by the SDK's toolUseID and keep subagent text out of canonical history by @saucam in #118
  • fix: re-attach sessions after TUI reconnect; treat transient token failures as retryable by @saucam in #119
  • fix: harden the pinned-file export, workdir, and provider-env read paths by @saucam in #120
  • fix: sanitize untrusted output in the legacy readline terminal client by @saucam in #122
  • feat: conductor session + read-only fleet tools (P3) by @saucam in #124
  • fix: stop the busy indicator looping forever after a mid-turn model switch by @saucam in #125
  • fix(web): functional/interaction bug batch (Esc-interrupt, IME, mergeSession, memo, approvals, dropdowns) by @saucam in #126
  • perf(web): stop large streaming code blocks and Write previews from melting the renderer by @saucam in #127
  • fix(web): state leaks + storage hardening by @saucam in #128
  • fix(web): OAuth reconnect fallback + all-session notifications + reconnect ordering/proto guards by @saucam in #129
  • feat: dispatch + routing — the conductor directs the fleet (P4) by @saucam in #130
  • feat: provider extension surface — dialogs, dynamic commands, rich parts, provider registry by @saucam in #131
  • feat: pi (pi.dev) as an officially supported session backend by @saucam in #132
  • feat: mid-session provider switching with provider-owned history seeding by @saucam in #133
  • feat(web): visual backend switcher + provider chips by @saucam in #134
  • fix: allowlist the pi subprocess environment (GHSA-38vh parity) by @saucam in #135
  • devops: replace CodeRabbit with the Gemini review bot by @saucam in #136
  • feat: daemon-native hook bus — uniform tool/turn/lifecycle hooks for every backend by @saucam in #137
  • feat: Phase-2 canonical history — native tool_use/functionCall replay across backends by @saucam in #138
  • devops: stop stray PR comments from cancelling an in-flight Gemini review by @saucam in #139
  • fix: close post-merge test gaps in hooks + Phase-2 history by @saucam in #140
  • feat: bundle pi so the backend works with zero install by @saucam in #141
  • feat: OpenAI Codex as a codeoid backend (app-server JSON-RPC, first slice) by @saucam in #142
  • feat: gemini-cli as a codeoid backend over ACP (bundled, Google-subscription auth) by @saucam in #143
  • fix: ACP authenticate fallback when session/new requires an auth selection by @saucam in #144
  • fix: codex real token usage + resolve codex outside the daemon PATH by @saucam in #145
  • feat: session.fork — branch a conversation, optionally onto another backend by @saucam in #146
  • feat: surface backend-switch + fork on telegram and web by @saucam in #147
  • fix: /fork slash misroute + session-scoped attachments + Esc/search correctness by @saucam in #148
  • fix: web feedback for destroy/mode/model/approve, guarded-mode fallback, live clocks, thinking throttle by @saucam in #149
  • fix: send during pending approval no longer auto-denies + daemon correctness batch by @saucam in #150
  • fix: telegram robustness — approval races, swallowed errors, MarkdownV2 code spans, tool-line coalescing by @saucam in #151
  • fix: LRU-bound the embedding-matrix cache by @saucam in #156
  • fix: rebuild the warm query loop when systemPromptAppend changes by @saucam in #155
  • feat: tail-first attach + on-demand scrollback paging by @saucam in #157
  • feat: web tail-first attach — loading states + scroll-up history backfill (#152) by @saucam in #158
  • fix: model catalog follows the session's backend (web) by @saucam in #160
  • feat: make the attach tail window configurable (session.attachTailBytes) by @saucam in #159
  • fix: don't advertise openai/gemini backends without their API key by @saucam in #161
  • feat: fork lineage — record + surface where a session was forked from by @saucam in #162
  • fix: codex executes approved actions — disable its redundant sandbox by @saucam in #163
  • fix: send codex sandboxPolicy in its real internally-tagged wire shape by @saucam in #164
  • feat: real cross-backend integration tests (fresh + resume) + pi harness by @saucam in #165
  • test: guard fork-while-mid-turn in the web UI by @saucam in #166
  • fix: de-flake hook-bus observe-hook test (JSON EOF race) by @saucam in #168
  • feat: size the cross-backend history seed to the target model's context window by @saucam in #169
  • feat: isolate forks in their own git worktree (carry the parent's live state) by @saucam in #170
  • feat: fork setup command, base-branch forks, and a fresh-worktree note by @saucam in #171
  • feat(web): session search UX — sidebar name filter + cross-session Ctrl+K by @saucam in #172
  • feat(web): "Fork from current state" toggle + base-branch input by @saucam in #173
  • fix(web): show forked session in sidebar immediately by @saucam in #174
  • chore(release): add release-smoke pre-release gate + fix stale CLI --version by @saucam in #175
  • docs: restructure README — screenshots, slim comparison by @saucam in #176
  • chore: release v0.3.0 by @saucam in #177

Full Changelog: v0.2.0...v0.3.0