pablof7z / pablof7z/nampplets

[M4] Build the surface SDK, reference harness, and shared fault-injection corpus

Open
#39 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: compatibility area: developer experience area: security area: surface bdd: required enhancement milestone: M4 priority: high
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/nmp is 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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.