docs(checkpoint): e2e flake killed at a6a4e6f (2026-09-24 evening)
This commit is contained in:
parent
a6a4e6f485
commit
224df38598
1 changed files with 54 additions and 6 deletions
|
|
@ -1,15 +1,63 @@
|
||||||
# Checkpoint — NIP-46 session restore on startup (2026-09-24)
|
# Checkpoint — e2e flake killed (2026-09-24 evening)
|
||||||
|
|
||||||
## Where things are
|
## Where things are
|
||||||
- Project: `/home/avi/Projects/Keynctr`
|
- Project: `/home/avi/Projects/Keynctr`
|
||||||
- Branch: `master` @ **`0982dad`** ("feat(nip46): restore saved signer
|
- Branch: `master` @ **`a6a4e6f`** ("test(nip46): kill the e2e flake —
|
||||||
sessions on startup/unlock — no fresh scan"). Previous: `73bf17c`
|
local relay for strict kind-0, poison-tolerant vault lock"). Previous:
|
||||||
(checkpoint), `f53bc56` (sign timeout leash).
|
`0982dad` (session restore), `73bf17c` (prior checkpoint).
|
||||||
- Working tree: clean for tracked files. Untracked intentionally NOT
|
- Working tree: clean for tracked files. Untracked intentionally NOT
|
||||||
committed: `COSMIC_THEME.md`, `KeynectrAppIconPossibility02.jpeg`,
|
committed: `COSMIC_THEME.md`, `KeynectrAppIconPossibility02.jpeg`,
|
||||||
`deferred/` (stays deferred).
|
`deferred/` (stays deferred).
|
||||||
- Release binary: **rebuilt at `0982dad`**. Frontend untouched — no
|
- Release binary: **rebuilt at `a6a4e6f`** (test-only commit; same code
|
||||||
renderer rebuild needed. Restart Electron before retesting.
|
as `0982dad` for the app itself). Restart Electron before retesting.
|
||||||
|
|
||||||
|
## What was completed this session
|
||||||
|
1. **Root-caused and killed the intermittent e2e failure** that showed
|
||||||
|
up as 3–5 simultaneous test failures roughly 1 run in 4:
|
||||||
|
- REAL flake: `nip46_bunker_connect_params_match_spec_against_strict_amber`
|
||||||
|
published its kind-0 through the DEFAULT relay set — the real
|
||||||
|
internet (damus + the known-hanging nostr.band) — so "at least one
|
||||||
|
relay must accept the signed kind-0" was a network lottery against
|
||||||
|
the 6s send timeout. The test now pins settings to the in-process
|
||||||
|
relay like the QR test always did. Suite has zero network
|
||||||
|
dependency now.
|
||||||
|
- CASCADE amplifier: a panic while holding the test-only
|
||||||
|
`VAULT_ENV_LOCK` poisoned the mutex, so every later test died on
|
||||||
|
`PoisonError`. All four lock sites are now poison-tolerant
|
||||||
|
(`unwrap_or_else(into_inner)`) — a real failure reports as ONE.
|
||||||
|
- Verification (all green at `a6a4e6f`): **10/10 consecutive green
|
||||||
|
e2e runs** (was ~1 in 4 failing), runtime now uniform ~21.5s (was
|
||||||
|
bimodal — long tail was network waiting). `cargo test` 216 unit + 5
|
||||||
|
e2e passed, `cargo clippy --all-targets` 0 warnings, `cargo fmt
|
||||||
|
--check` clean, `cargo build --release` green. Frontend untouched.
|
||||||
|
|
||||||
|
## Commits added (newest first)
|
||||||
|
- `a6a4e6f` test(nip46): kill the e2e flake — local relay for strict kind-0, poison-tolerant vault lock
|
||||||
|
|
||||||
|
## How to resume / reproduce
|
||||||
|
- Restart Electron (new release binary). With the vault already
|
||||||
|
unlocked/unencrypted, the backend logs `[NIP46] restoring session:
|
||||||
|
peer=... as npub1...` then `identity check on restored session:
|
||||||
|
PASS` and the profile goes Connected without showing Amber a new
|
||||||
|
scan. CLI trace: `~/Tools/keynctr-debug/` logs.
|
||||||
|
- Flake regression check: `for i in 1..10; do cargo test --test
|
||||||
|
nip46_e2e; done` — all runs must pass in ~21–22s.
|
||||||
|
- Then do the still-pending live proof: Publish name / publish a note
|
||||||
|
and approve in Amber within 2 minutes (120s leash from `f53bc56`).
|
||||||
|
|
||||||
|
## Outstanding / next steps
|
||||||
|
1. **Live sign/publish through real Amber** (covers the 120s leash and
|
||||||
|
the restored session in one shot).
|
||||||
|
2. Prune the 11 stale profileless `nip46_connections` rows (cosmetic;
|
||||||
|
restore already skips them).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Checkpoint — NIP-46 session restore on startup (2026-09-24)
|
||||||
|
|
||||||
|
## Where things are
|
||||||
|
- Branch `master` @ `0982dad`; see git for hashes. Details below are
|
||||||
|
as written when `0982dad` was HEAD.
|
||||||
|
|
||||||
## What was completed this session
|
## What was completed this session
|
||||||
1. **Session restore without a fresh scan (`0982dad`)**: the WIP from
|
1. **Session restore without a fresh scan (`0982dad`)**: the WIP from
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue