Library: title-strip tabs, one library, no side rail - #149
Conversation
The library screen's only chrome is now a 40px strip drawn in place of the native title bar: My Library / Shared / Community tabs on the left; search, sort, New, and the account on the right. The hover rail, the 70px app bar, and the never-mounted folder sidebar are gone. "This Computer" is no longer a destination. My Library shows the local and cloud stores together at the root, deduplicated by id; local strategies carry an "On this device" badge while the cloud is reachable. Opening a folder makes its store active, so every existing per-store path (create, move, edit, delete) keeps working unchanged. The breadcrumb moved into the content area and only appears inside a folder. Window chrome: window_manager hides the native title bar on desktop. macOS keeps its traffic lights, re-centered on the strip by MainFlutterWindow; Windows and Linux get app-drawn caption buttons. The editor's top row and skeleton double as the drag handle. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Greptile SummaryThis change combines local and cloud content under My Library, adds compact title-strip navigation, and keeps folder operations associated with their owning store. Focused Flutter checks confirmed that cross-store drops are rejected, duplicate root rows resolve to the cloud copy, failed cloud folder creation does not write a local folder, and stale cloud-folder selections are cleared after deletion or access loss. Confidence Score: 5/5The verified mixed-library behaviors are safe to merge. Focused Flutter tests exercised local strategy and folder drops on cloud destinations, cloud-preferred root merging, rejected cloud folder creation with a temporary Hive store, and clearing stale cloud folder IDs after removal, not-found, and forbidden responses. Files Needing Attention: No remaining issue requires attention in the validated areas: lib/widgets/library_breadcrumb.dart, lib/widgets/folder_pill.dart, lib/widgets/library_entries.dart, lib/providers/folder_provider.dart, and lib/providers/collab/remote_library_provider.dart.
What T-Rex did
Reviews (1): Last reviewed commit: "feat: replace the library rail with a ti..." | Re-trigger Greptile |
The map card is 65px tall and the row had 15px of top padding, so the traffic lights (centred on the 40px strip) floated above every control. Drop the padding and top-align the row: the 40px controls now share the lights' centre line; only the map card hangs below. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The traffic lights were pinned to the library strip's 40px band, so on macOS the 65px map card could never share their line. The editor header now tells the window its band height over a small method channel and MainFlutterWindow re-centres the lights on it; they move back up when the editor closes. With that, every platform centres the controls, the map card, and the window buttons on the same line. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
What changed
The library screen's only chrome is now a 40px strip drawn in place of the native title bar: My Library / Shared / Community tabs on the left; search, sort, New, and the account on the right. The hover rail, the 70px app bar, and the never-mounted
FolderNavigatorSidebarare gone."This Computer" is no longer a place. My Library shows the local and cloud stores together at the root (deduplicated by id, cloud wins). Local strategies carry an On this device badge while the cloud is reachable. Opening a folder makes its store the active one, so every existing per-store path (create, move, edit, delete, share) keeps working unchanged. The breadcrumb moved into the content area and only shows inside a folder.
Window chrome.
window_managerhides the native title bar on desktop. macOS keeps its traffic lights, re-centered on the strip byMainFlutterWindow.swift(Electron's approach: grow the title bar container, center the buttons in it). Windows and Linux get app-drawn caption buttons on the right (WindowCaptionButtonfrom window_manager). The strip and the editor's top row are drag handles; double-click zooms. Web renders the same strip without inset or buttons.Design exploration that led here is checked in at
docs/mockups/library-nav-alternatives.html(open it, press 1–5; variant 2 is what shipped).Behaviour changes worth knowing
FolderCardstays for the folder edit dialog preview.Bug fixed along the way
cloudFoldersProviderwas anasync*stream that early-returned while the folder tree was loading. With no other listener holding the auto-disposed tree, every emission tore the tree down and re-subscribed it, so My Library sat on the skeleton forever. The old app-bar breadcrumb happened to keep the tree alive and hid this. It is now a plain derivation from the tree.Not in this PR (deliberately)
Testing
flutter test: 614 passing. New:library_navigation_provider_test,library_entries_test; strip tests replace the rail tests incloud_beta_automation_semantics_test.🤖 Generated with Claude Code