Problem
Arius should be able to browse and restore repositories created on case-sensitive platforms such as Linux, even when the user is running on Windows.
The repository model should keep repository-relative paths case-sensitive. The harder problem is the local filesystem merge/view on Windows, where the host filesystem is case-insensitive and may collapse paths that are distinct in the repository (for example Foo.txt and foo.txt).
This should not be fixed by making repository path identity case-insensitive in unrelated flows such as hydration-status lookups.
Why this matters
We need a clear and correct boundary between:
- repository identity: case-sensitive, platform-native to the archived repository
- Windows local view: case-insensitive collapse of the host filesystem state
- restore pipeline: responsible for handling Windows conflicts when restoring case-distinct repository paths onto a case-insensitive filesystem
Without that separation, Explorer/listing behavior can silently misrepresent local state or hide repository distinctions.
Areas to investigate
ListQueryHandler local/cloud merge behavior
LocalFileSnapshotBuilder keying and collision behavior
RelativeFileSystem enumeration on Windows
- Explorer presentation of repository entries that differ only by case
- Restore conflict behavior for case-distinct repository paths on Windows
Questions to answer
- How should Explorer present a Linux-native repository containing paths that differ only by case when running on Windows?
- How should the local filesystem view collapse or annotate case-colliding paths?
- What invariants should be preserved between list, Explorer, and restore behavior?
- Which layer should detect and surface Windows-only conflicts?
Acceptance criteria
- Repository-relative paths remain case-sensitive in domain logic.
- Windows local-state merge behavior is explicitly defined for case-colliding paths.
- Explorer/list behavior is covered by focused tests for case-sensitive repository entries on Windows.
- Restore behavior for case-distinct repository paths on Windows is documented and/or covered by tests.
Problem
Arius should be able to browse and restore repositories created on case-sensitive platforms such as Linux, even when the user is running on Windows.
The repository model should keep repository-relative paths case-sensitive. The harder problem is the local filesystem merge/view on Windows, where the host filesystem is case-insensitive and may collapse paths that are distinct in the repository (for example
Foo.txtandfoo.txt).This should not be fixed by making repository path identity case-insensitive in unrelated flows such as hydration-status lookups.
Why this matters
We need a clear and correct boundary between:
Without that separation, Explorer/listing behavior can silently misrepresent local state or hide repository distinctions.
Areas to investigate
ListQueryHandlerlocal/cloud merge behaviorLocalFileSnapshotBuilderkeying and collision behaviorRelativeFileSystemenumeration on WindowsQuestions to answer
Acceptance criteria