Skip to content

fix: sessions radar — real codex IDs, codex projects, recency window, REPL filters#5

Merged
Catafal merged 1 commit into
mainfrom
fix/sessions-radar-ux
Jun 11, 2026
Merged

fix: sessions radar — real codex IDs, codex projects, recency window, REPL filters#5
Catafal merged 1 commit into
mainfrom
fix/sessions-radar-ux

Conversation

@Catafal

@Catafal Catafal commented Jun 11, 2026

Copy link
Copy Markdown
Owner

Follow-up to #4, from first real-world use of the radar in the REPL.

Bugs

  • Codex session IDs were wrong (timestamp fragments like 04-26T17-38-): the extractor assumed hyphen-less timestamps, but real rollout filenames are rollout-2026-06-09T00-19-05-<uuid>.jsonl. UUID now matched from the end of the stem. The test fixtures used invented filename formats — they've been rewritten to mirror real on-disk names, which is what let the bug ship.
  • Codex rows showed no project: the live session_index.jsonl only carries (id, thread_name, updated_at). Discovery now falls back to reading the rollout's first line (session_meta.payload.cwd) — O(1) per session.

UX (from PRD #3 user story 12, previously unimplemented)

  • Ended sessions older than 7 days hidden by default; --all (CLI) / all token (REPL) or an explicit --state ended shows full history
  • Project filter matches the directory name (--project bach), not just the absolute path
  • Rows sorted newest-first
  • REPL /sessions accepts free-form tokens: /sessions bach running, /sessions codex all

Note: projects like caul/MinionOS showing no sessions is correct behavior — Claude Code prunes transcripts (~30 days) and those project dirs contain no .jsonl files anymore.

Tests: 883 → 890 passing.

🤖 Generated with Claude Code

… filters

- Codex session IDs were timestamp fragments: real rollout filenames embed
  hyphenated timestamps, so the UUID is now matched from the END of the
  stem (test fixtures updated to real formats — the unrealistic fixtures
  were what hid the bug)
- Codex rows had no project: session_index.jsonl carries no cwd, so fall
  back to reading the rollout's first line (session_meta payload)
- Ended sessions older than 7 days are hidden by default (--all / `all`
  token to include; explicit --state ended also disables the window)
- Project filter matches the directory NAME ('bach'), not just full path
- Rows sorted newest-first
- REPL /sessions now accepts free-form filter tokens, e.g.
  `/sessions bach running` or `/sessions codex all`

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Catafal Catafal merged commit fdf771c into main Jun 11, 2026
2 checks passed
@Catafal Catafal deleted the fix/sessions-radar-ux branch June 11, 2026 07:19
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.

1 participant