<feed xmlns='http://www.w3.org/2005/Atom'>
<title>fct-drive/frontend/lib/drive_server.ts, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.d464.sh/fct-drive/'/>
<entry>
<title>frontend: improvements</title>
<updated>2025-08-14T20:13:57+00:00</updated>
<author>
<name>diogo464</name>
<email>diogo464@d464.sh</email>
</author>
<published>2025-08-14T20:11:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/fct-drive/commit/?id=e4917874be67de24f934e069b53e1726599c6cc5'/>
<id>e4917874be67de24f934e069b53e1726599c6cc5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: improve DriveLogEntry types with discriminated unions</title>
<updated>2025-08-14T14:34:42+00:00</updated>
<author>
<name>diogo464</name>
<email>diogo464@d464.sh</email>
</author>
<published>2025-08-14T14:34:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/fct-drive/commit/?id=6c70d6a60b286f7cfbbde4e428d41c8de2c7e77a'/>
<id>6c70d6a60b286f7cfbbde4e428d41c8de2c7e77a</id>
<content type='text'>
- Replace generic DriveLogEntry with action-specific discriminated unions
- Add DriveLogEntryCreateFile, CreateDir, Remove, Rename types
- Update Drive_log parsing to create correct union types based on action
- Add type guards (isCreateFileEntry, isRenameEntry, etc.) for safe access
- Enhance History UI to properly display rename operations (old → new)
- Change log_id to revision to match Rust OperationHeader structure
- Improve type safety and maintainability

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Replace generic DriveLogEntry with action-specific discriminated unions
- Add DriveLogEntryCreateFile, CreateDir, Remove, Rename types
- Update Drive_log parsing to create correct union types based on action
- Add type guards (isCreateFileEntry, isRenameEntry, etc.) for safe access
- Enhance History UI to properly display rename operations (old → new)
- Change log_id to revision to match Rust OperationHeader structure
- Improve type safety and maintainability

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>remove: unused Drive_tree function and related imports</title>
<updated>2025-08-14T13:56:14+00:00</updated>
<author>
<name>diogo464</name>
<email>diogo464@d464.sh</email>
</author>
<published>2025-08-14T13:56:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/fct-drive/commit/?id=e49771f9c97110b4e0d66c796716c43dd92166c4'/>
<id>e49771f9c97110b4e0d66c796716c43dd92166c4</id>
<content type='text'>
Removed Drive_tree function from drive_server.ts as it was not being
used anywhere in the codebase. Also cleaned up the import statement
to remove unused DriveTreeNode and DriveTreeResponse types.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Removed Drive_tree function from drive_server.ts as it was not being
used anywhere in the codebase. Also cleaned up the import statement
to remove unused DriveTreeNode and DriveTreeResponse types.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement path-based downloads with blob redirect system</title>
<updated>2025-08-13T10:33:51+00:00</updated>
<author>
<name>diogo464</name>
<email>diogo464@d464.sh</email>
</author>
<published>2025-08-13T10:33:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/fct-drive/commit/?id=ca703fd5de303d2101fe2b2a5c0e3037b7507156'/>
<id>ca703fd5de303d2101fe2b2a5c0e3037b7507156</id>
<content type='text'>
- Add fctdrive stat command to get blob IDs from paths
- Add Drive_stat function to drive_server.ts for backend integration
- Create /download/[...path] endpoint that redirects to /blob/{blobId}
- Update UI file links to use /download/ paths instead of direct blob links
- Update permalinks to use immutable /blob/{blobId} URLs
- Fix host preservation in redirects for remote access

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Add fctdrive stat command to get blob IDs from paths
- Add Drive_stat function to drive_server.ts for backend integration
- Create /download/[...path] endpoint that redirects to /blob/{blobId}
- Update UI file links to use /download/ paths instead of direct blob links
- Update permalinks to use immutable /blob/{blobId} URLs
- Fix host preservation in redirects for remote access

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement rename functionality using fctdrive CLI</title>
<updated>2025-08-13T10:08:48+00:00</updated>
<author>
<name>diogo464</name>
<email>diogo464@d464.sh</email>
</author>
<published>2025-08-13T10:08:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/fct-drive/commit/?id=74069a896a3b831a19baefc0d9487060b34760b3'/>
<id>74069a896a3b831a19baefc0d9487060b34760b3</id>
<content type='text'>
- Add Drive_rename function to drive_server.ts for backend integration
- Create /api/rename endpoint with proper authentication and error handling
- Update handleRename function to call API instead of placeholder TODO
- Test rename functionality for both files and directories
- Update CLAUDE.md to note fctdrive is available in PATH

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Add Drive_rename function to drive_server.ts for backend integration
- Create /api/rename endpoint with proper authentication and error handling
- Update handleRename function to call API instead of placeholder TODO
- Test rename functionality for both files and directories
- Update CLAUDE.md to note fctdrive is available in PATH

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement /v2 prototype UI with page-based navigation</title>
<updated>2025-08-12T15:16:11+00:00</updated>
<author>
<name>diogo464</name>
<email>diogo464@d464.sh</email>
</author>
<published>2025-08-12T15:16:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/fct-drive/commit/?id=519bb45b89591b78b3ef65e4b937c53482552887'/>
<id>519bb45b89591b78b3ef65e4b937c53482552887</id>
<content type='text'>
- 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 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add Drive_log function and /api/log endpoint</title>
<updated>2025-08-11T15:59:12+00:00</updated>
<author>
<name>diogo464</name>
<email>diogo464@d464.sh</email>
</author>
<published>2025-08-11T15:59:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/fct-drive/commit/?id=6b71b7f2365001bf0d474cca1625c82e310abf63'/>
<id>6b71b7f2365001bf0d474cca1625c82e310abf63</id>
<content type='text'>
- 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 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Calculate directory sizes as sum of all contents</title>
<updated>2025-08-11T15:53:28+00:00</updated>
<author>
<name>diogo464</name>
<email>diogo464@d464.sh</email>
</author>
<published>2025-08-11T15:53:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/fct-drive/commit/?id=a361e446d0a168d00ab908b22902dccf47ed36a1'/>
<id>a361e446d0a168d00ab908b22902dccf47ed36a1</id>
<content type='text'>
- 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 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add sorted tree structure to Drive_tree function</title>
<updated>2025-08-11T15:49:07+00:00</updated>
<author>
<name>diogo464</name>
<email>diogo464@d464.sh</email>
</author>
<published>2025-08-11T15:49:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/fct-drive/commit/?id=c2f5cd994d4d02b8b2ed7ba7b8ab8911c8ad6216'/>
<id>c2f5cd994d4d02b8b2ed7ba7b8ab8911c8ad6216</id>
<content type='text'>
- 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 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Simplify frontend by removing FileItem conversion layer</title>
<updated>2025-08-11T15:48:14+00:00</updated>
<author>
<name>diogo464</name>
<email>diogo464@d464.sh</email>
</author>
<published>2025-08-11T15:48:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.d464.sh/fct-drive/commit/?id=741d42c7ab635180ab416dc749e1bcb774a22f5e'/>
<id>741d42c7ab635180ab416dc749e1bcb774a22f5e</id>
<content type='text'>
- 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 &lt;noreply@anthropic.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- 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 &lt;noreply@anthropic.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
