summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Add Create Folder functionality with dialog interfacediogo4642025-08-132-0/+137
| | | | | | | | | | | | - New /api/mkdir endpoint for authenticated folder creation - Create Folder button positioned left of Upload Files button - Modal dialog with input validation and keyboard shortcuts - Proper error handling and success notifications - Uses existing CLI Drive_mkdir function for backend operations 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* Fix URL encoding for paths with special charactersdiogo4642025-08-122-7/+12
| | | | | | | | | | - Add URL decoding in upload endpoint for path parameter - Add URL decoding for path segments in drive page navigation - Ensures proper handling of directories/files with spaces and unicode chars 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* Implement authenticated file/directory deletiondiogo4642025-08-123-36/+99
| | | | | | | | | | | - Add /api/delete endpoint with authentication checks - Update DriveDirectoryClient to use actual delete API - Replace placeholder TODO with working delete functionality - Include proper error handling and user feedback 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* Replace complex /api/fs with simple /api/upload endpointdiogo4642025-08-123-219/+74
| | | | | | | | | | | | | | | | | | | - Create new /api/upload endpoint for file uploads with path query parameter - Simplify DriveDirectoryClient upload logic to use POST instead of PUT - Remove complex path encoding and AUTH header handling from client - Remove unused /api/fs endpoint entirely - no longer needed - Maintain all existing upload functionality (file size limits, auth, etc.) - Test uploads to root directory and subdirectories - both working perfectly Benefits: - Cleaner API surface with single-purpose endpoints - Simpler client code with less complexity - Better separation of concerns - Maintained backward compatibility for user experience 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* Clean up old UI code and rename V2 to Drivediogo4642025-08-1212-1129/+27
| | | | | | | | | | | | | | | - Remove old UI components: file-drive.tsx, history-view.tsx - Remove unused API endpoints: /api/tree, /api/log, /api/fs/route.ts - Rename /v2 routes to /drive routes for cleaner URLs - Rename V2* components to Drive* components (V2DirectoryView -> DriveDirectoryView, etc.) - Update all breadcrumb and navigation references from /v2 to /drive - Redirect root path to /drive instead of old UI - Keep /api/fs/[...path] and /api/directories for uploads and move functionality - Preserve Drive_* server functions for potential future use 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* Convert V2 UI to server-side data loadingdiogo4642025-08-124-685/+641
| | | | | | | | | | | | - Convert page components to async server components using Drive_ls() - Split V2DirectoryView into server component (data processing) and V2DirectoryClient (interactivity) - Remove client-side useEffect + fetch API calls for directory listing - Data now loaded server-side and passed as props for better static rendering - Mutations still use page refresh to show updated data 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* Implement /v2 prototype UI with page-based navigationdiogo4642025-08-129-0/+990
| | | | | | | | | | | | | | | | | - Add /v2 route structure with dynamic nested directory pages - Create V2DirectoryView component with breadcrumb navigation - Add V2MoveDialog with directory search and flat list display - Implement single upload button for current directory context - Add /api/directories endpoint for move dialog directory picker - Fix breadcrumb decoding to show readable names instead of URL encoding - Add file sorting: directories first, then files, all alphabetically - Improve performance by loading only current directory contents - Add ScrollArea component and @radix-ui/react-scroll-area dependency - Ensure proper URL encoding/decoding flow to prevent malformed paths 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* cli: removed create-file commanddiogo4642025-08-121-51/+0
|
* cli: added type filter to ls commanddiogo4642025-08-121-8/+46
|
* Implement working upload functionalitydiogo4642025-08-122-49/+202
| | | | | | | | | | | | | | - Replace dummy upload functions with real API calls to /api/fs endpoint - Add file validation (size limits, file count) with user-friendly error messages - Support both root directory uploads and folder-specific uploads - Add loading states and progress indication during uploads - Implement auto-refresh of file tree after successful uploads - Handle errors gracefully with toast notifications showing success/failure counts - Update file size limit to 4GB and maintain 10 file upload limit 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* Make entire directory rows clickable for togglediogo4642025-08-121-5/+9
| | | | | | | | | | | | | Enhanced directory interaction by making the entire table row clickable to expand/collapse folders, improving user experience and efficiency. - Added row-level click handlers for directories with cursor feedback - Prevented event bubbling on checkbox and actions dropdown cells - Simplified arrow buttons to show state only (no individual clicks) - Preserved file download links and all existing functionality 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* Enable clickable file downloads in file treediogo4642025-08-121-1/+12
| | | | | | | | | | | | Files with blob IDs now appear as clickable links that download directly. - Added conditional rendering for files with valid blobs - Files display as blue links with hover effects - Downloads open in new tab to preserve current view - Proper URL encoding for special characters in filenames 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* Add pagination and improve history table layoutdiogo4642025-08-121-7/+86
| | | | | | | | | | | | | | - Added pagination with 100 entries per page - Implemented pagination controls with Previous/Next buttons and page numbers - Added smart pagination display showing current page, first/last pages, and nearby pages with ellipsis - Removed redundant Action icon column from history table - Reorganized table columns: Type, File/Directory Name, Time, User, Size - Added entry count display showing current range and total entries - Pagination only shows when there are multiple pages 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* Implement history page with real data from Drive_log APIdiogo4642025-08-112-147/+98
| | | | | | | | | | | | | | | - Removed v0 generated HistoryEntry type and mock data - Updated HistoryView to use DriveLogEntry from our Drive_log API - Added proper loading and error states - Reversed log output to show latest entries first (as requested) - Added formatFileSize utility function to utils.ts and used it for file sizes - Updated action types and badges to match actual drive log actions - Convert Unix timestamps to proper date formatting - Show real user emails, file paths, and file sizes from actual drive log 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* Add Drive_log function and /api/log endpointdiogo4642025-08-113-1/+56
| | | | | | | | | | - Added DriveLogEntry type for log entries with timestamp, log_id, email, action, path, blob_id, size - Implemented Drive_log function that executes fctdrive log and parses tab-separated output - Created /api/log GET endpoint that returns JSON array of all log entries 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* cli: added log subcommanddiogo4642025-08-111-0/+15
|
* Calculate directory sizes as sum of all contentsdiogo4642025-08-111-10/+18
| | | | | | | | | | | | - Add recursive directory size calculation to Drive_tree - Directory sizes now represent total size of all nested contents - Rename sortNodes to calculateSizesAndSort for clarity - Process children first (bottom-up) then calculate parent sizes - Maintain existing sorting functionality 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* Add time with seconds to info dialog modified fielddiogo4642025-08-111-1/+14
| | | | | | | | | | - Add formatDateTime function to show full timestamp - Display modification time as "YYYY-MM-DD at HH:MM:SS" - Keep formatDate for table display (date only) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* Remove select all checkbox from table headerdiogo4642025-08-111-45/+1
| | | | | | | | | | - Keep individual row checkboxes for file selection - Remove complex select all logic from table header - Maintain column alignment with empty header cell 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* Add sorted tree structure to Drive_tree functiondiogo4642025-08-111-1/+22
| | | | | | | | | | | - Sort directories first, then files - Both categories sorted alphabetically (case-insensitive) - Recursive sorting applied to all tree levels - Server-side sorting for better performance 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* Simplify frontend by removing FileItem conversion layerdiogo4642025-08-117-430/+230
| | | | | | | | | | | | | - Remove FileItem interface and 300+ lines of mock data - Eliminate transformTreeNodes() conversion function - Update component to use DriveTreeNode[] directly - Rename /api/list to /api/tree with server-side tree building - Add Drive_tree() function and DriveTreeNode types - Significantly reduce code complexity and memory usage 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* update CLI command from create-dir to mkdirdiogo4642025-08-111-11/+11
| | | | | | | | | | | - Renamed CreateDir to MkDir in operation types - Updated subcommand from create-dir to mkdir for consistency - Updated all related structs, functions, and command handling - Maintains backward compatibility in operation log format 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* implement RESTful API and remove legacy endpointsdiogo4642025-08-116-176/+264
| | | | | | | | | | | | | | | | | | - Created unified /api/fs/[...path] endpoint with full REST methods: - GET: List directory contents or file info - POST: Create directories using Drive_mkdir() - PUT: Upload files with multipart form data - DELETE: Remove files/directories using Drive_remove() - Added /api/fs route for root directory listing - Added Drive_mkdir() function to drive_server.ts using fctdrive mkdir command - Removed legacy /api/delete and /api/upload endpoints - Updated CLAUDE.md with comprehensive API documentation and examples - All endpoints support authentication with AUTH: 1 header in development - Proper error handling, file size validation, and cache revalidation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* add delete api endpoint with authenticationdiogo4642025-08-114-1/+80
| | | | | | | | | | | | | - Added Drive_remove() function to drive_server.ts using fctdrive remove command - Created /api/delete route with POST method, JSON body input, and authentication - Added development mode AUTH header bypass for testing authenticated endpoints - Updated CLAUDE.md with API testing instructions using AUTH: 1 header - Endpoint validates user authentication and upload permissions before deletion - Returns success response even for non-existent files (CLI ignores them) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* add api route for recursive file listingdiogo4642025-08-112-1/+14
| | | | | | | | | | - Added /api/list route that returns all files/directories recursively from root - Increased maxBuffer to 50MB in Drive_ls to handle large directory listings - Fixes ENOBUFS error when listing entire drive contents 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
* basic v0 ui workingdiogo4642025-08-1126-617/+3384
|
* snapshotdiogo4642025-08-119-202/+233
|
* basic file uploaddiogo4642025-08-116-16/+474
|
* snapshotdiogo4642025-08-1131-17/+7082
|
* reorganized repodiogo4642025-08-108-151/+11
|
* added blob subcommanddiogo4642025-08-081-0/+24
|
* added blob sizediogo4642025-08-081-7/+26
|
* updated hex dependencydiogo4642025-08-082-3/+3
|
* added common flags and refactored some codediogo4642025-08-081-33/+77
|
* renamed View to Lsdiogo4642025-08-081-4/+4
|
* improved view subcommanddiogo4642025-08-081-8/+35
|
* perf: exit(0) on view command to avoid destructorsdiogo4642025-08-081-0/+1
| | | | | | | | | | | | | | | | | it is unecessary to run destructures since the OS will cleanup everything for us and it saved a bit of time. Benchmark 1: ./fctdrive-noexit view Time (mean ± σ): 37.0 ms ± 1.2 ms [User: 29.4 ms, System: 7.4 ms] Range (min … max): 35.7 ms … 40.8 ms 81 runs Benchmark 2: ./fctdrive-exit view Time (mean ± σ): 34.7 ms ± 1.3 ms [User: 26.9 ms, System: 7.6 ms] Range (min … max): 33.0 ms … 38.5 ms 83 runs Summary ./fctdrive-exit view ran 1.07 ± 0.05 times faster than ./fctdrive-noexit view
* perf: use stdout buf writerdiogo4642025-08-081-18/+32
|
* update gitignorediogo4642025-08-081-0/+3
|
* rust cli initdiogo4642025-08-0814-459/+1398
|
* initdiogo4642025-08-0710-0/+606