Desktop Material

Repository picker filters and visibility

The repository side sheet combines text search with account, provider, and status filters so a large local workspace can be narrowed without changing its saved repository list.

Behavior

Persistence and configuration

Hidden repository ids are stored on the local installation with the same renderer-storage pattern used by repository pinning. They do not roam between machines. The filter panel starts collapsed whenever the picker is recreated; status filters and the temporary Show hidden state also reset then. Hiding does not remove a repository from Desktop Material or alter files, Git refs, remotes, pins, or custom groups.

Failure modes and security

Malformed or duplicate persisted ids are ignored or normalized, and a tampered list is capped at 5,000 stable ids. A stale id for a repository that is no longer saved is not counted in the recovery control. Repositories still being cloned cannot be hidden because their ids are temporary; they remain discoverable through Missing / cloning.

Visibility is a local presentation choice only. It does not change provider permissions, transmit repository metadata, or suppress background Git work.

Verification

Focused tests cover the collapsed-by-default panel, its ARIA relationship, the always-visible action row, state retention across collapse and expansion, anchored Regex Builder dismissal and disclosure focus on collapse, status classification and OR composition, hidden rows in pinned and ordinary groups, persistence repair, context-menu reversibility, accessible pressed states, the always-reachable recovery control, bilingual narrow-row bounds, and compact chip wrapping/focus styling.