You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add the last two PRD §7.1 verbs as an account-profile flow (not the
Bitwarden personal API-key model, which stays a tracked follow-up).
register: records the account — server, lower-cased email, and a freshly
minted stable device_id — into a new [account] table in config.toml. No
agent or network; a light http(s):// check is the only validation, with
real errors surfacing at first login. Re-registering preserves the
existing device_id.
login: authenticates against the registered account (master password →
Request::Unlock) and ends on a status-backed sync summary ("logged in as
<email> · <n> items · synced <ts>", or --json). Auto-spawns the agent, so
a cold `vault login` brings everything up.
unlock: now resolves server/email from the profile too, so its flags
(and $VAULT_SERVER/$VAULT_EMAIL) are optional once registered. Precedence
is explicit flag/env → profile → error. login and unlock share one
Request::Unlock; the difference is resolution and login's verbose,
status-backed success.
Stable device id: Request::Unlock gains a serde-defaulted
device_id: Option<String>; the agent uses it as the Bitwarden
deviceIdentifier instead of minting a fresh UUID each unlock, so the
account stops accumulating a new device per session. Old Unlock frames
without the field still decode (regression-tested).
CLI-only beyond that one optional IPC field: no vault-api surface, no
agent auth split. New uuid dep on vault-cli (already in the workspace).
Tests: [account] round-trip + no-empty-table-until-set + device-id
mint/preserve + email lower-casing; resolve_account precedence
(flag → profile → error); Unlock device-id round-trip and
old-frame-decode regression. Verified live: register (lower-case +
mint), --json, non-http rejection, no-profile login error, and flag-less
unlock resolving from the profile.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments