Skip to content

Tauri desktop app with persistent library folder and project file - #98

Merged
hopskipnfall merged 3 commits into
masterfrom
claude/tauri-desktop-app-design-f713e9
Oct 5, 2026
Merged

hopskipnfall merged 3 commits into
masterfrom
claude/tauri-desktop-app-design-f713e9

Conversation

@hopskipnfall

Copy link
Copy Markdown
Owner

Summary

  • Tauri 2 desktop build (macOS/Windows/Linux) from the same codebase. It points at a library folder (default ~/Documents/Replays, changeable), scans it on launch and watches it live, so replays never need re-importing.
  • File is replaced by a lazy ReplayFileSource throughout the import path. Unchanged files attach from stat data with zero reads. Web behavior is unchanged.
  • On desktop, notes, session/matchup comments, identity, YouTube links and hand-set perspectives are saved to rmgr-viewer-project.json in the library folder: atomic writes, debounced save plus flush on close, 3 rotating backups, newer-schema and corrupt-file handling, one-time migration from webview storage, and a separate file per library folder. The stats cache stays in IndexedDB.
  • CI: tauri-check (cargo check) and tauri-build (installers as workflow artifacts) on master and PRs. New release.yml builds a draft GitHub Release on v* tags (unsigned).

Spec: docs/superpowers/specs/2026-10-05-tauri-desktop-app-design.md. Plan: docs/superpowers/plans/2026-10-05-tauri-desktop-app-implementation.md.

Notes for review

  • fs write/rename/remove are scoped to rmgr-viewer-project.json* for the default folder. For a folder picked via the dialog, Tauri adds the whole directory to the scope at runtime; the app only ever writes the project file.
  • "Clear local data" no longer wipes notes/comments on desktop, since the project file re-hydrates them on next launch.
  • The app icon is a placeholder. The identifier must never change; the note is in main.rs, and the WiX upgradeCode is pinned.

Test plan

  • npm run typecheck, lint, format:check, test (950 pass), build
  • cargo check --manifest-path src-tauri/Cargo.toml
  • npm run tauri:dev launches on macOS
  • Per-OS smoke test (spec §5): first launch creates the folder; a new recording appears; a rename keeps notes; a deleted file shows the Rescan prompt; Change folder rescans and watches; relaunch keeps the custom folder; YouTube playback
  • Confirm the first tauri-build CI run uploads installers (artifact globs are unverified)

Replace File with a lazy ReplayFileSource as the unit of import, add a
desktop build (src-tauri) that scans and watches a library folder, and
persist notes, comments, identity, video links and perspective overrides
to rmgr-viewer-project.json in that folder (atomic writes, rotating
backups, newer-schema and corrupt-file handling). Add release and CI
workflows that build the installers.
@hopskipnfall
hopskipnfall merged commit 1c0ab41 into master Oct 5, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant