diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..ff38f8b --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,37 @@ +# Changelog + +## v0.2.0 — 2026-04-27 + +### Fixed + +- **Setup wizard could silently overwrite an existing vault.** Pointing the + wizard at a remote that already contained a relicario vault would clobber + `manifest.enc`, `.relicario/salt`, and friends with no warning. The wizard + now probes the remote after the connection test and refuses to create a + new vault on top of an existing one. Affected users whose vault was wiped + by this bug should restore from the git history of the affected repo + (`git log` + `git checkout -- .`). +- **New devices registered during initial setup were silently dropped.** The + wizard's Step 5 fired `add_device` over a service-worker channel that + required an unlocked vault, which is unavailable mid-wizard. Device pubkeys + now write directly to `.relicario/devices.json` from the wizard. +- **Wizard-created vaults were missing `settings.enc`.** The CLI's `init` + writes a default-`VaultSettings` `settings.enc` alongside `manifest.enc`, + but the wizard skipped it, causing every `get_vault_settings` SW call to + 404. The wizard now encrypts and writes `settings.enc` using a new + `default_vault_settings_json` WASM helper that keeps defaults in sync + with Rust core. + +### Added + +- **Attach this device to an existing vault — purely from the GUI.** New + Step 0 mode picker splits the wizard into "create new vault" and "attach + this device." The attach path takes a passphrase + reference image, fetches + the existing manifest, verifies the credentials by decrypting it, and only + then registers a new device key. No CLI required for multi-device setup. +- `GitHost.lastCommit(path)` and `GitHost.writeFileCreateOnly(path, ...)`. +- `default_vault_settings_json()` WASM export. + +## v0.1.0 — 2026-04-22 + +Initial release. diff --git a/Cargo.lock b/Cargo.lock index 2bf3280..a0ddfc0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1511,7 +1511,7 @@ checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "relicario-cli" -version = "0.1.0" +version = "0.2.0" dependencies = [ "anyhow", "arboard", @@ -1536,7 +1536,7 @@ dependencies = [ [[package]] name = "relicario-core" -version = "0.1.0" +version = "0.2.0" dependencies = [ "argon2", "bip39", @@ -1561,7 +1561,7 @@ dependencies = [ [[package]] name = "relicario-wasm" -version = "0.1.0" +version = "0.2.0" dependencies = [ "base64", "ed25519-dalek", diff --git a/crates/relicario-cli/Cargo.toml b/crates/relicario-cli/Cargo.toml index 1cb4766..933cd50 100644 --- a/crates/relicario-cli/Cargo.toml +++ b/crates/relicario-cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "relicario-cli" -version = "0.1.0" +version = "0.2.0" edition = "2021" description = "CLI for relicario password manager" diff --git a/crates/relicario-core/Cargo.toml b/crates/relicario-core/Cargo.toml index 37bbd26..81b68dd 100644 --- a/crates/relicario-core/Cargo.toml +++ b/crates/relicario-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "relicario-core" -version = "0.1.0" +version = "0.2.0" edition = "2021" description = "Core library for relicario password manager" diff --git a/crates/relicario-wasm/Cargo.toml b/crates/relicario-wasm/Cargo.toml index 9489329..dada56b 100644 --- a/crates/relicario-wasm/Cargo.toml +++ b/crates/relicario-wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "relicario-wasm" -version = "0.1.0" +version = "0.2.0" edition = "2021" description = "WASM bindings for relicario password manager" diff --git a/extension/manifest.json b/extension/manifest.json index f9b8da8..dbfe28c 100644 --- a/extension/manifest.json +++ b/extension/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "relicario", - "version": "0.1.0", + "version": "0.2.0", "description": "Two-factor encrypted password manager", "icons": { "16": "icons/icon-16.png", diff --git a/extension/package.json b/extension/package.json index c702388..3c9a132 100644 --- a/extension/package.json +++ b/extension/package.json @@ -1,6 +1,6 @@ { "name": "relicario-extension", - "version": "0.1.0", + "version": "0.2.0", "private": true, "scripts": { "build": "webpack --mode production",