feat(settings): cross-category settings search (T-450)

A search box (ClideFilterBox) atop the rail filters fields across every
registered category. While searching, the panel swaps to a results view that
groups the matching fields under category subheaders — rendered with the same
carded rows and editable inline — and each rail row shows its match count with
zero-match categories dimmed. Completes the settings-UI infra spine (T-444):
shell, engine, rail, scope tags, search.

Tests: search filters across categories, hides non-matches, and surfaces the
per-category rail count.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-17 12:24:24 +02:00
co-authored by Claude Opus 4.8
parent f56ad88439
commit f643d6e747
12 changed files with 184 additions and 68 deletions
+8 -4
View File
@@ -181,14 +181,18 @@ tickets before the diff lands. Trivial typo fixes don't need one.
See [D-37](governance/decisions/process.md#d-37) and the bundled
[`git-commit` skill](.claude/skills/git-commit/SKILL.md). In short:
- Imperative subject ≤ 70 chars, no Conventional Commits prefix
(this isn't a Conventional Commits repo — the archived Python
predecessor under [`legacy/`](legacy/) is, but the rebuild isn't).
- [Conventional Commits 1.0](https://www.conventionalcommits.org/en/v1.0.0/):
`type(scope): imperative subject`, ≤ 72 chars including the prefix.
Types are `feat`, `fix`, `docs`, `style`, `refactor`, `perf`,
`test`, `build`, `chore`; scope is the subsystem (`settings`,
`vim`, `pty`…); keep a trailing `(T-NNN)` ticket ref where one
applies — e.g. `feat(settings): category rail + navigation (T-447)`.
- One logical change per commit. If the subject needs "and", split it.
- Every user-visible commit adds an entry to `CHANGELOG.md` under
`[Unreleased]` in the right subsection (Added, Changed, Deprecated,
Removed, Fixed, Security). Keep entries to one or two short
sentences — the 60-word cap is enforced by `ci/changelog_gate.sh`.
sentences — the 60-word cap is enforced by the pre-push gate
(`make changelog-gate`).
- Co-author trailer:
`Co-Authored-By: Claude <noreply@anthropic.com>` when Claude wrote
any of the diff.