Skip to content

[Spec 0058] File Search Autocomplete#110

Merged
waleedkadous merged 5 commits intomainfrom
builder/0058-file-search-autocomplete
Dec 15, 2025
Merged

[Spec 0058] File Search Autocomplete#110
waleedkadous merged 5 commits intomainfrom
builder/0058-file-search-autocomplete

Conversation

@waleedkadous
Copy link
Copy Markdown
Contributor

Summary

Add VSCode-like file search autocomplete to the dashboard with two entry points:

  • Search input in Files column - Always visible, filters inline
  • Cmd+P / Ctrl+P modal palette - Quick access overlay

Features

  • Substring matching with relevance sorting (exact > prefix > substring)
  • Debounced input (100ms) for smooth UX
  • Keyboard navigation (Arrow Up/Down, Enter, Escape)
  • Match highlighting in search results
  • Focus existing tab if file is already open
  • Global Escape handler for palette resilience

Test plan

  • Open dashboard and verify search input visible in Files section
  • Type in search to filter files, verify highlighting
  • Press Cmd+P to open palette, type to search
  • Use arrow keys to navigate, Enter to select
  • Press Escape to close palette
  • Verify clicking backdrop closes palette
  • Open an already-open file, verify existing tab is focused

Files Changed

File Changes
packages/codev/templates/dashboard-split.html +526 lines
tests/e2e/dashboard.bats +120 lines (17 tests)
codev/reviews/0058-file-search-autocomplete.md Review document

External Review Summary

  • Gemini: APPROVE - Confirmed implementation correctness and security
  • Codex: APPROVE - Suggested global Escape handler (implemented)

Commits

  1. [Implement] Core file search implementation
  2. [Defend] E2E tests for file search
  3. [Evaluate] UX improvement from external review
  4. [Review] Review documentation

Add VSCode-like Cmd+P quick file finder with:
- Modal palette (Cmd+P / Ctrl+P)
- Files tab search input
- Substring matching (no fuzzy)
- Keyboard navigation
Features:
- Search input in Files column header
- Cmd+P / Ctrl+P modal palette
- Substring matching with relevance sorting
- Keyboard navigation (arrow keys, Enter, Escape)
- Match highlighting in results
- Focus existing tab if file is already open
- Debounced input (100ms)
- Cached flat file list for search performance
Tests cover:
- flattenFilesTree and searchFiles functions
- Files column search input
- Debounced input handling
- Keyboard navigation (arrow keys)
- Match highlighting
- Cmd+P palette HTML and functions
- Clear button functionality
- CSS styles for search and palette
- Browser print dialog prevention
Addresses Codex review suggestion: palette can now be closed with
Escape key even if the palette input loses focus.
Documents implementation details, external review results,
acceptance criteria verification, and lessons learned.
@waleedkadous
Copy link
Copy Markdown
Contributor Author

Architect Integration Review

Verdict: APPROVE

3-way integration review (Gemini + Codex) both approve.

Integration Notes

  • Template file growing large (+500 lines) - consider modular architecture for future features
  • E2E tests verify code presence; browser-based testing (Playwright) recommended for runtime validation in future
  • Performance: Client-side flattening is efficient for target scale
  • Security: XSS properly handled via escapeHtml/escapeJsString

Ready to merge. Please proceed with merge when ready.


Architect integration review

@waleedkadous waleedkadous merged commit d3cc518 into main Dec 15, 2025
0 of 2 checks passed
@waleedkadous waleedkadous deleted the builder/0058-file-search-autocomplete branch January 8, 2026 19:06
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.

1 participant