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
|
||||
- Project: `/home/avi/Projects/Keynctr`
|
||||
- Branch: `master` @ **`0982dad`** ("feat(nip46): restore saved signer
|
||||
sessions on startup/unlock — no fresh scan"). Previous: `73bf17c`
|
||||
(checkpoint), `f53bc56` (sign timeout leash).
|
||||
- Branch: `master` @ **`a6a4e6f`** ("test(nip46): kill the e2e flake —
|
||||
local relay for strict kind-0, poison-tolerant vault lock"). Previous:
|
||||
`0982dad` (session restore), `73bf17c` (prior checkpoint).
|
||||
- Working tree: clean for tracked files. Untracked intentionally NOT
|
||||
committed: `COSMIC_THEME.md`, `KeynectrAppIconPossibility02.jpeg`,
|
||||
`deferred/` (stays deferred).
|
||||
- Release binary: **rebuilt at `0982dad`**. Frontend untouched — no
|
||||
renderer rebuild needed. Restart Electron before retesting.
|
||||
- Release binary: **rebuilt at `a6a4e6f`** (test-only commit; same code
|
||||
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
|
||||
1. **Session restore without a fresh scan (`0982dad`)**: the WIP from
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue