Skip to content

feat(settings): add configuration category typeahead - #4347

Closed
tang-vu wants to merge 1 commit into
Osmantic:public-betafrom
tang-vu:feat/beta-category-typeahead
Closed

tang-vu wants to merge 1 commit into
Osmantic:public-betafrom
tang-vu:feat/beta-category-typeahead

Conversation

@tang-vu

@tang-vu tang-vu commented Sep 11, 2026 •

Copy link
Copy Markdown
Contributor

Why this matters

Settings replaces a native category select with PanelSelect. It supports arrow navigation but ignores typed category names, making a long configuration list unnecessarily slow to navigate by keyboard. Add prefix navigation and repeated-initial cycling while retaining focus on the combobox and committing only on Enter/Space.

This is an optional usability enhancement described by the WAI-ARIA combobox pattern, not a claim that every select-only widget is required to implement it: https://www.w3.org/WAI/ARIA/apg/patterns/combobox/#keyboardinteraction

Overlap check

Searched open/closed PRs touching PanelSelect.jsx and typeahead/category/keyboard keywords. #4224 preserves highlighted selection when option arrays refresh; this adds printable-character navigation. It retains existing index state so #4224 remains independently useful and should be reconciled when merged. #4210 introduced the contained selector.

Validation

  • Two rendered interaction tests failed on base where printable characters did nothing.
  • npx vitest run src/components/PanelSelectTypeahead.test.jsx src/components/PanelSelect.test.jsx: 5 passed. Covers prefix search, repeated-letter cycling, explicit commit, Escape reset, IME/modified-key exclusion, existing arrows, pointer selection and disabled/empty lists.
  • Focused ESLint 0 errors; scoped pre-commit and git diff --check passed.

Prefix accumulation expires after 700 ms and is capped at 256 characters. No configuration value is saved by navigation alone. Screen-reader announcement relies on existing aria-activedescendant; a live assistive-technology session was not run. Revert removes only typeahead.

Batch integration receipt

Validated with the other 19 public-beta PRs on integration commit ce0d0132, based on upstream f5f49b7. All 20 patches compose without conflicts in creation order; no new PR requires another to fix its own behavior. For shared files, use #4325 before #4327 and #4339 before #4356 as the tested order.

  • Final combined dashboard: 118 test files / 932 tests pass; ESLint 0 errors (575 warnings); production build passes.
  • Affected API suites: 292 pass. APE full suite: 52 pass. Scoped pre-commit secret/private-key/large-file checks and git diff --check pass.
  • Native Linux make gate reaches an existing CLI-update failure also reproduced on the untouched base; fix(update): keep host-agent refresh non-fatal #3159 supplies its separate fix. BATS: 419/421 pass, with the same two baseline failures (non-GNU OSTYPE fixture detects the real WSL host; skip-Docker fixture lacks production helpers). Smoke tests and installer simulation pass. These are explicit validation gaps, not a claim that the whole release gate is green.

Merge coordination

Not merge-ready until reconciled with open #4224: both touch the category keyboard handler. A tested resolution is 4e7f55e9, which retains #4224's active option identity and sets activeValue from the typeahead match. All 7 combined selector tests pass. The independent branch remains based on public-beta; do not merge both heads without this reconciliation.

Latest candidate CI: 32 successful checks, 4 skipped. Independent human review of filesystem/authorization changes remains required despite green CI.

Review status update — 2026-09-15

Ready for review at the author's request. Not merge-ready. The branch conflicts with public-beta. Preserve the tested typeahead behavior while reconciling the category control with overlapping #4224; the previously recorded comparison and union are not proof that this PR head is mergeable.

Reviewed head: 72fdafa. Changing draft status does not bypass these gates or authorize a merge.

@tang-vu
tang-vu marked this pull request as ready for review September 15, 2026 02:48
@Lightheartdevs

Copy link
Copy Markdown
Collaborator

Thanks for this contribution. public-beta was promoted into main on 2026-09-24 and no longer receives changes, so we're closing pull requests that target it. This isn't a judgment on the change itself. If it's still needed, please rebase onto main and open a focused PR. See #7253 for details and the contribution policy.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants