1.9 KiB
1.9 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec |
|---|---|---|---|---|---|---|
| 01-native-shell-commands | Native shell commands and window lifecycle | done | 1 | plan.md | ../../specs/desktop/requirements/desktop-tauri-app.md |
Task 01: Native Shell Commands and Window Lifecycle
Acceptance
- Native Application/File/View/Help menus expose Settings, New Task, Close Context, zoom in/out/reset, Check for Updates, Help links, full screen, and Quit with platform conventions.
Cmd/Ctrl+Wemits a typed Close Context event and has no native window-close fallback.- Zoom is bounded, changes the WebView without resizing the window, and supports
+,=,-, and0accelerators. - macOS red close and Quit stop the backend and exit; second launch, Dock reopen while alive, and explicit focus requests show/unminimize/focus the existing window.
- Window size, position, and maximized state persist; minimized/off-screen state restores visibly.
- The bridge capability is restricted to the owned loopback origin and named commands/events.
Files Likely Touched
apps/desktop/src-tauri/src/main.rsapps/desktop/src-tauri/src/lib.rs- New focused modules under
apps/desktop/src-tauri/src/for menus/window state apps/desktop/src-tauri/Cargo.tomlapps/desktop/src-tauri/tauri.conf.jsonapps/desktop/src-tauri/capabilities/default.json- Rust unit tests alongside the new modules
Verification
cd apps/desktop/src-tauri && rtk cargo fmt --check && rtk cargo test --features desktop-runtime
cd apps && rtk pnpm --filter @kandev/desktop build
Test pure menu-to-event mapping, zoom clamping/reset, window restore clamping, and quit versus updater-restart lifecycle decisions. A desktop smoke assertion must prove Close Context does not produce a close request.
Output Contract
Implement the frozen v1 bridge adapter names from the plan, update this task to done, and check
its plan item only after verification passes.