Codex stores transcripts at:
~/.codex/sessions/<year>/<month>/<day>/<rollout>.jsonl
The year segment was leaking through deriveProjectName as a "project
name" — the screenshot review showed a literal `2026 (codex)` row.
Extended the looksJunky patterns in src/sessions/discovery.ts to match
pure-digit segments (\d{1,4}) and ISO dates (\d{4}-\d{2}-\d{2}).
Junky slugs now force the cwd-basename fallback; when cwd is also
missing, the function returns undefined so the UI's
inferProjectFromPaths walks recap file paths instead.
The Codex parser already pulls cwd from session_meta.payload.cwd, so
the fix lands cleanly in practice — `2026 (codex)` now reads as the
real project name (e.g. `AgentPulse (codex)`).
Tests: 143 (was 142). One regression test covering date-shape slug
with cwd, without cwd, ISO date shape, and non-date sanity.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>