Skip to content

test(compat): audit v0.149.0 queue-by-name resolution - #243

Merged
delexw merged 1 commit into
mainfrom
fix-issue-241
Aug 26, 2026
Merged

delexw merged 1 commit into
mainfrom
fix-issue-241

Conversation

@delexw

@delexw delexw commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

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_sessions in src-tauri/src/parser/discover.rs) reads one entry per rollout file, identified solely by the id extracted from session_meta — never by a queue/thread name. The only name-like field, thread_name (set via thread_name_updated events), 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 same thread_name are still discovered as two fully independent sessions, each keeping its own id.
    • 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 — clean
  • cargo fmt --manifest-path src-tauri/Cargo.toml --check — clean
  • npm test (vitest + cargo test) — 154 vitest + 381 cargo unit + 3 ACL tests pass
  • npx tsc --noEmit, npx oxfmt — clean
  • npx oxlint — clean (one pre-existing unrelated warning in MarkdownRenderer.tsx, not touched by this change)

Fixes #241

…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
delexw merged commit 32dcab0 into main Aug 26, 2026
1 check passed
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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Compat] Codex v0.149.0: duplicate queue session names no longer error — most recent session wins

1 participant