Compare commits

...

1 commit

Author SHA1 Message Date
Claude 9036ac360a
docs: sync markdown docs with actual codebase state
- README.md: update Phase 4 status to reflect Android preliminaries done
  (file-watcher gating, tauri-plugin-credentials, safe area insets, Android
  targets configured) but init/build not yet run; add tauri-plugin-credentials
  to project structure; expand docs/ tree; add newer GUI features (workspace
  rename, safe area insets, accessibility); add setup screen screenshot;
  update What's Next to note Phase 4 is in progress
- PLAN.md: fix Phase 4 checkboxes — android init and build-succeeds were
  marked [x] but gen/android/ does not exist; correct cfg gate annotation
  from #[cfg(not(mobile))] to #[cfg(not(target_os = "android"))]; update
  dependency snippet to reflect actual keyring/zeroize/sha2/quick-xml usage;
  bump Last Updated to 2026-04-17
- docs/DEVELOPMENT.md: add WEBKIT_DISABLE_DMABUF_RENDERER=1 Wayland note
  to tauri dev command

https://claude.ai/code/session_01MypN7wPNqeSgw8b5DYpMc1
2026-04-17 15:00:06 +00:00
3 changed files with 21 additions and 11 deletions

15
PLAN.md
View file

@ -532,8 +532,11 @@ pub fn delete_credentials(domain: &str) -> Result<()>;
Add to `onyx-core/Cargo.toml`: Add to `onyx-core/Cargo.toml`:
```toml ```toml
reqwest = { version = "0.12", features = ["json", "rustls-tls"] } reqwest = { version = "0.12", features = ["json", "rustls-tls"] }
keyring = "3.0" keyring = { version = "3", features = ["apple-native", "windows-native", "sync-secret-service"], optional = true }
# TODO: Evaluate dav-client or implement custom WebDAV zeroize = "1"
sha2 = "0.10"
quick-xml = "0.36"
# WebDAV implemented as custom client using reqwest + quick-xml for PROPFIND parsing
``` ```
### Features ### Features
@ -844,11 +847,11 @@ npm run tauri ios build
#### Features #### Features
- [x] Gate file-watcher initialization behind `#[cfg(not(mobile))]` - [x] Gate file-watcher initialization behind `#[cfg(not(target_os = "android"))]`
- [x] Install Android Studio + NDK, configure env vars - [x] Install Android Studio + NDK, configure env vars
- [x] Add Android Rust targets - [x] Add Android Rust targets
- [x] `npm run tauri android init` (generates `gen/android/`) - [ ] `npm run tauri android init` (generates `gen/android/`)
- [x] Confirm `npm run tauri android build` succeeds - [ ] Confirm `npm run tauri android build` succeeds
- [ ] Basic smoke test: app launches, workspace setup, create a task - [ ] Basic smoke test: app launches, workspace setup, create a task
- [ ] Set up macOS CI for iOS builds - [ ] Set up macOS CI for iOS builds
- [ ] `npm run tauri ios init` (generates `gen/ios/`) - [ ] `npm run tauri ios init` (generates `gen/ios/`)
@ -1056,6 +1059,6 @@ This project is free and open-source software licensed under GPL v3.
--- ---
**Last Updated**: 2026-04-15 **Last Updated**: 2026-04-17
**Document Version**: 4.3 **Document Version**: 4.3
**Status**: Ready to Implement - Milestone-Driven Plan **Status**: Ready to Implement - Milestone-Driven Plan

View file

@ -2,6 +2,8 @@
A **local-first, cross-platform tasks application** built with Rust. Inspired by Google Tasks, designed for speed and flexibility. A **local-first, cross-platform tasks application** built with Rust. Inspired by Google Tasks, designed for speed and flexibility.
![Onyx setup screen](screenshot.png)
## Core Principles ## Core Principles
- **Local-First**: Your data, your folder, your control - **Local-First**: Your data, your folder, your control
@ -21,7 +23,10 @@ onyx/
│ └── onyx-cli/ # CLI frontend │ └── onyx-cli/ # CLI frontend
├── apps/ ├── apps/
│ └── tauri/ # Tauri v2 GUI (Svelte 5 + Tailwind CSS 4) │ └── tauri/ # Tauri v2 GUI (Svelte 5 + Tailwind CSS 4)
│ └── tauri-plugin-credentials/ # Cross-platform credential storage plugin
└── docs/ └── docs/
├── API.md # Core library API reference
└── DEVELOPMENT.md # Development guide
``` ```
## Project Status ## Project Status
@ -29,7 +34,7 @@ onyx/
- **Phase 1** (Core + CLI): Complete - **Phase 1** (Core + CLI): Complete
- **Phase 2** (WebDAV Sync): Complete — backend, CLI, and GUI all wired - **Phase 2** (WebDAV Sync): Complete — backend, CLI, and GUI all wired
- **Phase 3** (GUI MVP): Complete - **Phase 3** (GUI MVP): Complete
- **Phase 4** (Mobile): In progress — Android preliminaries done (file-watcher gating, tauri-plugin-credentials, safe area insets, Android targets configured); needs build verification and iOS setup - **Phase 4** (Mobile): In progress — Android preliminaries done (file-watcher gating, `tauri-plugin-credentials`, safe area insets, Android targets configured); needs `tauri android init`, build verification, and iOS setup
### Core Library (`onyx-core`) ### Core Library (`onyx-core`)
- Data models (Task, TaskList, AppConfig, WorkspaceConfig) - Data models (Task, TaskList, AppConfig, WorkspaceConfig)
@ -59,13 +64,15 @@ onyx/
- Due date picker/editor with optional time - Due date picker/editor with optional time
- Subtask hierarchy with three-panel slide navigation - Subtask hierarchy with three-panel slide navigation
- Move tasks between lists - Move tasks between lists
- List rename, group-by-date toggle, delete completed tasks - List rename, workspace rename, group-by-date toggle, delete completed tasks
- Keyboard shortcuts (Escape priority chain) - Keyboard shortcuts (Escape priority chain)
- WebDAV setup flow with credential auto-population - WebDAV setup flow with credential auto-population
- File watcher (auto-reloads on external changes) - File watcher (auto-reloads on external changes)
- Auto-sync with configurable interval, status indicators - Auto-sync with configurable interval, status indicators
- Swipe gestures on mobile (swipe to toggle completion) - Swipe gestures on mobile (swipe to toggle completion)
- Custom confirmation dialogs - Custom confirmation dialogs
- Safe area insets for mobile (viewport-fit=cover)
- Accessibility: ARIA labels/roles, keyboard handlers, `prefers-reduced-motion` support
- Desktop packaging (Linux: AppImage + .deb; Windows: MSI) - Desktop packaging (Linux: AppImage + .deb; Windows: MSI)
## Development Setup ## Development Setup
@ -213,8 +220,8 @@ cargo test -- --nocapture
## What's Next? ## What's Next?
- **Phase 4**: Mobile support (iOS & Android via Tauri v2 mobile) - **Phase 4** (in progress): Complete Android build (`tauri android init` + verification), iOS setup on macOS CI
- **Phase 5**: GUI advanced features (rich markdown editor, search/filter) - **Phase 5**: GUI advanced features (rich markdown editor, search/filter, change storage folder)
- **Phase 6**: Mobile polish and platform-specific integrations - **Phase 6**: Mobile polish and platform-specific integrations
- **Phase 7**: Google Tasks importer and unique features - **Phase 7**: Google Tasks importer and unique features

View file

@ -27,7 +27,7 @@ cargo run -p onyx-cli -- --help
# Run the Tauri GUI # Run the Tauri GUI
cd apps/tauri && npm install cd apps/tauri && npm install
npm run tauri dev npm run tauri dev # (Wayland: WEBKIT_DISABLE_DMABUF_RENDERER=1 npm run tauri dev)
``` ```
## Project Structure ## Project Structure