docs(checkpoint): kind-0 via signer at 6f4dbb2 (2026-09-23)

This commit is contained in:
Avi 2026-09-23 15:30:49 -05:00
commit cd8b6711a4

View file

@ -1,3 +1,58 @@
# Checkpoint — kind-0 publishes through Amber; name goes network-wide (2026-09-23 PM)
## Where things are
- Project: `/home/avi/Projects/Keynctr`
- Branch: `master` @ **`6f4dbb2`** ("feat(nip46): publish kind-0 metadata
through the connected signer"). Previous: `327bf0f` (checkpoint),
`3d1c306` (silent poll).
- Working tree: clean for tracked files. Untracked intentionally NOT
committed: `COSMIC_THEME.md`, `KeynectrAppIconPossibility02.jpeg`,
`deferred/` (stays deferred).
- Release binary: **rebuilt at `6f4dbb2`**. Renderer rebuilt via
`npm run build`. Restart Electron before retesting.
## What was completed this session
1. **Closed the P2 kind-0 gap (`6f4dbb2`)**: the "Publish name" IPC path
now routes through the profile's `Signing` source (same pattern as
note publishing). Embedded profiles sign locally as before; a paired
profile's kind-0 (label/picture/nip05) is signed by the remote signer —
Amber shows an approval prompt — so the name becomes visible in every
Nostr client. Disconnected sessions fail closed, never with a local
fallback. CLI keeps the local-only path (no signer instances there).
2. **E2E proof**: the strict-Amber test now also publishes kind-0 through
`App::signing_for` + `publish_metadata_signed` and asserts relay
acceptance — the exact GUI path, with identity validation. Along the way
fixed the test's production wiring (handle registered on `App`, as
`ensure_nip46_signer` does) after a `None`-handle failure poisoned the
shared env lock and cascaded to all 4 e2e tests.
3. Rename modal copy now points remote profiles at "Publish name" (Amber
approval) instead of claiming the signer app publishes it.
- Verification (all green at `6f4dbb2`): `cargo test` **212 unit + 4 e2e
passed / 0 failed**, `cargo clippy --all-targets` 0 warnings,
`cargo fmt --check` clean, `cargo build --release` green; frontend
`npm test` **120 passed**, `typecheck`, `lint`, `format:check`,
`electron:build`, `build` clean.
## Commits added (newest first)
- `6f4dbb2` feat(nip46): publish kind-0 metadata through the connected
signer
## How to resume / reproduce
- Restart Electron → Profiles → **Publish name** on the paired profile →
approve the `sign_event` (kind 0) prompt in Amber → per-relay report.
Check any Nostr client: the display name (your vault label) now appears
instead of the bare npub.
- E2E: `cargo test --test nip46_e2e` (4 tests incl. kind-0-via-signer).
## Outstanding / next steps
1. **Live "Publish name" through real Amber** (e2e-proven, never live-run).
2. **NIP-46 session restore on startup** (re-scan needed after restarts).
3. Prune the 11 stale profileless `nip46_connections` rows (cosmetic).
4. Remote picture/nip05 edits, KDF upgrade (Step 5), rename pass
(Step 7) — unchanged.
---
# Checkpoint — silent state poll + session-restore gap named (2026-09-23 PM)
## Where things are