docs(checkpoint): profile-relay queries @ aef47dd

This commit is contained in:
Avi 2026-09-30 14:19:54 -05:00
commit ec8b515d05

View file

@ -1,3 +1,70 @@
# Checkpoint — profile-relay queries for contacts + metadata backfill (2026-09-30)
## Where things are
- Project: `/home/avi/Projects/Keynctr`, branch `master` @ **`aef47dd`**
("fix(feed): query profile relays for kind-3 follow lists and kind-0
metadata"). Previous: `eea6f0e` (white monochrome launcher icon),
`abc2781` (one-click update script), `7891ccc` (Step 7 rename/hygiene,
checkpoint `33ab4fe`).
- Working tree: clean for tracked files. Untracked intentionally NOT
committed: `COSMIC_THEME.md`, `KeynectrAppIconPossibility02.jpeg`,
`deferred/SignerConnectionPanel.tsx.wip/`.
- Release binary rebuilt at `aef47dd` 2026-09-30 14:18 (verified by mtime
after `touch`ing the changed sources — not a cache hit).
## What was completed
**Profile-relay lookup for profile-scoped data** (finishes the empty
"My contacts" diagnosis on the network side): kind-3 follow lists and
kind-0 metadata usually live on profile/outbox relays — purplepag.es
aggregates them network-wide — not on the user's note read relays. Now:
1. `feed.rs`: `PROFILE_RELAYS = ["wss://purplepag.es"]` plus
`profile_lookup_relays(settings)` = enabled relays + profile relays,
de-duplicated with trailing-slash normalising (a user entry
`wss://purplepag.es/` no longer doubles the always-on entry — the WIP
version of this failed its own test; rewritten via a HashSet seen-set).
`contact_pubkeys` (kind-3 fetch) now queries that set; notes queries
deliberately keep using only enabled relays.
2. `ipc.rs` backfill loop: kind-0 fetch also uses `profile_lookup_relays`,
and the candidate filter dropped the `SignerMode::Nip46Client`
restriction — any row still wearing a placeholder gets a real name,
local keys included.
3. `profiles.rs`: `GENERIC_PAIRING_LABELS` now includes "My Profile"
(`normalise_label`'s empty-input default), so locally created
placeholder rows are backfilled too. Test updated: user renames still
never overwritten.
## Commits added this session (newest first)
- `aef47dd` fix(feed): query profile relays for kind-3 follow lists and
kind-0 metadata (includes the fmt fix + dedupe rewrite of the WIP)
- (this checkpoint commit)
## Verification
- `cargo test` -> 225 unit + 6 e2e passed, 0 failed.
- `cargo clippy --all-targets` -> 0 warnings. `cargo fmt --check` -> clean.
- `cargo build --release` -> rebuilt at aef47dd (binary mtime 14:18).
- No frontend files touched -> frontend gates not applicable.
## How to resume / reproduce
- CLI ground truth for the contacts fix:
`target/release/keynectr feed --contacts 20` with the active key that
has a follow list published anywhere on the network — rows should now
appear even when purplepag.es is not in the user's read relays.
- GUI: `cd ~/Projects/Keynctr/frontend && npx vite --port 5173` then
`NOSTR_GUI_DEV_URL=http://localhost:5173 KEYNCTR_ENABLE_GPU=1 npx electron .`
(running windows need a relaunch/rebuild to pick up the new backend).
- Backfill trace: `grep -a 'auto-name' ~/Tools/keynctr-debug/pairing-trace.log`.
## Outstanding / next steps
- Live pass: reopen "My contacts" in the GUI with the rebuilt backend and
confirm the feed populates for the account that has follow lists on
profile relays.
- Step 4 permissions UI follow-ups (interactive grant editing in the
approval modal) — the only buildable step left from the plan.
- Live pass: KDF migration on a real unlock + second-Amber account
switching.
---
# Checkpoint — stdin EAGAIN fix, accent theme, identity backfill (2026-09-28 evening) # Checkpoint — stdin EAGAIN fix, accent theme, identity backfill (2026-09-28 evening)
## Where things are ## Where things are