Commit graph

176 commits

Author SHA1 Message Date
Tristan Michael 5faf285d28 feat(tauri): add move, rename, grouping commands and file watcher
Add Tauri commands: move_task, rename_list, set/get_group_by_due_date,
watch_workspace. Implement file watcher using notify crate with 500ms
debounce and self-change suppression via mute_watcher().

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 13:27:56 -07:00
Tristan Michael c4c03679ae feat(core): add move_task and rename_list to onyx-core
Add TaskRepository::move_task() to move tasks between lists and
rename_list() to rename lists on the filesystem. Adds rename_list
to the Storage trait with FileSystemStorage implementation.
Includes tests for both operations plus duplicate-name error case.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 13:27:47 -07:00
SteelDynamite 6959b1f44f
Merge pull request #13 from SteelDynamite/rename-to-onyx
rename-to-onyx
2026-03-31 09:48:40 -07:00
Tristan Michael 13da81fae6 update project docs, workspace config, and lockfile for onyx rename 2026-03-31 09:47:19 -07:00
Tristan Michael aca444a274 rename Flutter app from bevy_tasks to onyx 2026-03-31 09:47:13 -07:00
Tristan Michael c536250072 rename Tauri app from bevy-tasks to onyx 2026-03-31 09:47:07 -07:00
Tristan Michael 27363c8424 rename onyx-cli crate (formerly bevy-tasks-cli) 2026-03-31 09:47:02 -07:00
Tristan Michael 9e204ef818 rename onyx-core crate (formerly bevy-tasks-core) 2026-03-31 09:46:56 -07:00
SteelDynamite 8b5894bff2
Merge pull request #12 from SteelDynamite/flutter-windows
flutter-windows
2026-03-31 09:20:04 -07:00
Tristan Michael 8983a1b632 feat(flutter): add UI animations, fix resize overflow, polish menus
- Fix resize overflow by replacing AnimatedPositioned/AnimatedContainer
  with OverflowBox + AnimatedSlide (transform-based, no layout reflow)
- Add slide-up animation for new task toast using AnimationController
- Add fade+scale animation for settings screen overlay
- Add fade+scale animation for kebab menu in task detail view
- Convert workspace switcher from inline dropdown to floating popup
  menu with fade+scale animation and hover states
- Add hover highlights to workspace menu items and fix kebab menu
  hover highlights extending to edges
- Add drawer shadow casting onto main content when open
- Standardize all transition durations to 150ms
- Skip custom border/resize zones on Windows (native frame suffices)
2026-03-31 09:18:02 -07:00
Tristan Michael e1eba4cb83 feat(flutter): add Windows platform support
Add Windows runner files from flutter create, lower Dart SDK
constraint to ^3.11.1 for compatibility, and remove native
border/shadow on Windows since the OS provides it.
2026-03-31 09:17:50 -07:00
SteelDynamite 45c5da7f47
Merge pull request #11 from SteelDynamite/flutter-app
flutter-app
2026-03-31 07:08:53 -07:00
SteelDynamite 64015f2f5d
Merge pull request #10 from SteelDynamite/tauri-tweaks
chore(tauri): minor config and style updates
2026-03-31 07:07:40 -07:00
Tristan Michael af61feecc2 chore(tauri): minor config and style updates 2026-03-31 07:06:46 -07:00
Tristan Michael 3b48f5fd86 feat(flutter): add widgets — title bar, task item, detail view, new task, date picker 2026-03-31 07:03:12 -07:00
Tristan Michael 0fc5066f97 feat(flutter): add screens — setup, tasks, settings 2026-03-31 07:03:07 -07:00
Tristan Michael b236892203 feat(flutter): add app shell, theme, and state management 2026-03-31 07:03:02 -07:00
Tristan Michael 85e616c256 feat(flutter): add Rust bridge backend and generated bindings 2026-03-31 07:02:58 -07:00
Tristan Michael 8bfbbd0444 feat(flutter): add project scaffold and Linux runner 2026-03-31 07:02:51 -07:00
SteelDynamite 2a0fb03421
Merge pull request #9 from SteelDynamite/gui-layout-refinements
feat(gui): refine layout - compact headers, reorganize panels, improve task UX
2026-03-30 16:52:16 -07:00
Tristan Michael 4d762364d5 feat(gui): refine layout - compact headers, reorganize panels, improve task UX
- Standardize header height (h-11) across detail view and main panel
- Move kebab menu below header in task detail view
- Move workspace switcher to drawer header with window drag support
- Move settings button to drawer footer with label
- Add mark-as-completed/restore to kebab menu, remove bottom action bar
- Enlarge checkbox hit target without changing visual size
- Show checkmark animation before task collapse transition

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 16:51:41 -07:00
SteelDynamite 6c09ef6b4c
Merge pull request #8 from SteelDynamite/audit-and-fixes
audit-and-fixes
2026-03-30 16:51:36 -07:00
Tristan Michael b863e025d5 refactor(cli): consolidate output through output module
- Add header(), detail(), item(), blank() functions to output.rs
- Replace all raw println!() calls with output::* equivalents
- Fix {:?} debug format for paths — use .display() for clean output
- Extract print_tasks() helper to deduplicate task display logic
- Consistent formatting: info for empty states, item for list entries
2026-03-30 16:29:57 -07:00
Tristan Michael c32a6fbe8b fix(core): resolve all Clippy warnings
- Replace redundant closures with function references (webdav.rs, sync.rs)
- Use is_some_and instead of map_or(false, ...) (sync.rs)
- Use map instead of and_then(|x| Some(...)) (sync.rs)
- Use if-let instead of single-arm match (webdav.rs)
2026-03-30 16:29:47 -07:00
Tristan Michael 60fbbd75b8 fix(cli): add confirmation prompt before task deletion
Match the existing confirmation pattern used by list delete and
workspace remove commands.
2026-03-30 16:24:46 -07:00
Tristan Michael c138a8bcf6 fix(gui): wire sync credentials, fix memory leak, race condition, add delete confirmations
- Add load_credentials Tauri command and use it in triggerSync() instead
  of passing empty username/password strings
- Replace raw __TAURI_INTERNALS__.invoke() with proper invoke import in
  SettingsScreen
- Wrap window event listeners in $effect() with cleanup to prevent
  memory leak on component remount
- Return created Task from createTask() and use it directly in
  NewTaskInput instead of guessing from array index
- Add confirm() dialogs before deleting tasks, lists, and workspaces
2026-03-30 16:24:46 -07:00
Tristan Michael a54e427cd9 fix(core): sanitize task filenames to prevent path traversal
Replace illegal filesystem characters (/ \ : * ? " < > |) and control
characters with underscores. Fall back to task ID as filename if the
sanitized title is empty.
2026-03-30 16:24:46 -07:00
Tristan Michael 9333ac7825 docs: update documentation, add LICENSE, fix outdated info
- Add GPL-3.0 LICENSE file
- Update README with current project status (all 3 phases), fix structure
- Update PLAN.md Phase 2 API signatures to match actual implementation
- Add WebDAV & Sync section to docs/API.md
- Update docs/DEVELOPMENT.md with Tauri app structure and setup
- Add metadata (description, license, repository) to all Cargo.toml files
- Update .gitignore with node_modules, .env, dist, build entries
- Remove stale Cargo.lock from .gitignore (apps should track it)
- Update example dates from 2025 to 2026 across all docs
- Update CLAUDE.md date to 2026-03-30
2026-03-30 16:24:46 -07:00
SteelDynamite 56e3021281
Merge pull request #7 from SteelDynamite/gui-window-and-task-input
Gui window and task input
2026-03-30 10:11:28 -07:00
Tristan Michael 04758db04e Restyle new task sheet to match task detail view layout
Use the same visual structure as TaskDetailView: large bold title input,
description textarea with notes icon, and date/time row with
DateTimePicker. Uses fixed positioning with a combined backdrop wrapper
to avoid layout shifts and ensure proper slide-up animation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 10:10:16 -07:00
Tristan Michael 9116ac3e0e Remove maximize button and double-click-to-maximize from title bar
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-30 10:10:11 -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
SteelDynamite 8db4258fe9
Merge pull request #6 from SteelDynamite/gui-enhancements
gui-enhancements
2026-03-30 07:56:52 -07:00
Tristan Michael efe1060798 Add move-task and optional-time items to Phase 3 checklist 2026-03-30 07:54:41 -07:00
Tristan Michael c6895c12ae Add sliding task detail view with custom date/time picker
Replace inline task editing with a full-viewport detail panel that
slides in from the right. Includes editable title, description, custom
calendar-based date/time picker (bottom sheet), kebab menu with delete,
and mark complete/restore button. Simplify TaskItem to remove inline
editing and kebab menu, add chevron hint and onopen callback. Use list
icon for drawer toggle instead of back arrow.
2026-03-30 07:54:35 -07:00
Tristan Michael 0c8c2a0272 Replace settings back button with close button in top right
Move the settings popup close action from a back arrow in the top left
to an X button in the top right, using justify-between for layout.
2026-03-30 07:54:26 -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
SteelDynamite e5c78ddfde
Merge pull request #5 from SteelDynamite/tauri-gui-redesign
tauri-gui-redesign
2026-03-29 16:10:02 -07:00
Tristan Michael 0b10b7895a Add next items to Phase 3 checklist in PLAN.md 2026-03-29 15:58:11 -07:00
Tristan Michael 0f0ec33408 Animated completed section, updated PLAN.md and CLAUDE.md with current status 2026-03-29 15:56:15 -07:00
Tristan Michael 1cf05584e6 Add smooth task toggle animations with collapse/expand transitions 2026-03-29 15:43:25 -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 f810cfa2a3 Commit to Tauri GUI: remove Flutter/egui, redesign task UI
- Remove Flutter app and egui placeholder crate, commit to Tauri as sole GUI
- Update PLAN.md to replace egui with Tauri across all phases (v4.0)
- Redesign task screen: sliding drawer for list picker, floating FAB for new tasks,
  bottom sheet toast for task creation with title + description fields
- Add description support to create_task Tauri command
- Lighten dark theme to GNOME-style neutral grays, shift primary to cyan-blue
- Fix Wayland compatibility (dev port change)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 09:49:30 -07:00
Tristan Michael 9b0efa8830 dunno 2026-03-28 06:28:14 -07:00
Tristan Michael ec17d6274f tauri and flutter guis 2026-03-17 09:38:53 -07:00
Tristan Michael 087617b47f webdav 2026-03-17 06:51:15 -07:00
Tristan Michael b602f2cbd1 . 2026-03-17 06:31:19 -07:00
Tristan Michael c85e192eb8 progress 2026-03-17 06:22:16 -07:00
Tristan Michael 1d90354fd3 progress of some kind 2026-03-17 05:49:48 -07:00