v0.0.5 - Add CLIENT_IMPLEMENTATION.md agent integration spec
This commit is contained in:
@@ -105,7 +105,7 @@ Steps:
|
||||
- `int socket_name_random(char *out, size_t out_len);`
|
||||
- Calls `getrandom(2)` for 3 bytes (24 bits), splits into two 11-bit indices, looks up words from the BIP-39 English wordlist, formats `nsigner_<w1>_<w2>`.
|
||||
- BIP-39 English wordlist
|
||||
- Reuse the wordlist already linked via `nostr_core_lib` if exposed; otherwise vendor `src/bip39_english.c` as a 2048-entry `const char *[]`.
|
||||
- Use the wordlist exposed by `nostr_core_lib` (no vendored `bip39_english.c` in this repo).
|
||||
- `src/server.c` bind logic
|
||||
- Accept the resolved name from caller.
|
||||
- Bind once. On `EADDRINUSE` and no `--socket-name` override, regenerate a fresh random name and retry up to 8 times. With override, fail immediately and report the override conflict.
|
||||
@@ -140,7 +140,7 @@ Privacy/UX notes:
|
||||
|
||||
1. Multiple `nsigner` instances can run concurrently on one host.
|
||||
2. Default socket name is `@nsigner_<bip39_word1>_<bip39_word2>` chosen randomly at each launch.
|
||||
3. `--socket-name <name>` overrides the random pick for tests and scripted usage.
|
||||
3. `--socket-name <name>` overrides the random pick for tests and scripted usage (aliases: `--name`, `-n`).
|
||||
4. `nsigner list` enumerates running signers via `/proc/net/unix` filtered on `nsigner_` prefix.
|
||||
5. Random naming was chosen over deterministic-from-mnemonic for v1 to avoid leaking any seed-derived identifier in the abstract namespace; deterministic naming may be revisited later.
|
||||
|
||||
@@ -163,18 +163,14 @@ Privacy/UX notes:
|
||||
|
||||
## 5. Open questions
|
||||
|
||||
- Automated test strategy for interactive TUI (stdin pipe? expect-style? separate test mode flag?)
|
||||
- ESP32 transport shim interface definition
|
||||
- NIP-46 relay transport integration timeline
|
||||
- Role enrollment UX: how many questions at startup vs. "just use main = index 0"?
|
||||
- Lock-without-exit: needed? Or is quit-and-relaunch sufficient?
|
||||
- ESP32 transport shim interface definition and frame format details.
|
||||
- NIP-46 relay transport integration timeline.
|
||||
- Role enrollment UX depth at startup vs. minimal defaults.
|
||||
- Optional policy granularity beyond same-uid + interactive prompt (e.g. per-verb/per-role session rules).
|
||||
|
||||
## 6. Immediate next work
|
||||
|
||||
- Execute Phase A (cleanup)
|
||||
- Execute Phase B (server module)
|
||||
- Execute Phase C (unified main)
|
||||
- Execute Phase D (policy simplification)
|
||||
- Execute Phase E (integration test)
|
||||
- Execute Phase G2 (mnemonic generation at startup)
|
||||
- Execute Phase H (multi-instance random naming + `list` subcommand)
|
||||
- Add regression tests for prompt-overlay behavior and running-phase hotkeys.
|
||||
- Expand integration coverage for NIP-04/NIP-44 edge cases and negative-path errors.
|
||||
- Document and test static artifact size budgets across targets.
|
||||
- Define MCU transport adapter contract to prepare desktop/firmware parity.
|
||||
|
||||
Reference in New Issue
Block a user