mirror of
https://github.com/openai/codex.git
synced 2026-09-10 20:26:47 +00:00
Record the initial AutoCompactWindowIds window_id in session_meta.context_window so JSONL tailers can observe the first context window before any compaction item exists. Thread creation now requires an initial_window_id string, while rollout JSONL keeps that value under the context_window namespace without writing derived chain fields for the initial window. Rollout reconstruction derives window 0 state from that initial_window_id when no compaction window metadata exists. Forks intentionally use the same reconstruction path; consumers that need to distinguish copied initial-window metadata can use thread_id. Legacy compactions without window_number continue to use compaction-count fallback accounting. Verification: - just test -p codex-protocol - just test -p codex-rollout recorder_materializes_on_flush_with_pending_items - just test -p codex-core reconstruct_history_restores_initial_window_from_session_meta - just test -p codex-core reconstruct_history_prefers_compacted_window_over_session_meta - just test -p codex-core reconstruct_history_preserves_legacy_compaction_count_with_session_meta_window - just test -p codex-core reconstruct_history - just test -p codex-core record_initial_history_reconstructs_forked_transcript - just test -p codex-thread-store - just test -p codex-state - just test -p codex-app-server thread_read_returns_summary_without_turns - just test -p codex-rollout persistence_metrics - just fix -p codex-protocol -p codex-rollout -p codex-thread-store -p codex-core -p codex-app-server - just fix -p codex-core -p codex-rollout - just fix -p codex-core
codex-protocol
This crate defines the "types" for the protocol used by Codex CLI, which includes both "internal types" for communication between codex-core and codex-tui, as well as "external types" used with codex app-server.
This crate should have minimal dependencies.
Ideally, we should avoid "material business logic" in this crate, as we can always introduce Ext-style traits to add functionality to types in other crates.