Goal
Implement the minimum React/Tauri host proof on top of merged Bundle 48A without starting product screens or exposing renderer access to the Python sidecar.
Schema Tree
minimal React renderer
-> typed invoke-only bridge
-> named Rust commands
-> desktop status
-> native folder selection
-> canonical directory validation
-> in-memory opaque capability registry
-> capability ID + display name only
Deliverables
- pinned React 19 / TypeScript / Vite / Tauri 2 workspace
- committed npm and Cargo lockfiles before final merge
- renderer bridge exposing only named commands
- no direct dialog, shell, filesystem, HTTP or sidecar access in renderer
- Rust desktop status command
- Rust-owned native folder picker
- in-memory opaque library-root capability registry
- capability IDs generated from cryptographic randomness
- renderer response excludes absolute host path
- strict Tauri capability file and CSP
- Rust unit tests for registry isolation, lookup and revocation
- frontend type/build/security-contract checks
- Linux Tauri compile proof and macOS app-bundle proof
- schema tree, operator guide and rollback
Isolation
- no product library table or import execution
- no MIR, composition, export or database change
- no Rust-to-Python sidecar supervision yet; that remains Bundle 48C
- no updater, signing or notarization claim
- no generic shell/fs/http plugin
Parent
Issue #78
Base
464b70cc86314a6a4abc024c9a216c863d1c9b2e
Rollback
Revert one isolated squash commit.
Goal
Implement the minimum React/Tauri host proof on top of merged Bundle 48A without starting product screens or exposing renderer access to the Python sidecar.
Schema Tree
Deliverables
Isolation
Parent
Issue #78
Base
464b70cc86314a6a4abc024c9a216c863d1c9b2eRollback
Revert one isolated squash commit.