You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Plan of record for the next release: bound thread history growth, give threads a real lifecycle, and add source-control (PR) support across forges.
Research inputs (Sep 2026): T3 Code origin/main f5ef0ddb9, openai/codex 7342991 plus the Codex desktop app bundled in ChatGPT.app 26.917, and read-only measurements of the maintainer's own data (Tcode data dir 9.2 GB, 2,716 thread logs; ~/.codex/sessions 6.9 GB).
Decisions
Storage: no SQLite. Metadata and indexes go in redb (already in Cargo.lock, zero new crates); event bodies stay in files. Compaction first, engine second.
Compression:flate2 (already in the tree), not zstd.
Automatic lifecycle: auto-settle only. Auto-archive is removed; archive is always explicit, because it now moves logs, calls provider-native archive and cleans up worktrees. Rule: automatic transitions must be losslessly reversible.
Settle stops the provider session (as in T3 Code).
Snooze and pinned are in scope.
Archive semantics follow the Codex app. Provider-native archive/delete is used only where the protocol has it (Codex, OpenCode, ACP when advertised). No native delete is synthesized for Claude Code or pi.
Process lifetime follows the provider's prompt-cache TTL measured from the last turn, not view time. No keep-alive pings.
PRs: linked PRs and an Open PR action across GitHub, GitLab, Gitea, Forgejo, Bitbucket and Azure DevOps, self-hosted included. No model-facing MCP tool for linking PRs. The Open PR action works during a run in two modes: the host runs it at turn end, or it sends a visible message to the agent. "Merge when CI passes" uses the forge's native auto-merge.
Several of these change the protocol (new batch, settle, snooze, pin and PR commands and events). They should land after the in-flight perf/remote-wire-bytes work, which bumps PROTOCOL_VERSION to 6, and batch their own bumps where practical.
guivieiras/tcode has unmerged work that overlaps. Most of it is on local/integration, last pushed 2026-09-17, with no open PR:
Plan of record for the next release: bound thread history growth, give threads a real lifecycle, and add source-control (PR) support across forges.
Research inputs (Sep 2026): T3 Code origin/main f5ef0ddb9, openai/codex 7342991 plus the Codex desktop app bundled in ChatGPT.app 26.917, and read-only measurements of the maintainer's own data (Tcode data dir 9.2 GB, 2,716 thread logs;
~/.codex/sessions6.9 GB).Decisions
Cargo.lock, zero new crates); event bodies stay in files. Compaction first, engine second.flate2(already in the tree), not zstd.Work items
Phase 0: bugs and batch commands
sessions.jsonPhase 1: storage
sessions.jsonwith a redb indexPhase 2: lifecycle
Phase 3: source control
Coordination
perf/remote-wire-byteswork, which bumpsPROTOCOL_VERSIONto 6, and batch their own bumps where practical.local/integration, last pushed 2026-09-17, with no open PR:last_user_message_atand thread sort by last user message (45e74fc, 68a5f3d): overlaps Thread lifecycle: make Settled a real state and remove auto-archive #526 and Storage: replace sessions.json with a redb index #523.rusqlitedependency (5ee044b and follow-ups): overlaps External import races the store writer on sessions.json #520 and Storage: replace sessions.json with a redb index #523.