Skip to content

Commit 7ccae71

Browse files
Add Open Codex feature inventory
Track implemented fork features, recent fixes, and README/release sync expectations in one local inventory so upstream merges can audit fork-specific behavior explicitly. Co-authored-by: Open Codex <hff582580@gmail.com>
1 parent edbed71 commit 7ccae71

1 file changed

Lines changed: 119 additions & 0 deletions

File tree

FEATURES.md

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
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

Comments
 (0)