Conversation
shouze
commented
Feb 19, 2026
- feat(filter): as you type
- doc(readme): update
- v1.1.0
|
Coverage after merging feat-filter-as-you-type into main will be
Coverage Report
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cc0ae63 to
0e440d1
Compare
|
Coverage after merging feat-filter-as-you-type into main will be
Coverage Report
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Pull request overview
This PR adds a "filter as you type" feature to the interactive TUI, allowing users to see filtered results in real-time as they type in filter mode. Previously, filtering only applied after pressing Enter.
Changes:
- Implemented live filtering by using
filterInputto filter rows while typing in filter mode - Added cursor clamping when typing/backspacing to prevent invalid cursor positions
- Version bumped from 1.0.5 to 1.1.0
- Improved README formatting by wrapping replay commands in collapsible
<details>sections
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| src/tui.ts | Added activeFilter logic to use filterInput during filter mode for live filtering, and cursor clamping on backspace/printable character input |
| src/render.test.ts | Added test case for live-filtering behavior and formatting improvements for multi-line function calls |
| package.json | Version bump from 1.0.5 to 1.1.0 |
| README.md | Fixed version example, improved documentation formatting with collapsible sections, and removed stray markdown artifacts |
Comments suppressed due to low confidence (1)
src/tui.ts:109
- When typing or backspacing in filter mode, the cursor is clamped to the new filtered row list but scrollOffset is not adjusted. This differs from the Enter key handler (line 99) and reset filter handler (line 170) which both clamp scrollOffset after clamping the cursor. If the cursor becomes less than scrollOffset due to filtering, it will be off-screen. Consider adding
scrollOffset = Math.min(scrollOffset, cursor);after cursor clamping on lines 104 and 109.
cursor = Math.min(cursor, Math.max(0, newRows.length - 1));
}
redraw();
continue;
}
// ── Normal mode ─────────────────────────────────────────────────────────
const rows = buildRows(groups, filterPath);
const row = rows[cursor];
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
||
| ```bash | ||
| INSTALL_DIR=~/.local/bin VERSION=v1.2.0 \ | ||
| INSTALL_DIR=~/.local/bin VERSION=v1.0.6 \ |
There was a problem hiding this comment.
The version example changed from v1.2.0 to v1.0.6, but package.json is being bumped from 1.0.5 to 1.1.0. The version v1.0.6 in this example doesn't match either the old version (1.0.5) or the new version being released (1.1.0). Consider updating this to v1.0.5 (to reference a past stable release) or v1.1.0 (to reference the version being released in this PR).
| INSTALL_DIR=~/.local/bin VERSION=v1.0.6 \ | |
| INSTALL_DIR=~/.local/bin VERSION=v1.1.0 \ |