diff --git a/README.md b/README.md index bb00927..23ea70a 100644 --- a/README.md +++ b/README.md @@ -50,9 +50,29 @@ system's on Windows (`GetLastInputInfo`) and macOS; on Linux it is activity insi and fills). Screen lock: Windows input-desktop check, Linux logind `LockedHint`, macOS session dictionary. Sleep: a jump in the wall clock between polls. +## Sync and onboarding (docs/03, docs/10) + +* **First start** offers four ways in: **Use my phone** (default: type the server URL, scan the QR on screen + with a signed-in phone, compare the 6-digit code, then type only the master password), **Emergency Kit** + (PDF, or a PNG/JPEG photo of its QR), **Paste setup code**, and **New account** (server URL + the server's + `KV_SETUP_CODE`). +* **Device key** (`device_key.rs`): Windows TPM via CNG, else a DPAPI-sealed software key; Linux Secret Service, + else a 0600 file (with a warning in Settings); macOS dev runs use the keychain. `KESTROVE_DEVICE_KEY=file` + forces the file store. +* **Sync** (`sync.rs`) runs after unlock, after a save, every 15 minutes while unlocked, and on "Sync now". + Lock drops all keys (core), cancels a scan-to-join and revokes an "Add a device" ticket still on screen. + An integrity alarm shows a hard alert and a banner; syncing that vault stops. +* **Settings → Devices**: approve pending devices (compare fingerprints), remove devices, **Add a phone or + tablet** (10-minute single-use QR; Done/Cancel revokes it) and **Approve a computer** (paste the join code a + new computer shows under "No phone?"). +* **Two instances on one machine**: `KESTROVE_DATA_DIR=/tmp/kv-b Kestrove.app/Contents/MacOS/kestrove-desktop` + (the second one has no browser integration). `KESTROVE_DEVICE_NAME` overrides the device name. +* **Live test**: `tests/live_sync.rs` (ignored) drives three instances against a running server; see its header. + ## Roadmap (M3, kestrove-spec/docs/07) - [ ] Unlock with Windows Hello (KeyCredentialManager, TPM) and libsecret on Linux -- [x] Persistent vault (`VaultCore::open` in app data); sync UI still to do +- [x] Persistent vault (`VaultCore::open` in app data) +- [x] Sync, device approval and scan-to-join onboarding - [x] Auto-lock on idle, screen lock and suspend - [x] Local IPC between `kestrove-nmh` and the app, plus the pairing AEAD channel - [x] Native-messaging manifest installers (`native-messaging/install.sh`, `install.ps1`) diff --git a/index.html b/index.html index 54ba9c1..6720207 100644 --- a/index.html +++ b/index.html @@ -9,6 +9,7 @@
+