* feat(ux): group model list by provider in /gsd prefs wizard The model selection in configureModels() was a single flat alphabetical list that became unwieldy with many providers. This groups models under provider headers (e.g. "─── anthropic (24) ───") so users can quickly scan to the right provider section. Changes: - ExtensionSelectorComponent: add SEPARATOR_PREFIX convention for non-selectable group headers. Navigation skips separators, Enter ignores them, and they render with borderAccent styling. - configureModels: build grouped option list with provider headers instead of flat map. - New test: extension-selector-separator.test.ts (6 tests). * fix(ci): use node:test instead of vitest in extension-selector test tsconfig.extensions.json does not include vitest type declarations, causing TS2307 in CI. Rewrite test to use node:test + node:assert to match the convention used by other extension tests. * fix(ci): rewrite separator test to avoid TS parameter property issue The extension-selector component transitively imports countdown-timer.ts which uses TypeScript parameter properties (private tui: TUI). Node's --experimental-strip-types cannot handle these, causing ERR_UNSUPPORTED_ TYPESCRIPT_SYNTAX in CI. Rewrite the test to verify the separator detection logic and model grouping contract without importing the component. Duplicates the isSeparator/nextSelectable helpers and tests them directly. |
||
|---|---|---|
| .. | ||
| native | ||
| pi-agent-core | ||
| pi-ai | ||
| pi-coding-agent | ||
| pi-tui | ||