Checkpoint: DRY relay fan-out
This commit is contained in:
parent
1c428a9ff2
commit
40ec9a0dfa
1 changed files with 54 additions and 1 deletions
|
|
@ -1,4 +1,57 @@
|
||||||
# Checkpoint — NIP-46 signer handshake fix (2026-08-24)
|
# Checkpoint — DRY relay fan-out (2026-08-24)
|
||||||
|
|
||||||
|
A stopping point you can return to if this session is closed. Everything below was
|
||||||
|
verified green at the moment this file was written.
|
||||||
|
|
||||||
|
## Where things are
|
||||||
|
|
||||||
|
- Project: `/home/avi/Projects/Nostr_Keynctr`
|
||||||
|
- Git repo: `master` @ `1c428a9` ("DRY: single parallel relay fan-out for notes
|
||||||
|
and metadata"). Before it: `64ad94d` (NIP-46 handshake fix), `b21678f`/
|
||||||
|
`ae84526` (checkpoints), `dd50b24` (Aurora rename).
|
||||||
|
- Working tree: clean apart from this checkpoint update. `concept3.svg` deleted
|
||||||
|
and `KeynectrAppIconPossibility02.jpeg` untracked remain as the user had them.
|
||||||
|
|
||||||
|
## What was completed
|
||||||
|
|
||||||
|
1. **R1 DRY refactor (`1c428a9`).** The parallel relay send block (~55 lines:
|
||||||
|
JoinSet per-relay sends, 6 s timeout, indexed outcome collection,
|
||||||
|
disconnect, succeeded/failed split) existed twice — in
|
||||||
|
`publish.rs::publish_with_keys` and `profiles.rs::publish_metadata_async`.
|
||||||
|
Now one `pub(crate) publish::send_to_all_relays(client, urls, event, noun)`
|
||||||
|
serves both; callers keep their distinct add-relay policies (note path
|
||||||
|
aborts on add errors, metadata ignores them) so behavior, error strings,
|
||||||
|
and public APIs are unchanged. Removed duplicate constant
|
||||||
|
`METADATA_SEND_TIMEOUT`, dead helper `failure_for`. Net −49 lines.
|
||||||
|
2. Deliberately NOT done (pending approval): R2 shared client-bootstrap
|
||||||
|
helper, R3 modal save-lifecycle hook (frontend), R4 shortHex/shortenNpub.
|
||||||
|
|
||||||
|
## Commits added most recently
|
||||||
|
|
||||||
|
- `1c428a9` DRY: single parallel relay fan-out for notes and metadata
|
||||||
|
|
||||||
|
## Verification commands run (all green)
|
||||||
|
|
||||||
|
Rust: cargo fmt --check clean; clippy only pre-existing profiles.rs warnings;
|
||||||
|
cargo test 113 passed; release binary rebuilt.
|
||||||
|
Frontend (untouched, suite rerun): npm test 92 passed; typecheck, lint,
|
||||||
|
format:check, electron:build, vite build all clean.
|
||||||
|
|
||||||
|
## How to use / reproduce
|
||||||
|
|
||||||
|
No user-facing change; note and metadata publishing behave exactly as before.
|
||||||
|
Any future change to relay-send policy now happens in one place:
|
||||||
|
`send_to_all_relays` in `src/publish.rs`.
|
||||||
|
|
||||||
|
## Notes & next steps
|
||||||
|
|
||||||
|
- R2–R4 from the DRY audit remain unimplemented by request.
|
||||||
|
- Relay health today: nos.lol 502, nostr.wine 403, nostr.l484.com needs
|
||||||
|
NIP-42 auth, nostr.band unreachable; primal/mom/soloco healthy.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Older checkpoint — NIP-46 signer handshake fix (2026-08-24)
|
||||||
|
|
||||||
A stopping point you can return to if this session is closed. Everything below was
|
A stopping point you can return to if this session is closed. Everything below was
|
||||||
verified green at the moment this file was written.
|
verified green at the moment this file was written.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue