R3-A: Tauri 2 spike shell — macOS SQLite & vault probes passing - #54
Merged
Conversation
…dence Add apps/desktop Tauri 2 shell consuming the existing client build, a /tauri-spike probe screen behind the LocalPlatformProbe contract in packages/core, and docs/R3-A-EVIDENCE.md recording the first two macOS proofs (SQLite persistence across reopen; UTF-8 Markdown vault round-trip through the native directory dialog). Plugin default permission sets proved insufficient at runtime: the capabilities file must grant sql:allow-execute plus fs:allow-read-text-file and fs:allow-write-text-file explicitly. The native window starts on tauri://localhost/tauri-spike, exempted from the auth redirect as a bare page. PMTiles offline-map proof and Windows/iOS/Android targets remain open; no Go/No-go conclusion is recorded. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Resolve three conflicts: - apps/api/tests/Feature/CompoundFieldFeatureTest.php: take main. Both sides applied the same Pint cleanups; main additionally anonymized the demo names (Camille/Sacha Exemple) as part of the seeder hardening, so main is a strict superset. - apps/client/vitest.config.ts: take main. It keeps this branch's fileParallelism:false and adds the CI heap fix (pool:'forks', maxWorkers:1). - apps/client/src/routeTree.gen.ts: regenerated from src/routes via the TanStack router plugin rather than hand-merged. The result carries main's routes (builder, reports, shares, public-shares) alongside this branch's /tauri-spike. Verified after resolution: tsc -b clean, 60/60 client tests pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The Lint job's prettier --check flagged the three new R3-A files for printWidth overruns. The pre-commit hook reported success on these paths but the committed blobs were never reformatted, so CI caught what the hook missed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
apps/desktopTauri 2 shell consuming the existingapps/clientbuild; the React app stays the sole UI.LocalPlatformProbecontract inpackages/corewith a disposable Tauri adapter (tauriSpikeProbe.ts) and a deterministic/tauri-spikeprobe screen (exempted from the auth redirect as a bare page).docs/R3-A-TAURI-SPIKE.md(approved spec) anddocs/R3-A-EVIDENCE.md(evidence bundle).Why
R3-A feasibility spike: produce reproducible evidence that the client can run inside Tauri 2 with local SQLite, a user-selected Markdown vault, and an offline PMTiles map — before any R3-B/C/D work.
Evidence so far (macOS, 2026-07-12)
tauri-plugin-sql; independently verified withsqlite3against the app-data DB.tauri-plugin-fs; verified on disk.Reviewer notes
defaultpermission sets are insufficient at runtime:capabilities/default.jsonexplicitly addssql:allow-execute,fs:allow-read-text-file,fs:allow-write-text-file.sql:defaultonly grants load/select/close — the initial run failed onCREATE TABLE.tauri://localhost/tauri-spike(production webview protocol) rather than a relative path.🤖 Generated with Claude Code