docs(checkpoint): sync to e02417b - Amber-side silence, damus rejoins pairing set (2026-09-23)

This commit is contained in:
Avi 2026-09-23 13:57:53 -05:00
commit fb149763d5

View file

@ -1,3 +1,67 @@
# Checkpoint — Amber-side silence proven; damus rejoins pairing set (2026-09-23 PM)
## Where things are
- Project: `/home/avi/Projects/Keynctr`
- Branch: `master` @ **`e02417b`** ("fix(pairing): offer relay.damus.io
first"). Previous: `5456835` (checkpoint), `8f055f7` (NIP-46 spec fix).
- Working tree: clean for tracked files. Untracked intentionally NOT
committed: `COSMIC_THEME.md`, `KeynectrAppIconPossibility02.jpeg`,
`deferred/` (stays deferred).
- Release binary: **rebuilt at `e02417b`** — Electron spawns this one.
IMPORTANT: the running Electron/backend (started 10:06) predates every fix
— quit fully and relaunch before any live test.
## What was completed this session
1. **Stale-binary trap found**: the user's live scans ran against a backend
started 10:06, before the 13:01 rebuild. Documented the full-quit +
relaunch procedure (`pkill`, port-5173 conflict fix).
2. **Live scan on the NEW binary (`8f055f7`) analyzed end to end**: the
`[NIP46]` trace is perfect through secret validation, but `get_public_key`
(accepted by both relays, 4 attempts) gets zero responses and the demux
subscription logs zero inbound — nothing is dropped, nothing arrives.
3. **Fetched our own request event off relay.primal.net**: author, `p`-tag,
kind all textbook-correct. Unauthenticated REQ works on all four relays
(no NIP-42 gate). Ephemeral retention is short (<~20 min), so both sides
must be live-subscribed — late joiners get nothing.
4. **Read Amber's own signer source** (`BunkerRequestUtils.kt`, master):
fresh localKey per approval, URI relays honored for nostrconnect://,
listen-REQ-before-response, auto-approve `get_public_key`. Our wire
behavior matches it — with current Amber the halves should meet.
5. **Amber 6.6.5 (current) forensics**: app entry correct (primal+nos.lol),
activity log shows ONLY the Connect ack — Amber never receives our RPC.
Battery already unrestricted.
6. **Relay experiment (`e02417b`)**: Amber's issue history documents NIP-46
working over `relay.damus.io`; same-day write-canary from this network
shows damus connected + accepting ephemeral 24133. Pairing set is now
damus → primal → nos.lol (damus first).
- Verification (all green at `e02417b`): `cargo test` **211 unit + 4 e2e
passed / 0 failed**, `cargo clippy --all-targets` 0 warnings,
`cargo fmt --check` clean, `cargo build --release` green. Frontend
untouched (suite last green at `8f055f7`: 119 tests, typecheck, lint,
format, electron:build, build).
## Commits added (newest first)
- `e02417b` fix(pairing): offer relay.damus.io first
## How to resume / reproduce
- **Quit Electron fully first** (`pkill -f "electron ."` → `pgrep` shows
nothing), relaunch vite + Electron (release binary is current at
`e02417b`), verify backend start time is NOW, then Signer Mode → Show QR
(QR now lists damus/primal/nos.lol) → scan in Amber → approve with Amber
foregrounded. Expect `[NIP46] ... UI connection state updated: Connected`.
- If Amber still shows only the Connect ack, its phone-side relay path is
the remaining suspect — report which relays Amber's entry lists and any
new activity lines.
## Outstanding / next steps
1. **Live re-scan against `e02417b`** (decisive; needs app restart first).
2. If damus doesn't help, consider pruning to fewer relays (force both ends
onto one) or capturing Amber's in-app relay/connection log.
3. `publish_profile_metadata` kind-0 via `Signing` (P2), KDF upgrade (Step
5), rename pass (Step 7) — unchanged.
---
# Checkpoint — NIP-46 handshake debugged: connect-params spec fix + full [NIP46] trace + visible errors (2026-09-23)
## Where things are