[M4] Build the surface SDK, reference harness, and shared fault-injection corpus
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 1
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Description
Spec
M4 issue 41; surface §§11.3-11.8 and test strategy.
Current evidence
No web/surface-sdk, surface fixture corpus, or cross-language reference harness exists.
Deliverables
JS/TS SDK for frozen v0; reference host; revision/resync/action/lifecycle helpers; deterministic Rust/JS/Apple fixtures; gap/oversize/delay/crash/spoof fault injection; authoring docs.
Acceptance
Same corpus passes Rust, Node and Apple; proves mount/ready/snapshot, gap/resync, slow convergence, action refusal/cancel, teardown, and no bridge/window.nostr/direct-network authority.
Dependencies
Surface contract/protocol, binding registry and surface actions.
Global constraints
- Exact pinned baseline; no dependency movement in this issue.
~/Work/nmpis read-only and the NMP public facade is the only integration boundary.- Add teardown/resource counters and independent adversarial review.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the Surface contract/protocol, binding registry, and surface actions, then confirm the exact pinned baseline and NMP public-facade boundary. The work should produce the JS/TS SDK, reference host, shared deterministic Rust/JS/Apple fixture corpus, and fault-injection coverage. Done means the corpus passes on Rust, Node, and Apple and covers the listed lifecycle, resync, refusal, teardown, and authority constraints.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, rust, typescript
- Domain
- developer-experience, testing, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100