From 110f489ace70997a935c5463954180e58784fcf9 Mon Sep 17 00:00:00 2001 From: Vantz Stockwell Date: Tue, 17 Mar 2026 14:53:13 -0400 Subject: [PATCH] =?UTF-8?q?docs:=20drop=20vault=20compatibility=20?= =?UTF-8?q?=E2=80=94=20fresh=20start=20with=206=20credentials?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commander approved. No Go↔Rust encryption compatibility needed. Fresh vault, fresh wraith.db. Removes compatibility test from Phase 1 and risk register. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../superpowers/plans/2026-03-17-tauri-v2-rewrite.md | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/docs/superpowers/plans/2026-03-17-tauri-v2-rewrite.md b/docs/superpowers/plans/2026-03-17-tauri-v2-rewrite.md index bf6e87c..0c69431 100644 --- a/docs/superpowers/plans/2026-03-17-tauri-v2-rewrite.md +++ b/docs/superpowers/plans/2026-03-17-tauri-v2-rewrite.md @@ -288,9 +288,7 @@ npm install -D tailwindcss @tailwindcss/vite - [ ] **Step 2:** Write tests — encrypt/decrypt round-trip, wrong key fails, format compatibility with Go-generated blobs -- [ ] **Step 3:** **Critical test:** Encrypt a value with the Go version, decrypt it with the Rust version. This ensures the existing wraith.db can be opened by the new app. If formats differ, add a compatibility layer. - -- [ ] **Step 4:** Commit: `feat: vault encryption — Argon2id + AES-256-GCM` +- [ ] **Step 3:** Commit: `feat: vault encryption — Argon2id + AES-256-GCM` --- @@ -748,11 +746,9 @@ impl Drop for Session { ## Migration Notes -### Database Compatibility +### Database — Fresh Start -The SQLite schema is identical between Go and Rust versions. The Commander can copy `%APPDATA%\Wraith\wraith.db` from the Go version and the Rust version will read it — connections, credentials, host keys, settings, themes all carry over. - -**Critical:** The vault encryption format (`v1:{iv_hex}:{sealed_hex}`) must be byte-compatible between Go's `crypto/aes` + `crypto/cipher` and Rust's `aes-gcm` crate. Test this in Task 1.3 Step 3. +No database migration from the Go version. The Commander has 6 connections — faster to re-enter credentials than to engineer format compatibility. Fresh vault, fresh wraith.db. ### What Gets Deleted (Copilot/AI) @@ -783,6 +779,6 @@ The Go codebase has an AI copilot integration (8 files in `internal/ai/`). This | `russh` async complexity | Use `tokio` throughout; russh is well-documented with examples | | ironrdp maturity | Fallback to FreeRDP FFI if ironrdp can't deliver 1080p@30fps | | Tauri v2 multi-window edge cases | Spike tab detach early in Phase 5; fall back to floating panels | -| Vault encryption compatibility | Test Go↔Rust encryption in Phase 1 before building anything else | +| Vault encryption | Fresh vault — no Go compatibility needed. 6 credentials re-entered by hand. | | Windows code signing in Tauri | Same jsign + Azure Key Vault approach; Tauri bundler produces .exe | | Cross-platform SSH crate differences | russh is pure Rust, no platform-specific code; test on Windows early |