v2 workspace: plan + architecture docs for the Tauri/Rust rewrite#22
Merged
Conversation
Sets up v2/ as the workspace for the Rust + Tauri 2 rewrite, with two planning artifacts: - v2/README.md — technology choices (Tauri 2 / Rust / Svelte default), three-layer architecture (engine / ADB driver / frontend), seven non-negotiable architectural commitments, local setup steps for once the Rust toolchain is installed. - v2/PLAN.md — eleven-phase porting roadmap. Each phase maps line items to FEATURES.md sections. Definition-of-done checklist for v2.0.0. Parking-lot section captures research-pass ideas deferred past v2.1. - v2/.gitignore — Tauri / Rust / Node build artifacts and update-signing key paths. No code yet — the Rust toolchain isn't installed locally and hand- writing a Tauri scaffold risks producing files that won't compile. The plan is concrete enough that running cargo create-tauri-app once Rust is set up will slot directly into this structure.
Independent review surfaced several technical concerns and gaps. Folded fixes into the plan and the README's architectural commitments. README: - Commitment #1 (engine has no I/O) clarified to also exclude HTTP fetches. Commitment #2 (runtime app-list fetch) now explicitly states the loader lives in the Tauri host layer next to the command bridge, NOT in the engine — engine accepts lists as inputs. Resolves the tension the reviewer flagged. - Added explicit "Non-goals" section: not a root tool, not a flasher, no cloud sync, no telemetry, no Play Store. Bounds expectations. PLAN.md Phase 1 (Foundation): - Added Phase 1.7 fixture-capture pass — real Shield dumpsys outputs checked in early so all later phases have a test corpus without needing device access. - Added Phase 1.9 — pin the frontend framework before shipping the first 3 views (switching frameworks after that is expensive). PLAN.md Phase 10 (Packaging): - 10.2 code-signing decision is now concrete: macOS = Apple Dev Program + notarization ($99/yr, no shortcut). Windows = pick (a) EV cert ($300-500/yr, immediate SmartScreen reputation), (b) OV cert ($100-300/yr, 30k-install reputation ramp), or (c) unsigned + documented bypass. Notes (c) is risky for the debloater audience that already mistrusts the tool. Linux = personal GPG. - 10.4 calls out pinned toolchain versions for reproducible builds. - 10.5 expanded: the Ed25519 signing key MUST NOT rotate without bricking auto-update for old versions — document custody, backup, and one-way "key lost" recovery procedure. PLAN.md Phase 11 (Mobile): - Reality-check warning at the top: Android apps cannot bundle or exec an `adb` binary (SELinux + sandbox), so "ADB-over-network from phone" means reimplementing the ADB wire protocol in Rust. That's a substantial library, not a small task. - Added Phase 11.0 — research spike evaluating existing Rust ADB crates (`adb_client`, `forensic-adb`, etc.) before committing to a v2.1 timeline. Decision document gates 11.1. - Phase 11.3 reframed accordingly. PLAN.md Phase 5 addenda + parking lot: - Moved "Disable Nvidia telemetry preset" and "More Shield bloat from florisse.nl" out of the parking lot and into a new "Phase 5 addenda" section — they're data changes to the app lists, not future features. Introduces a `data/presets/*.json` schema as Phase 5 scope to support composed multi-package actions. - Parking lot still holds the post-v2.1 ideas. Definition of done for v2.0 — added: - Snapshot-rejection fixture test (honoring commitment #5) - v1 → v2 snapshot migration story documented - Signing-key custody plan committed - Third-party attribution surface in-app - Accessibility baseline (keyboard, contrast) - No-telemetry confirmation via build inspection
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.
Sets up `v2/` as the workspace for the rewrite per the language/stack discussion. No code yet — the Rust toolchain isn't installed locally and hand-writing Tauri scaffolding risks producing files that won't compile. The plan is structured so `cargo create-tauri-app` slots directly into this layout when the toolchain is ready.
What's in this PR
Phase summary
Architectural commitments (non-negotiable, see README)
Pairs with #21 (the feature catalog) — `docs/FEATURES.md` is the behavior spec, this PR is the implementation roadmap that walks it.