14 Commits
Author SHA1 Message Date
Laan Tungir 2a9493b499 [release] v0.1.0 v0.1.0 2026-08-27 09:37:47 -04:00
Laan Tungir 75638c72b7 Renamed nsigner module to signer: unified naming, added native-tls to tokio-tungstenite, libc dep for signer transports 2026-08-27 09:37:34 -04:00
Laan Tungir 38eb721ae8 Fix relay pool zombie connections: reconnect logic, health monitoring, state sync
The relay pool had the same class of bugs as the C lib's relay pool
(fixed there in core_relay_pool.c), plus a few unique ones:

1. No reconnection at all. ReconnectConfig was defined and stored but
   never read — dead configuration. The run() event loop skipped
   non-connected relays forever; once a relay dropped, it never came
   back. Now run() attempts reconnection of any non-connected relay
   after exponential backoff (initial 1s, x2, max 60s, reset after 60s
   stable), honoring max_reconnect_attempts.

2. send_text()/ping() failures left the ws state as Connected (same
   bug as the C lib). A relay that dropped the TCP connection kept
   reporting Connected and every publish silently failed. Both now
   set state to Error on failure.

3. Error-state trap: subscribe() and publish_async() only auto-
   connected from Disconnected, but receive_text() sets Error on
   transport failure — so a relay that died mid-session was stuck
   permanently, even for publishing. Both now reconnect from any
   non-Connected state.

4. Stale RelayEntry.status: set to Disconnected in add_relay() and
   never updated again, so list_relays() reported Disconnected for
   relays connected for days. run() now syncs pool status from the
   live ws state each iteration.

5. No health monitoring: PING_INTERVAL_SECS was defined but unused,
   ping_latency stats never populated, half-open connections never
   probed. run() now sends pings on the configured interval, detects
   pong timeouts and ping-send failures, and force-closes dead
   transports so the reconnect path picks them up.

Tests: 5 new tests (backoff calculation with default and custom
configs, initial status, connect-failure Error state, entry defaults).
Full workspace suite passes: 210 tests, 0 failures.
2026-08-27 07:10:39 -04:00
Laan Tungir 7e88f8367f [release] v0.0.3 v0.0.3 2026-08-19 15:40:29 -04:00
Laan Tungir bd2e00c205 Added canonical BIP39 English wordlist reference and updated Cargo.lock 2026-08-19 15:40:18 -04:00
Laan Tungir bf1098c11a Fixed BIP39 wordlist in nip006: corrected 'exceed' to 'excess' and removed spurious 'foreign' entry; regenerated array from canonical bip39_english.txt 2026-08-19 15:39:47 -04:00
Laan Tungir 4b550cdf57 [release] v0.0.2 v0.0.2 2026-08-17 09:57:33 -04:00
Laan Tungir 20fbb4e4e7 Updated incomplete implementations audit: all previously-identified gaps are now fully implemented with no stubs or placeholders remaining 2026-08-17 09:57:27 -04:00
Laan Tungir d2425063e2 Update Cargo.lock for v0.0.1 2026-08-17 09:15:05 -04:00
Laan Tungir 821759917d [release] v0.0.1 v0.0.1 2026-08-17 09:13:36 -04:00
Laan Tungir 5d54ad8c68 Implement missing functionality and add versioning system
Fix 7 incomplete implementations found in the audit (plans/incomplete_implementations_audit.md):

- NIP-06 (CRITICAL): Full BIP-32 HD path derivation (m/44'/1237'/0'/0/0)
  with SLIP-0010 ed25519 variant. Restores C/Rust key compatibility.
  13 tests with official BIP-32 test vectors.
- NIP-03 (HIGH): Real OpenTimestamps verification - OTS binary parser,
  Merkle proof execution, Bitcoin attestation comparison. 10 tests.
- Validator (HIGH): All 8 AuthRuleType variants enforced (was 2/8).
  Added HashBlacklist, MimeWhitelist, MimeBlacklist, SizeLimit,
  RateLimit, Custom. 12 new tests.
- Nsigner: 3 new transports (Serial, FD-pair, Qubes qrexec) + algorithm
  verbs (ed25519, x25519, ML-DSA-65, ML-KEM-768, OTP). Fixed derive_hmac
  algorithm config and role_path propagation. 23 tests.
- Cashu: 5 new mint operations (melt quote, mint tokens, swap, check
  spent, restore keysets) with typed structs. 11 tests.
- Blossom: head_blob, file-path upload/download, BlossomSigner trait
  for remote signers. 5 tests.

Add versioning system: VERSION file, CHANGELOG.md, increment_and_push.sh
script for semantic version bumps with git tagging and pushing.

Total tests: 202 (was 143). Workspace version baseline set to 0.0.0.
2026-08-17 09:13:27 -04:00
Laan Tungir 7105bca16b Add README with NIP implementation status table 2026-08-13 12:50:04 -04:00
Laan Tungir 9349718762 Add .gitignore for Rust project (exclude target/, IDE files, OS files) 2026-08-13 12:45:49 -04:00
Laan Tungir 3800813b46 first 2026-08-13 12:42:40 -04:00