Commit Graph

21 Commits

Author SHA1 Message Date
Shantur Rathore
89dbe43d87 Commit - use types from SDK 2025-11-11 21:06:37 +00:00
Shantur Rathore
869b704a96 refactor: restyle pickers via tokens 2025-10-28 20:00:40 +00:00
Shantur Rathore
1903bea1c8 Implement client-side file scanning via Electron IPC with gitignore
- Add fs:scanDirectory IPC handler in main process
- Scan workspace recursively with proper gitignore support
- Use 'ignore' library for accurate gitignore pattern matching
- Expose scanDirectory via electronAPI in preload
- Call IPC from renderer instead of direct fs access
- Cache scanned files for fast filtering
- Scroll to top and highlight first item on results update
- Always exclude .git and node_modules directories
2025-10-24 10:10:12 +01:00
Shantur Rathore
6dcdd8294d Implement client-side file scanning with gitignore support
- Use Node.js fs APIs to recursively scan workspace folder
- Load and parse .gitignore to filter files
- Cache scanned files for performance
- Filter files by search query on client side
- Skip .git and node_modules directories
- Support gitignore patterns (basic wildcards)
- No server API calls needed for file listing
2025-10-24 09:52:53 +01:00
Shantur Rathore
f19add1c47 Simplify file picker to show only git files with filtering
- Remove server file search API calls
- Only use git file status for file list
- Filter git files by search query on client side
- Add trailing / when inserting folder paths
- Simpler and faster implementation
- Respects gitignore (via git status)
2025-10-24 09:49:16 +01:00
Shantur Rathore
fdd6c8d63b Allow folders in file picker and use them as search filters
- Remove directory filtering from file picker
- When folder selected, insert folder path into input (not as attachment)
- Folder path becomes search query to filter files in that folder
- Files still create attachments as before
- User can navigate folder structure using @ mentions
2025-10-24 09:26:13 +01:00
Shantur Rathore
92fa1efefd Fix @ to show all files using wildcard query
- Use '.' as query instead of empty string for @ mention
- Fuzzy search matches all files with '.' pattern
- Filter out directories (paths ending with /)
- Shows git files + all project files when typing @
2025-10-24 09:21:33 +01:00
Shantur Rathore
a667d1e232 Fix empty query showing no files by showing git files only
- When query is empty, show only git files (no search)
- When query has text, search all files + git files
- Avoids server returning directories for empty query
- Simpler and faster UX for @ mentions
2025-10-24 09:17:13 +01:00
Shantur Rathore
b13080e5dc Filter out directories from file picker, show only files
- Filter git files ending with / (directories)
- Filter search results ending with / (directories)
- Only show actual files in file picker
- Directories cannot be attached as files
2025-10-24 01:33:40 +01:00
Shantur Rathore
d2620dd3c3 Fix empty query file search to fetch all files instead of using space 2025-10-24 01:09:57 +01:00
Shantur Rathore
68503c2511 Fix no matching files on empty query by awaiting git files first 2025-10-24 01:08:30 +01:00
Shantur Rathore
4d468e278f Add visual attachment chips and fix empty query file search 2025-10-24 01:00:01 +01:00
Shantur Rathore
f291649f74 Fix file picker keyboard event handling and loading state 2025-10-24 00:52:17 +01:00
Shantur Rathore
b6dc4ba249 Fix file path format and initialization issues
- Remove leading slash from file paths (use relative paths from workspace)
- Server expects relative paths like 'file.md' not '/file.md'
- Convert isInitialized from let to signal to persist across renders
- Fix file picker not showing files on first open
- Paths from find.files() are already relative to workspace
2025-10-24 00:50:30 +01:00
Shantur Rathore
26ab3e066f Fix file attachment API format and duplicate attachments
- Add required 'url' field to file parts in API request
- Use url, mime, filename instead of path field
- Prevent duplicate attachments by checking if path already exists
- Show all files when picker opens with empty query (use space as query)
- Filter git files only when search query provided
- Enter key now works correctly when file list has items
2025-10-24 00:47:02 +01:00
Shantur Rathore
fb9d3a08eb Improve file picker UX: inline chips, focus preservation, escape behavior
- Move attachment chips inside textarea wrapper (appears inline)
- Keep textarea focused when pressing Escape (no focus stealing)
- Track ignored @ positions after Escape to prevent re-triggering picker
- Clear ignored positions on message send
- Use capture phase for Escape key handling (true flag on addEventListener)
- Escape now works like email: type @example.com naturally after dismissing picker
- Chips show above textarea input with better spacing (pt-2 pb-1)
2025-10-24 00:27:36 +01:00
Shantur Rathore
d735067042 Fix infinite loop in file picker with proper initialization flag
- Use isInitialized flag to prevent effect re-triggering
- Use gitFilesFetched flag to prevent duplicate git API calls
- Fetch git files and initial files only once on first open
- Only refetch when search query actually changes
- Git files are optional - don't block on empty results
- Logs show initialization state for debugging
2025-10-24 00:17:33 +01:00
Shantur Rathore
0e93cb56af Add comprehensive logging to file picker for debugging
- Log all API calls with timing information
- Log cache hits and misses
- Log query changes and effect triggers
- Log response data structure
- Log file counts at each step
- Log errors with elapsed time
- Helps diagnose slow loading and missing files issues
2025-10-24 00:13:48 +01:00
Shantur Rathore
a3c60d0e37 Fix file picker error handling and reduce API calls
- Handle file.status() errors gracefully (warn instead of error)
- Make git files optional (empty array if endpoint fails)
- Prevent duplicate API calls by tracking last query
- Only fetch git files once (check if cached before fetching)
- Short-circuit when no search query (just show git files)
- Better error messages (warn for git, error for search)
2025-10-24 00:08:11 +01:00
Shantur Rathore
9a47cfd8d9 Fix file picker UX issues
- Change from modal dialog to inline popover (no focus stealing)
- Keep textarea focused while file picker is open
- Fix loading flickering by caching git files
- Debounce file search to prevent rapid refetching
- Escape closes picker without removing @ text
- Enter selects file from picker
- Arrow keys navigate picker when open, history when closed
- Position picker above textarea using absolute positioning
- Mouse hover updates selection index
- Remove blur/focus from picker input
2025-10-23 22:58:09 +01:00
Shantur Rathore
bdd9837538 Add file attachments with @ mentions and drag & drop support
- Create attachment type system with file, text, symbol, and agent sources
- Implement file picker with SDK integration (find.files, file.status)
- Add @ detection in prompt input to trigger file search
- Create attachment chips UI for managing attached files
- Add attachment state management per session
- Update message submission to include attachments
- Implement drag & drop support for adding files
- Show git-modified files first in file picker with +/- indicators
- Filter files as user types after @
- Clear attachments after successful message send
2025-10-23 22:46:29 +01:00