docs(checkpoint): multi-account signer switching (park/switch/cancel) at c89b31a (2026-09-27)
This commit is contained in:
parent
c89b31aaf1
commit
98593cb170
1 changed files with 59 additions and 0 deletions
|
|
@ -1,3 +1,62 @@
|
||||||
|
# Checkpoint — multi-account signer switching (Option A) (2026-09-27 eve)
|
||||||
|
|
||||||
|
## Where things are
|
||||||
|
- Project: `/home/avi/Projects/Keynctr`, branch `master` @ **`c89b31a`**
|
||||||
|
("feat(nip46): pair a second signer account — park the live session,
|
||||||
|
switch re-dials it"). Previous: `1b4655c` (checkpoint), `332ab64`.
|
||||||
|
- Working tree: clean for tracked files. Untracked intentionally NOT
|
||||||
|
committed: `COSMIC_THEME.md`, `KeynectrAppIconPossibility02.jpeg`,
|
||||||
|
`deferred/`.
|
||||||
|
|
||||||
|
## What was completed (user-facing)
|
||||||
|
1. **You can now add a second Amber account.** Pairing a new signer while
|
||||||
|
one is connected no longer says "Already connected — disconnect
|
||||||
|
first": the current session is PARKED (kept restorable, never revoked)
|
||||||
|
and the new account pairs.
|
||||||
|
2. **Switching profiles switches signer accounts.** Click a profile in
|
||||||
|
Profiles: if it has a saved signer session, the live one is parked and
|
||||||
|
that profile's session is re-dialed automatically (no scan, identity
|
||||||
|
guard still enforced). Local-key profiles leave the signer alone.
|
||||||
|
3. **Cancel on the QR is safe.** Leaving the QR view cancels only the
|
||||||
|
pairing attempt and brings the parked session back (new
|
||||||
|
`nip46_cancel_pairing` IPC; the old path revoked).
|
||||||
|
- One session is live at a time (Amber signs one active account anyway);
|
||||||
|
all others stay saved and switchable.
|
||||||
|
|
||||||
|
## Commits added
|
||||||
|
- `c89b31a` feat(nip46): pair a second signer account — park the live session, switch re-dials it
|
||||||
|
|
||||||
|
## Verification (all green at c89b31a)
|
||||||
|
- Rust: `cargo test` 216 unit + 6 e2e (NEW: two fake Ambers on one relay —
|
||||||
|
B's pairing parks A unrevoked with client key intact; switch back
|
||||||
|
re-dials A and signs; no-op switch; local profile untouched; B
|
||||||
|
restorable). `cargo clippy --all-targets` 0 warnings; `cargo fmt --check`
|
||||||
|
clean; `cargo build --release` rebuilt (binary mtime Sep 27 21:00).
|
||||||
|
- Frontend: `npm test` 125 passed; `typecheck`, `lint`, `format:check`
|
||||||
|
clean; `npm run build` + `electron:build` green.
|
||||||
|
|
||||||
|
## Resume / reproduce
|
||||||
|
- GUI: relaunch the app (or restart the backend) to pick up the new
|
||||||
|
release binary. Profiles -> click another paired profile -> log shows
|
||||||
|
`restoring session` + `identity check on restored session: PASS`.
|
||||||
|
- Add account B: Create Profile -> Sign in with Amber -> switch to
|
||||||
|
account B IN AMBER -> scan. Account A stays restorable.
|
||||||
|
- e2e: `cargo test --test nip46_e2e` (6 tests, loopback relay only).
|
||||||
|
|
||||||
|
## Outstanding
|
||||||
|
- LIVE two-account eyeball by the user (pair account B from a second
|
||||||
|
Amber profile, switch back and forth) — e2e proves the mechanics, a
|
||||||
|
real-device pass confirms it end-to-end.
|
||||||
|
- Live "Check for updates" failure is an ENVIRONMENT issue, not a bug:
|
||||||
|
the updater shells out to `npm outdated`/`cargo update` in the source
|
||||||
|
tree; the spawned backend's PATH lacks npm/cargo (Electron-launched
|
||||||
|
process), so it errors. Fix options: bake a login-shell PATH into the
|
||||||
|
updater or surface a clearer message. Not started.
|
||||||
|
- Publish kind-0 to primal/damus (one Amber approval); Step 4
|
||||||
|
permissions UI; KDF upgrade (Step 5); rename pass (Step 7).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
# Checkpoint — forensics log cleaned + live publish confirmed (2026-09-26)
|
# Checkpoint — forensics log cleaned + live publish confirmed (2026-09-26)
|
||||||
|
|
||||||
## Where things are
|
## Where things are
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue