Skip to content

[Bug]: Equivalent Windows cwd spellings split catalog project groups #111595

Description

@ooiuuii

Summary

When the Control UI groups native Codex or Claude catalog sessions by project, equivalent Windows cwd spellings can appear as separate project groups. Windows paths are case-insensitive and accept both slash styles, so C:\Work\Notes and c:/work/notes/ should identify the same project.

Affected surface

  • Control UI sidebar
  • Native session catalogs (Codex / Claude)
  • Group catalog sessions by project enabled
  • Windows catalog hosts

Steps to reproduce

  1. Return two catalog sessions from the same Windows project with equivalent cwd values, for example:
    • C:\Work\Notes
    • c:/work/notes/
  2. Open the Control UI sidebar.
  3. Enable project grouping for the native session catalog.

Actual behavior

The sessions are placed in two project groups because the raw cwd string is used as the grouping key. A case-varied .CLAUDE/WORKTREES/... path can also miss folding into its origin project.

Expected behavior

Equivalent Windows drive/backslash-rooted paths should share one project group while preserving the first path spelling for display. POSIX paths must remain case-sensitive, including legal //... paths.

Reproduction evidence

Current-main grouping behavior is implemented by a Map keyed directly by the display path after only whitespace/trailing-separator cleanup. Therefore these two values remain distinct:

C:\Work\Notes
c:/work/notes

A focused regression fixture covers:

Windows drive path variants: 3 sessions -> 1 group
Windows .CLAUDE/WORKTREES variant: direct + worktree -> 1 group
POSIX //mnt/Repo vs //mnt/repo: 2 groups (case-sensitive boundary)

Scope

This report is limited to client-side catalog project grouping. It does not change filesystem access, session storage, catalog discovery, or POSIX path semantics.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Normal backlog priority with limited blast radius.clawsweeper:linked-pr-openClawSweeper found an open linked pull request for this issue.clawsweeper:needs-live-reproClawSweeper needs live local, crabbox, or manual validation to confirm this issue.clawsweeper:no-new-fix-prClawSweeper does not recommend queueing a new automated fix PR for this issue.impact:ux-frictionUser-facing flow adds avoidable confusion or support burden without fully blocking progress.issue-rating: 🐚 platinum hermitGood issue quality with a plausible reproduction path needing some confirmation.

    Type

    No type

    Fields

    Priority

    None yet

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions