From 9036ac360a273a4310753e821a445af0c53f0d3f Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 17 Apr 2026 14:44:33 +0000 Subject: [PATCH] docs: sync markdown docs with actual codebase state MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- PLAN.md | 15 +++++++++------ README.md | 15 +++++++++++---- docs/DEVELOPMENT.md | 2 +- 3 files changed, 21 insertions(+), 11 deletions(-) diff --git a/PLAN.md b/PLAN.md index 71f9080..8186244 100644 --- a/PLAN.md +++ b/PLAN.md @@ -532,8 +532,11 @@ pub fn delete_credentials(domain: &str) -> Result<()>; Add to `onyx-core/Cargo.toml`: ```toml reqwest = { version = "0.12", features = ["json", "rustls-tls"] } -keyring = "3.0" -# TODO: Evaluate dav-client or implement custom WebDAV +keyring = { version = "3", features = ["apple-native", "windows-native", "sync-secret-service"], optional = true } +zeroize = "1" +sha2 = "0.10" +quick-xml = "0.36" +# WebDAV implemented as custom client using reqwest + quick-xml for PROPFIND parsing ``` ### Features @@ -844,11 +847,11 @@ npm run tauri ios build #### 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] Add Android Rust targets -- [x] `npm run tauri android init` (generates `gen/android/`) -- [x] Confirm `npm run tauri android build` succeeds +- [ ] `npm run tauri android init` (generates `gen/android/`) +- [ ] Confirm `npm run tauri android build` succeeds - [ ] Basic smoke test: app launches, workspace setup, create a task - [ ] Set up macOS CI for iOS builds - [ ] `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 **Status**: Ready to Implement - Milestone-Driven Plan diff --git a/README.md b/README.md index 241166e..ac71ba2 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ 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 - **Local-First**: Your data, your folder, your control @@ -21,7 +23,10 @@ onyx/ │ └── onyx-cli/ # CLI frontend ├── apps/ │ └── tauri/ # Tauri v2 GUI (Svelte 5 + Tailwind CSS 4) +│ └── tauri-plugin-credentials/ # Cross-platform credential storage plugin └── docs/ + ├── API.md # Core library API reference + └── DEVELOPMENT.md # Development guide ``` ## Project Status @@ -29,7 +34,7 @@ onyx/ - **Phase 1** (Core + CLI): Complete - **Phase 2** (WebDAV Sync): Complete — backend, CLI, and GUI all wired - **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`) - Data models (Task, TaskList, AppConfig, WorkspaceConfig) @@ -59,13 +64,15 @@ onyx/ - Due date picker/editor with optional time - Subtask hierarchy with three-panel slide navigation - 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) - WebDAV setup flow with credential auto-population - File watcher (auto-reloads on external changes) - Auto-sync with configurable interval, status indicators - Swipe gestures on mobile (swipe to toggle completion) - 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) ## Development Setup @@ -213,8 +220,8 @@ cargo test -- --nocapture ## What's Next? -- **Phase 4**: Mobile support (iOS & Android via Tauri v2 mobile) -- **Phase 5**: GUI advanced features (rich markdown editor, search/filter) +- **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, change storage folder) - **Phase 6**: Mobile polish and platform-specific integrations - **Phase 7**: Google Tasks importer and unique features diff --git a/docs/DEVELOPMENT.md b/docs/DEVELOPMENT.md index e1616b7..c07722d 100644 --- a/docs/DEVELOPMENT.md +++ b/docs/DEVELOPMENT.md @@ -27,7 +27,7 @@ cargo run -p onyx-cli -- --help # Run the Tauri GUI 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