Rename the C++ namespace katecustom -> deft and include guards
KATECUSTOM_* -> DEFT_* across all sources. Rename the plugin artifact
olliepalette.so -> deft.so (CMake target 'deft') and set the plugin
display name to 'Deft'. Update README title/install paths.
File names, class names (Ollie*), and the src/ directory grouping are
left for the follow-up stages that split features into per-plugin .so's
([deft:nineify] / [deft:util]).
Two fixes for the Alt+G typing lag:
1. Default CMAKE_BUILD_TYPE to RelWithDebInfo when unspecified — the
shipped plugin was -O0. On mobydick (17k symbols) the worst
type-forward keystroke drops ~340ms -> ~29ms (~12x).
2. Debounce the PaletteWidget filter with an 80ms single-shot timer so a
fast typist's burst triggers one re-rank, not one per character.
applyQueryNow() flushes the pending query on Enter so activation uses
the latest text; activate() resets the debounce state.
The broad early-query keystrokes (1-2 chars matching most of N) are the
only ones still ~O(N); debounce ensures they are paid at most once per
pause. docs/PERF.md updated with measured numbers.
- PaletteModel: QAbstractListModel ranking items via FuzzyRanker, with
id/label/group/score and highlight-range roles plus a frecency bonus.
Headless, unit-tested (10 cases).
- PaletteWidget: frameless popup with a filter line and results list.
Live company-style updates, top hit preselected, custom delegate bolds
matched characters. Keyboard (Up/Down/PageUp/PageDown/Enter/Esc, focus
kept in the filter) and mouse (click to activate). No chords.
- Tighten FuzzyRanker typo tolerance: single adjacent transposition instead
of deletion. Still recovers 'gti'->'git' but no longer false-matches
'ren' against 'Open File'.
All tests green: fuzzyranker (14) + palettemodel (10).