Repository navigation
test(compat): audit v0.149.0 queue-by-name resolution - #243
Merged
Merged
Conversation
…naffected (#241) Codex v0.149.0 (PRs #39385, #39034, #39604) changed the TUI's queue-by-name resolution to pick the most recently active session instead of erroring on duplicate names, and let queued messages written by another process get dispatched into a session's rollout file. codex-trace never resolves sessions by name — discovery identifies each session purely by the id read from session_meta, and thread_name is stored only as a display label, never used for lookup, merge, or dedup. There is no code path here for the upstream name-resolution change to affect. Add two regression tests locking in that conclusion: one verifying two sessions sharing a thread_name stay fully independent, and one verifying a message appended to a session's rollout file (simulating another-process queued dispatch) is still correctly folded into that session's turns. Fixes #241
delexw
pushed a commit
that referenced
this pull request
Aug 26, 2026
Resolve discover.rs test-module conflict by keeping both sides' tests: - #245 (issue #238): session_meta.forked_from_id surfaced for codex exec fork/resume (present, absent, and empty-string cases) - #243 (v0.149.0): queue-by-name resolution and cross-process queued-message attribution audits Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YUrcWnBho9wCV8PZDb6CKi
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Codex v0.149.0 changed TUI queue-by-name resolution (PR #39385): when multiple sessions share a queue name, the TUI now picks the most recently active session instead of erroring on the ambiguity. A related change (PR #39034) lets queued messages written by another process get dispatched into a session's rollout file, and PR #39604 preserves existing queued-input semantics around this. This adds regression tests auditing that codex-trace is unaffected.
Why
codex-trace never resolves sessions by name at all. Session discovery (
discover_sessionsinsrc-tauri/src/parser/discover.rs) reads one entry per rollout file, identified solely by theidextracted fromsession_meta— never by a queue/thread name. The only name-like field,thread_name(set viathread_name_updatedevents), is stored purely as a display label and is never used for lookup, merge, or deduplication. So there is no code path in this repo for the upstream TUI name-resolution change to break.The other half of the change — queued messages dispatched into a session's rollout file by another process — also doesn't need special handling: discovery and turn attribution are driven entirely by the file's own on-disk content (whatever entries land in a given rollout file get folded into that session), independent of which process wrote them.
Change
src-tauri/src/parser/discover.rs: added two regression tests —v0149_duplicate_thread_name_sessions_remain_independent: two session files sharing the samethread_nameare still discovered as two fully independent sessions, each keeping its ownid.v0149_queued_message_appended_to_existing_session_is_attributed_correctly: a message appended to an existing session's rollout file (simulating another-process queued dispatch) is correctly folded into that same session's turn count rather than lost or misattributed.This follows the repo's established pattern for "no functional impact" Codex compat audits (e.g.
v0147_full_auto_flag_removal_does_not_affect_session_meta_parsing) — a version-scoped regression test rather than a docs-only note.Verification
cargo test --lib --manifest-path src-tauri/Cargo.toml— 381 tests pass (including the 2 new v0149 tests)cargo clippy --manifest-path src-tauri/Cargo.toml -- -D warnings— cleancargo fmt --manifest-path src-tauri/Cargo.toml --check— cleannpm test(vitest + cargo test) — 154 vitest + 381 cargo unit + 3 ACL tests passnpx tsc --noEmit,npx oxfmt— cleannpx oxlint— clean (one pre-existing unrelated warning inMarkdownRenderer.tsx, not touched by this change)Fixes #241