Commit graph

9 commits

Author SHA1 Message Date
Tristan Michael 50d859ef80 Refactor workspaces to use UUID keys
Change workspace identifiers from display names to UUID strings so
multiple workspaces can share the same display name. WorkspaceConfig now
stores a name field; add_workspace returns a generated UUID. Update all
CLI, Tauri commands, frontend stores and screens, WebDAV managed
directories, and tests to use/resolve workspace IDs; add helpers
find_by_name/resolve_name to map display names to IDs when needed. This
removes duplicate-name checks, avoids filesystem conflicts, and
preserves display names while using stable unique IDs internally.
2026-04-05 14:58:31 -07:00
Tristan Michael ac789e8d56 Handle deleted/moved workspace folders (missing state)
Detect when the current workspace folder cannot be opened and show a
dedicated "missing" screen that explains the workspace was not found.
Catch failures from get_lists during loadConfig, set a missingWorkspace
state and switch to the missing screen, and provide
forgetMissingWorkspace() to remove the missing workspace from the config
and either switch to the next available workspace or fall back to the
setup screen. Add UI in App.svelte to present the workspace name,
explanation, and a Continue button that invokes forgetting the missing
workspace.
2026-04-05 14:30:22 -07:00
Tristan Michael a1e97bc0fe feat: per-workspace theme system with 5 theme options
Replaces in-memory darkMode toggle with persisted per-workspace theme
selection. Adds dark, nord, dracula, and solarized CSS theme definitions.
Theme is applied via data-theme attribute and derived isDark class.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 04:02:39 -07:00
Tristan Michael af61feecc2 chore(tauri): minor config and style updates 2026-03-31 07:06:46 -07:00
Tristan Michael 93a3defcdb Switch to opaque frameless window for cross-platform reliability
Transparent windows require platform-specific workarounds (WebView2 on
Windows, compositor support on Linux) and don't work on mobile. Use an
opaque window instead, removing the outer padding, rounded corners, and
drop shadow that depended on transparency.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 10:10:08 -07:00
Tristan Michael ea76f65579 Frameless transparent window with custom title bar
Remove native window decorations and add transparent background with
rounded corners, border, and drop shadow. Add custom close button
(Linux) and minimize/maximize/close (Windows) in the header. Add
programmatic window dragging via mousedown and double-click to maximize.
Install tauri-plugin-os for platform detection. Move sync spinner to
bottom-right corner. Convert drawer layout from vw to cqi units to
support the padding-based shadow approach.
2026-03-30 07:54:17 -07:00
Tristan Michael 3f6f327c92 Redesign drawer, settings popup, workspace switcher, kebab menus, and task UX polish 2026-03-29 15:03:46 -07:00
Tristan Michael 68dfbb078a Add drag-and-drop task reordering, sliding settings panel, and inline task editing 2026-03-29 13:49:10 -07:00
Tristan Michael ec17d6274f tauri and flutter guis 2026-03-17 09:38:53 -07:00