You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Failed and Review: choose the folder filter with the kit select #79
Choosing a source folder to narrow the failed-items or deletion-review list happens in the kit's select control, and after a choice the keyboard focus stays with that control.
Today the control is hand-built: an open/closed flag in the filter model, an option list painted under the button, and a workaround that re-focuses the trigger and advances to the next tab stop, because the activated option unmounts and focus would otherwise fall back to the window's first stop.
Acceptance criteria
One source folder is chosen from the kit control, and "all folders" is reachable as a choice, not only as a clear action.
After a choice, focus stays on the filter control; after a clear, focus stays there too. No fallback to the window's first tab stop.
The active-filter chip still names the folder on screen and still labels the filtered empty state, and its clear action returns the list to all folders.
The matching rules are unchanged: a recursive folder includes its subfolders, a non-recursive one includes its direct children only, case handling follows the platform, and a folder that is no longer a source still filters.
Both list surfaces share this one control, and each keeps its own element ids so their tests do not collide.
Keyboard-only selection, Escape, and the screen-reader name for each option are covered by the tests.
Notes
The rule logic — which items a selected folder keeps, the label, the empty-state wording — is domain code and stays where it is. This ticket replaces the trigger, the list, and the focus handling.
Landed in main at 35691b2, merged from integration/kit-surface (CI green at 43223e2). Gate on the merged tree: cargo fmt --all -- --check, cargo clippy --workspace --all-targets -D warnings, cargo test --workspace — all clean.
What the reviews changed. The selected option wrote "selected" into its accessible name — an invented convention where GPUI already has aria_selected. Selection is now exposed as selection and drawn as weight, not a word. The trigger's width comes from the theme scale rather than a hardcoded 200 px. The folder-that-is-no-longer-a-source control path got the test its rule already had. The domain rule logic (keeps, label, empty_heading) is untouched, and its eight tests still pass unchanged.
Still manual. Real screen readers, popup edge placement, non-default zoom. Filed:#86 — the app registers no kit icon assets, so no caret or check mark draws anywhere; pre-existing, and this control works around it with weight rather than a glyph.
Activity
elementalvoid commentedon Oct 31, 2026
Landed in
mainat35691b2, merged fromintegration/kit-surface(CI green at43223e2). Gate on the merged tree:cargo fmt --all -- --check,cargo clippy --workspace --all-targets -D warnings,cargo test --workspace— all clean.What the reviews changed. The selected option wrote
"selected"into its accessible name — an invented convention where GPUI already hasaria_selected. Selection is now exposed as selection and drawn as weight, not a word. The trigger's width comes from the theme scale rather than a hardcoded 200 px. The folder-that-is-no-longer-a-source control path got the test its rule already had. The domain rule logic (keeps,label,empty_heading) is untouched, and its eight tests still pass unchanged.Still manual. Real screen readers, popup edge placement, non-default zoom. Filed: #86 — the app registers no kit icon assets, so no caret or check mark draws anywhere; pre-existing, and this control works around it with weight rather than a glyph.
fix(shell): register the kit icon assets (#86)
merge: #86 register the kit icon assets
feat(logs): put the level, refresh and copy actions on fewer rows
feat(shell): register the kit icon assets (#86)