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
This commit is contained in:
Claude 2026-04-17 14:44:33 +00:00
parent 0c2a218260
commit 9036ac360a
No known key found for this signature in database
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`:
```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

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.
![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

View file

@ -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