docs: drop vault compatibility — fresh start with 6 credentials

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) <noreply@anthropic.com>
This commit is contained in:
Vantz Stockwell 2026-03-17 14:53:13 -04:00
parent 5de73dfabb
commit 110f489ace

View File

@ -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 |