|
| 1 | +# Open Codex Feature Inventory |
| 2 | + |
| 3 | +Last updated: 2026-05-19 |
| 4 | + |
| 5 | +This file tracks fork-specific features and fixes that should remain visible during README, release-note, and roadmap updates. It is an engineering inventory, not a marketing page. Keep it scoped to behavior implemented in this fork. |
| 6 | + |
| 7 | +## Scope |
| 8 | + |
| 9 | +Open Codex CLI is a native Codex fork. Features listed here should generally require one of these layers: |
| 10 | + |
| 11 | +- Rust runtime changes under `codex-rs` |
| 12 | +- launcher or npm distribution changes under `codex-cli` |
| 13 | +- app-server, protocol, state, or TUI contract changes |
| 14 | +- repository-level instruction or release process changes that affect how this fork is operated |
| 15 | + |
| 16 | +Fast-moving prompt packs, hooks, setup flows, and project policies are better handled by wrapper/workflow projects unless they need native runtime guarantees. |
| 17 | + |
| 18 | +## Implemented Features |
| 19 | + |
| 20 | +### TUI readability and turn correctness |
| 21 | + |
| 22 | +| Feature | User-facing behavior | Main entry points | Notes | |
| 23 | +| --- | --- | --- | --- | |
| 24 | +| User-query highlighting | User-authored queries are visually easier to scan in composer and history. | Chat composer, `UserHistoryCell` | Shared styling keeps light/dark terminal behavior consistent. | |
| 25 | +| Stale turn output guard | Old assistant, plan, reasoning deltas, and stale completions are dropped when they belong to an older turn. | Live TUI notification/render path | Replay remains separate so historical resumed content still renders. | |
| 26 | +| Resume latest-response restoration | Resuming or rejoining a running session preserves already-streamed assistant deltas instead of showing a truncated latest response. | App-server thread history builder, active thread snapshot | Final `AgentMessage` replaces the delta-backed item to avoid duplication. Added in `d587d950bc`. | |
| 27 | + |
| 28 | +### Memory UX |
| 29 | + |
| 30 | +| Feature | User-facing behavior | Main entry points | Notes | |
| 31 | +| --- | --- | --- | --- | |
| 32 | +| Active memory staging | `memory_stage_update` writes an ad-hoc note and immediately stages the same content into the current session overlay. | `memory_stage_update` tool | Durable storage still follows upstream memory consolidation. | |
| 33 | +| Explicit memory write feedback | Memory staging returns staged content, reason, overlay revision, and ad-hoc note path. | Tool result | Lets the assistant tell the user exactly what changed. | |
| 34 | +| Global memory overlay diagnostics | `/memory-overlay` shows session overlays plus global ad-hoc staged notes. | `/memory-overlay` | Rows show `matched` or `pending` exact-match status against durable files. | |
| 35 | +| Durable memory browser | `/memory` shows durable memory grouped by `Summary`, `Overall index`, and `Topics`. | `/memory` | Designed to show what future sessions can actually read. | |
| 36 | + |
| 37 | +### Reasoning and speed controls |
| 38 | + |
| 39 | +| Feature | User-facing behavior | Main entry points | Notes | |
| 40 | +| --- | --- | --- | --- | |
| 41 | +| `/effort` | Users can change active reasoning effort from the TUI. | `/effort` | Persistent session/default reasoning control. | |
| 42 | +| Persistent `Shift+Tab` speed toggle | `Shift+Tab` toggles between `high` + Fast mode and `xhigh` + standard tier for fast-capable models. | Composer key handling, service tier config | Persists both reasoning effort and service tier defaults. Added in `81f61c9aa4`, documented in `0505d0528a`. | |
| 43 | +| One-turn high-effort markers | Standalone `ulw`, `ultra`, or `xhigh` submits only that turn with `xhigh` reasoning. | User query parser | Does not mutate persistent session defaults. | |
| 44 | +| Per-turn effort status visibility | Status line can show submitted per-turn effort while the foreground turn is pending or running. | `model-with-reasoning` status-line item | Restores to session/default effort after completion, failure, or interrupt. | |
| 45 | +| Resume reasoning and fast-mode restoration | Resumed sessions restore their own model, reasoning effort, and fast/standard service tier instead of inheriting another session. | `TurnContext`, state metadata, `thread/resume` | Includes `service_tier` DB migration and resume merge fixes. Added in `d587d950bc`. | |
| 46 | + |
| 47 | +### Session management and rollback |
| 48 | + |
| 49 | +| Feature | User-facing behavior | Main entry points | Notes | |
| 50 | +| --- | --- | --- | --- | |
| 51 | +| `/export` | Export the current session transcript to a user-chosen `.md` or `.txt` path. | `/export <path>` | Useful for debugging, archival, and sharing. | |
| 52 | +| Claude Code-style rewind UX | Double-Esc rewind supports code + conversation restore and a cleaner picker. | Double-Esc backtrack flow | Recent fixes tightened session scoping and ordering. | |
| 53 | +| Revoke restore scope fix | Conversation-only restore no longer rolls back files. | Revoke/rewind restore logic | Fixed by `b6f62e4867`. | |
| 54 | +| Esc interrupt routing | Single Esc interrupt and double-Esc rewind detection both work without blocking each other. | Composer key handling | Fixed by `0d20c120d8`. | |
| 55 | + |
| 56 | +### Background tasks and subagents |
| 57 | + |
| 58 | +| Feature | User-facing behavior | Main entry points | Notes | |
| 59 | +| --- | --- | --- | --- | |
| 60 | +| Nonblocking terminal tasks | Long-running terminal commands can continue in the background while chat continues. | `Ctrl+B`, task panel | Completed output remains available in history. | |
| 61 | +| Background subagent tracking | Spawned agents appear as background activity with role, status, runtime, progress, and task context. | Task panel, spawn/wait tool handling | Foreground `Working` state is separate from background counts. | |
| 62 | +| `/agent` and `/subagents` split | `/agent` lists agent profiles, while `/subagents` remains the active/resumable subagent view. | Slash commands | Keeps profile discovery separate from thread switching. | |
| 63 | +| Subagent completion wakeups | Completed subagent work wakes the parent turn without requiring manual wait/close. | Core completion events | Added/fixed around `8670c2c842`. | |
| 64 | +| Subagent quota reclamation | Completed subagents are reclaimed from spawn quota, and spawn performs opportunistic cleanup when quota is exhausted. | Subagent runtime, spawn path | Interrupted subagents remain active/resumable quota holders. Fixed by `5348fb6fcd`. | |
| 65 | +| Parallel-first subagent policy | Complex tasks are encouraged to use independent read-only exploration, review, validation, and release-check lanes. | `~/.codex/AGENTS.md`, `docs/parallel-first-agent-execution.md` | Instruction-policy feature, not a hardcoded scheduler. | |
| 66 | + |
| 67 | +### Update and release experience |
| 68 | + |
| 69 | +| Feature | User-facing behavior | Main entry points | Notes | |
| 70 | +| --- | --- | --- | --- | |
| 71 | +| Open Codex-aware npm update detection | Update prompts check `@leonw24/open-codex`, not upstream `@openai/codex`. | npm/bun update check | Keeps prompts aligned with the package users can install. | |
| 72 | +| Fork-correct upgrade commands | Update actions install `@leonw24/open-codex@latest`. | update prompt/action | Avoids upstream package identity leaks. | |
| 73 | +| Inline release notes in update prompt | Startup update prompt shows concrete release-note bullets, with a full release link as fallback. | update prompt, GitHub release fetch | Added in `2615364e34`. Release bodies must contain concrete markdown bullets. | |
| 74 | +| Release-fast local publish path | Local release builds use `release-fast` and publish Linux x64 npm payload directly. | `cargo build --profile release-fast`, npm packaging scripts | Current direct publish flow includes GitHub release body, npm publish, and install/version smoke test. | |
| 75 | +| npm download chart refresh | README badges/chart track npm download visibility. | `.github/npm-weekly-downloads.svg` | Maintained by periodic chart update commits. | |
| 76 | + |
| 77 | +### Status-line and situational awareness |
| 78 | + |
| 79 | +| Feature | User-facing behavior | Main entry points | Notes | |
| 80 | +| --- | --- | --- | --- | |
| 81 | +| Token throughput status item | Optional status-line item shows coarse session-average input/output token throughput. | status line config | Beta quality, useful as rough responsiveness signal. | |
| 82 | +| Workspace git diff status item | Status line can show tracked `+added/-deleted` and untracked file count. | `workspace-changes` item | Helps notice local changes without opening `/status` or shell. | |
| 83 | + |
| 84 | +### Side-channel workflows |
| 85 | + |
| 86 | +| Feature | User-facing behavior | Main entry points | Notes | |
| 87 | +| --- | --- | --- | --- | |
| 88 | +| `/btw` side questions | Ask quick side questions without taking over the primary chat thread. | `/btw <question>` | Runs as an inline hidden thread with expected model, effort, permission, and tool behavior. | |
| 89 | +| Default commit attribution | Open Codex can apply the fork's commit attribution identity by default. | git attribution extension/config | Implemented before the recent 0.130.x release series. | |
| 90 | + |
| 91 | +## Recently Important Fixes |
| 92 | + |
| 93 | +| Commit | Date | Summary | |
| 94 | +| --- | --- | --- | |
| 95 | +| `d587d950bc` | 2026-05-19 | Fix resume state restoration for streamed assistant deltas, reasoning effort, and fast/standard service tier. | |
| 96 | +| `2615364e34` | 2026-05-18 | Show inline release notes in the update prompt. | |
| 97 | +| `b6f62e4867` | 2026-05-17 | Fix revoke restore scope and release notes link. | |
| 98 | +| `0d20c120d8` | 2026-05-16 | Fix rewind restore and Esc interrupt routing. | |
| 99 | +| `81f61c9aa4` | 2026-05-15 | Add persistent `Shift+Tab` reasoning speed toggle. | |
| 100 | +| `0505d0528a` | 2026-05-15 | Document persistent `Shift+Tab` speed toggle. | |
| 101 | +| `df5d9799de` | 2026-05-14 | Fix rewind picker session scope. | |
| 102 | +| `eb47a50088` | 2026-05-14 | Improve rewind code restore UX. | |
| 103 | +| `11a5ff07e4` | 2026-05-14 | Document memory overlay metrics and subagent GC. | |
| 104 | +| `bfa6fa9890` | 2026-05-14 | Add memory browser and preserve resume effort. | |
| 105 | +| `5348fb6fcd` | 2026-05-14 | Fix completed subagent quota reclamation. | |
| 106 | +| `ba54960a86` | 2026-05-14 | Add memory overlay status diagnostics. | |
| 107 | +| `8670c2c842` | 2026-05-13 | Fix subagent completion wakeups. | |
| 108 | +| `4cf2052d1c` | 2026-05-12 | Clarify Open Codex wrapper positioning. | |
| 109 | +| `e42cbb9d66` | 2026-05-12 | Update README for BTW and background task UX. | |
| 110 | + |
| 111 | +## README Sync Checklist |
| 112 | + |
| 113 | +When adding or changing a feature: |
| 114 | + |
| 115 | +1. Add or update the feature row in this file. |
| 116 | +2. If the feature is user-facing and stable, mirror it in README `Current Delta and Roadmap`. |
| 117 | +3. If the feature is part of a release, include concrete bullets in the GitHub release body. |
| 118 | +4. If the feature changes npm/package identity, verify update prompt copy and install smoke tests. |
| 119 | +5. If the feature changes session, memory, or subagent behavior, include a focused regression test and note the slash command or keybinding entry point. |
0 commit comments