Merge pull request #24 from SteelDynamite/docs/audit-update
docs: audit and update all markdown files to reflect current progress
This commit is contained in:
commit
4483a6450f
|
|
@ -57,7 +57,7 @@ The GUI uses Svelte 5 runes mode (`$state`, `$derived`, `$effect`, `$props()`).
|
|||
- **Main panel header**: Hamburger + window controls in top bar; list name (large, bold) + kebab below divider (matching task detail layout). Kebab has Rename, Group by due date, Delete completed, Delete list.
|
||||
- **New task**: FAB button opens bottom toast sheet (outside sliding container for fixed positioning).
|
||||
|
||||
### Current state (2026-04-01)
|
||||
### Current state (2026-04-03)
|
||||
|
||||
- **Phase 1** (Core + CLI): Complete
|
||||
- **Phase 2** (WebDAV sync): Backend done, CLI done, GUI wired (settings auto-populates credentials)
|
||||
|
|
@ -86,7 +86,7 @@ The GUI uses Svelte 5 runes mode (`$state`, `$derived`, `$effect`, `$props()`).
|
|||
- Setup screen with window dragging + "Open Existing Folder" option
|
||||
- Sync status indicators (last-sync time + upload/download counts chip)
|
||||
- Push/pull/full sync mode selection (session-only, in settings)
|
||||
- Desktop packaging (Linux: AppImage + .deb)
|
||||
- Desktop packaging (Linux: AppImage + .deb; Windows: MSI)
|
||||
- Tauri desktop-only deps (notify, keyring) feature-gated for Android compilation
|
||||
- Subtask hierarchy: subtask count shown on parent tasks in list, subtask detail via three-panel slide navigation, inline add at top of subtask list (new subtasks prepend), collapsible completed subtasks section, cascade delete (parent deletion removes all subtasks with confirmation warning)
|
||||
- Custom confirmation dialogs (ConfirmDialog component replaces native confirm())
|
||||
|
|
@ -95,7 +95,7 @@ The GUI uses Svelte 5 runes mode (`$state`, `$derived`, `$effect`, `$props()`).
|
|||
|
||||
- Workspace retarget/migrate
|
||||
- Search/filter tasks
|
||||
- Desktop packaging for Windows and macOS
|
||||
- Desktop packaging for macOS
|
||||
|
||||
## Roadmap
|
||||
|
||||
|
|
|
|||
44
PLAN.md
44
PLAN.md
|
|
@ -508,15 +508,15 @@ keyring = "3.0"
|
|||
|
||||
### Features
|
||||
|
||||
- [ ] WebDAV client implementation in core library
|
||||
- [ ] Credential storage (platform keychain)
|
||||
- [ ] Bi-directional sync (push/pull)
|
||||
- [ ] Conflict resolution (last-write-wins)
|
||||
- [ ] Offline queue for pending operations
|
||||
- [ ] CLI: `sync --setup` command
|
||||
- [ ] CLI: `sync --push` command
|
||||
- [ ] CLI: `sync --pull` command
|
||||
- [ ] CLI: `sync --status` command
|
||||
- [x] WebDAV client implementation in core library
|
||||
- [x] Credential storage (platform keychain)
|
||||
- [x] Bi-directional sync (push/pull)
|
||||
- [x] Conflict resolution (last-write-wins)
|
||||
- [x] Offline queue for pending operations
|
||||
- [x] CLI: `sync --setup` command
|
||||
- [x] CLI: `sync --push` command
|
||||
- [x] CLI: `sync --pull` command
|
||||
- [x] CLI: `sync --status` command
|
||||
- [ ] Progress indicators for sync operations
|
||||
|
||||
### CLI Usage Examples
|
||||
|
|
@ -590,9 +590,9 @@ Workspace: shared
|
|||
|
||||
### Deliverables
|
||||
|
||||
- [ ] Working WebDAV sync in backend
|
||||
- [ ] CLI can sync with remote WebDAV server
|
||||
- [ ] Reliable conflict resolution
|
||||
- [x] Working WebDAV sync in backend
|
||||
- [x] CLI can sync with remote WebDAV server
|
||||
- [x] Reliable conflict resolution
|
||||
- [ ] Tested with Nextcloud, ownCloud
|
||||
|
||||
---
|
||||
|
|
@ -726,12 +726,12 @@ WorkspaceConfig {
|
|||
- [x] Group-by-due-date toggle per list (checkmark toggle in list kebab menu)
|
||||
- [x] Subtask hierarchy (expand/collapse, inline add, cascade toggle/delete)
|
||||
- [ ] Search/filter tasks
|
||||
- [x] Desktop packaging (Linux: AppImage + .deb; Windows/macOS not yet verified)
|
||||
- [x] Desktop packaging (Linux: AppImage + .deb; Windows: MSI; macOS not yet verified)
|
||||
- [x] File watcher (notify crate, 500ms debounce, auto-reloads UI on external file changes)
|
||||
|
||||
### Deliverables
|
||||
|
||||
- [x] Functional desktop GUI app (Linux verified, Wayland native)
|
||||
- [x] Functional desktop GUI app (Linux verified, Windows MSI packaging added)
|
||||
- [ ] Sub-300ms startup time (not yet measured/optimized)
|
||||
- [x] Clean, minimal UI
|
||||
- [ ] Feature parity with CLI
|
||||
|
|
@ -803,15 +803,15 @@ npm run tauri ios build
|
|||
|
||||
#### Features
|
||||
|
||||
- [ ] Gate file-watcher initialization behind `#[cfg(not(mobile))]`
|
||||
- [ ] Install Android Studio + NDK, configure env vars
|
||||
- [ ] Add Android Rust targets
|
||||
- [ ] `npm run tauri android init` (generates `gen/android/`)
|
||||
- [ ] Confirm `npm run tauri android build` succeeds
|
||||
- [x] Gate file-watcher initialization behind `#[cfg(not(mobile))]`
|
||||
- [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
|
||||
- [ ] 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/`)
|
||||
- [ ] Confirm `npm run tauri ios build` succeeds on CI
|
||||
- [ ] Basic smoke test: app launches, workspace setup, create a task
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -1011,6 +1011,6 @@ This project is free and open-source software licensed under GPL v3.
|
|||
|
||||
---
|
||||
|
||||
**Last Updated**: 2026-04-01
|
||||
**Document Version**: 4.1
|
||||
**Last Updated**: 2026-04-03
|
||||
**Document Version**: 4.2
|
||||
**Status**: Ready to Implement - Milestone-Driven Plan
|
||||
|
|
|
|||
22
README.md
22
README.md
|
|
@ -27,8 +27,9 @@ onyx/
|
|||
## Project Status
|
||||
|
||||
- **Phase 1** (Core + CLI): Complete
|
||||
- **Phase 2** (WebDAV Sync): Backend and CLI complete, GUI partially wired
|
||||
- **Phase 3** (GUI MVP): In progress — core task CRUD working, UI polished
|
||||
- **Phase 2** (WebDAV Sync): Complete — backend, CLI, and GUI all wired
|
||||
- **Phase 3** (GUI MVP): Complete
|
||||
- **Phase 4** (Mobile): Tauri Android cfg-gated, needs `tauri android init` + build
|
||||
|
||||
### Core Library (`onyx-core`)
|
||||
- Data models (Task, TaskList, AppConfig, WorkspaceConfig)
|
||||
|
|
@ -36,8 +37,9 @@ onyx/
|
|||
- Local storage with repository pattern
|
||||
- Multiple workspace support
|
||||
- Task ordering and grouping
|
||||
- Subtask hierarchy (parent_id)
|
||||
- WebDAV sync with three-way diff and offline queue
|
||||
- Platform keychain credential storage
|
||||
- Platform keychain credential storage (feature-gated for Android)
|
||||
|
||||
### CLI (`onyx-cli`)
|
||||
- Workspace management (init, add, list, switch, remove, retarget, migrate)
|
||||
|
|
@ -52,7 +54,17 @@ onyx/
|
|||
- Drag-and-drop reordering
|
||||
- Sliding lists drawer, settings popup
|
||||
- Workspace switcher with add/remove
|
||||
- Dark mode
|
||||
- Dark mode (GNOME-style neutral grays, cyan-blue accent)
|
||||
- Due date picker/editor with optional time
|
||||
- Subtask hierarchy with three-panel slide navigation
|
||||
- Move tasks between lists
|
||||
- List rename, group-by-due-date toggle, delete completed tasks
|
||||
- Keyboard shortcuts (Escape priority chain)
|
||||
- WebDAV setup flow with credential auto-population
|
||||
- File watcher (auto-reloads on external changes)
|
||||
- Sync status indicators and push/pull/full mode selection
|
||||
- Custom confirmation dialogs
|
||||
- Desktop packaging (Linux: AppImage + .deb; Windows: MSI)
|
||||
|
||||
## Development Setup
|
||||
|
||||
|
|
@ -199,7 +211,7 @@ cargo test -- --nocapture
|
|||
## What's Next?
|
||||
|
||||
- **Phase 4**: Mobile support (iOS & Android via Tauri v2 mobile)
|
||||
- **Phase 5**: GUI advanced features (subtasks, search, date picker)
|
||||
- **Phase 5**: GUI advanced features (rich markdown editor, search/filter)
|
||||
- **Phase 6**: Mobile polish and platform-specific integrations
|
||||
- **Phase 7**: Google Tasks importer and unique features
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ pub struct Task {
|
|||
pub description: String,
|
||||
pub status: TaskStatus,
|
||||
pub due_date: Option<DateTime<Utc>>,
|
||||
pub has_time: bool, // Whether due_date includes a specific time
|
||||
pub created_at: DateTime<Utc>,
|
||||
pub updated_at: DateTime<Utc>,
|
||||
pub parent_id: Option<Uuid>,
|
||||
|
|
@ -106,6 +107,8 @@ Configuration for a single workspace.
|
|||
```rust
|
||||
pub struct WorkspaceConfig {
|
||||
pub path: PathBuf,
|
||||
pub webdav_url: Option<String>,
|
||||
pub last_sync: Option<DateTime<Utc>>,
|
||||
}
|
||||
```
|
||||
|
||||
|
|
@ -374,6 +377,9 @@ pub enum Error {
|
|||
WorkspaceNotFound(String),
|
||||
ListNotFound(String),
|
||||
TaskNotFound(String),
|
||||
WebDav(String),
|
||||
Sync(String),
|
||||
Credential(String),
|
||||
}
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -74,7 +74,8 @@ onyx/
|
|||
│ │ └── lib/
|
||||
│ │ ├── screens/ # Full-page views
|
||||
│ │ ├── components/ # Reusable UI components
|
||||
│ │ └── stores/ # Svelte state (app.svelte.ts)
|
||||
│ │ ├── stores/ # Svelte state (app.svelte.ts)
|
||||
│ │ └── types.ts # TypeScript type definitions
|
||||
│ └── src-tauri/ # Rust backend (Tauri commands)
|
||||
│ ├── Cargo.toml
|
||||
│ ├── tauri.conf.json
|
||||
|
|
|
|||
Loading…
Reference in a new issue