fix(ui): keep Windows catalog sessions in one project group#111596
fix(ui): keep Windows catalog sessions in one project group#111596ooiuuii wants to merge 2 commits into
Conversation
|
Codex review: needs maintainer review before merge. Reviewed July 21, 2026, 4:18 AM ET / 08:18 UTC. Summary PR surface: Source +36, Tests +91. Total +127 across 2 files. Reproducibility: yes. source-reproducible with high confidence: the supplied current-main path keyed groups by the cleaned display cwd, and the PR includes a real Windows production-reader run showing equivalent case/slash variants split before the change and group afterward. Review metrics: 1 noteworthy metric.
Stored data model Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Copy recommended automerge instructionNext step before merge
Security Review detailsBest possible solution: Land the narrow comparison-only identity after a current-base merge/check refresh, keeping first-seen display spelling and the explicit root-kind/POSIX boundaries intact. Do we have a high-confidence way to reproduce the issue? Yes, source-reproducible with high confidence: the supplied current-main path keyed groups by the cleaned display cwd, and the PR includes a real Windows production-reader run showing equivalent case/slash variants split before the change and group afterward. Is this the best way to solve the issue? Yes. A comparison-only identity at the catalog grouping boundary is narrower than changing filesystem or session storage semantics, and preserving the first display spelling avoids a visible-path rewrite. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 8ed12acbd5f8. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +36, Tests +91. Total +127 across 2 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
Review history (6 earlier review cycles)
|
|
Added redacted real Windows behavior proof on the current head: two non-ephemeral Codex CLI sessions from the same NTFS directory with case-varied cwd values were read through the production |
|
Addressed the Windows root-kind review finding on the current head:
Verification:
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
d9ee15f to
1b434ea
Compare
|
Rebased the focused fix onto current upstream main and reconciled the new custom-group ordering without changing its behavior. Current-head proof: catalog grouping tests 20/20 passed; oxfmt, type-aware oxlint, and git diff --check are clean; full branch autoreview is clean (patch correct, confidence 0.91). @clawsweeper re-review |
1b434ea to
54f568d
Compare
|
Rebased onto current upstream main at 7fe1d70 so this head uses the canonical scripts/pr wrapper; the previous core-tooling-4 failure was the stale-wrapper guard, shared across this batch. No fix behavior changed. Current-head validation: catalog grouping tests 20/20 passed; type-aware oxlint and git diff --check are clean. The focused branch autoreview was already clean before this base-only refresh. @clawsweeper re-review |
54f568d to
87c1791
Compare
Closes #111595
What Problem This Solves
Fixes an issue where users grouping native Codex or Claude sessions by project could see one Windows project split into multiple sidebar groups when catalog
cwdvalues differed only by case, slash style, or a trailing separator. Case-varied Windows.CLAUDE/WORKTREES/...paths could also remain separate from their origin project.Why This Change Was Made
Catalog grouping now uses a comparison-only identity for unambiguous Windows drive and backslash-rooted paths while retaining the first encountered path spelling for the visible key, label, and title. Windows worktree markers are matched case-insensitively; POSIX paths remain case-sensitive, including legal
//...paths.User Impact
Windows users see equivalent native session paths under one stable project group instead of duplicate folders. Existing display paths and POSIX grouping behavior are preserved.
Evidence
Current-head refresh validation:
The regression cases prove:
Real Windows behavior proof
A live after-fix probe used two non-ephemeral Codex CLI sessions created on this Windows host from the same NTFS directory with different cwd casing. The session files were generated by Codex itself and were not edited. OpenClaw's production
codex.cli.sessions.listcommand then read the real catalog entries before the production project-grouping module was invoked.Redacted result:
The branch was subsequently rebased without conflict onto
8a03f414ce25; the current-head focused suite above reruns the same production grouping implementation plus the later root-kind boundary cases. This preserves the real-session result while validating the exact refreshed code.This proves the reported behavior through real Windows Codex rollout files and the production catalog reader: current
mainrendered two project identities for equivalent cwd values, while the patched grouping renders one stable group containing both sessions. Session ids, the Windows account name, and message text are redacted.