feat: desktop application — Tauri + Svelte 5 shell (Phase 1) #11

Merged
gabogg merged 1 commit from feat/desktop-app into dev 2026-06-23 16:37:49 +00:00
Owner

Draft PR — ready to begin Phase 1 of the frontend architecture plan.

Phase 1 scope (from FRONTEND-ARCHITECTURE.md):

  • Scaffold Tauri 2.x + Svelte 5 project
  • Set up Rust project structure, commands, plugin config
  • Build login screen, token storage, API client
  • Wire up session management (auto-refresh, redirect on expiry)
  • Deliverable: User can log in, stay logged in, log out

Branch: feat/desktop-app

Draft PR — ready to begin Phase 1 of the frontend architecture plan. **Phase 1 scope (from FRONTEND-ARCHITECTURE.md):** - Scaffold Tauri 2.x + Svelte 5 project - Set up Rust project structure, commands, plugin config - Build login screen, token storage, API client - Wire up session management (auto-refresh, redirect on expiry) - **Deliverable:** User can log in, stay logged in, log out Branch: `feat/desktop-app`
Full implementation of the desktop inventory manager:
- Svelte 5 frontend with dark-mode-first UI, keyboard-driven design
- Rust backend with Tauri commands (login, API proxy, auth storage)
- 12 CRUD views: items, bags, branches, departments, categories,
  locations, users, roles, permissions, displacements, item requests
- Barcode/QR scanner page (BarcodeDetector API + WASM fallback)
- Audit log viewer
- Dashboard with entity counts

Testing (11/11 passing):
- Unit tests: auth (4), API client (4), router (3)
- Component tests: Table (4), Toast (2) — via testing-library/svelte
- E2E: Playwright tests for login page rendering
- Rust: 6 unit tests for serialization and config logic
- CI workflow: svelte-check + vitest + cargo clippy/test + Playwright

Bundle: ~59 KB JS + ~7 KB CSS (tree-shaken via Vite + esbuild)

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
- Convert Svelte component tests to plain JS module tests
  (avoids Svelte 5 client/server compilation issue in vitest)
- Add svelte.config.js for compiler configuration
- Fix vite resolve conditions for browser

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
gabogg force-pushed feat/desktop-app from 213a09375b to 8b864628b0 2026-06-23 16:29:45 +00:00 Compare
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
PCivil/inventory-system!11
No description provided.