3.0 KiB
OpenSpec Change: network-trystero-server
- Change ID: network-trystero-server
- Package:
@suaveplan/network-trystero-server - Category: server (Node-only)
- Target path:
packages/network/network-trystero-server - Status: PROPOSED
- Date: 2026-05-11
- Parent:
network-transport-family(2026-05-11) — Wave 5 - Migration source:
../suaveplan/packages/server/network-trystero-server+../suaveplan/enterprise/network-trystero-server.md
Summary
Migrate @suaveplan/network-trystero-server into genesis as a server-tier daemon. Hosts a Trystero serverless P2P signaling endpoint (MQTT broker or Nostr relay shim depending on configuration). Pairs with browser-tier @suaveplan/network-discovery-trystero (Wave 2) for the relay-backed transport modes.
Current-state audit
Upstream source layout (../suaveplan/packages/server/network-trystero-server/src/): see ../suaveplan/enterprise/network-trystero-server.md for full inventory.
Parity Checklist
| Capability | Upstream | Migrated | Notes |
|---|---|---|---|
| Server daemon (Node) | ✅ | ✅ | |
| Trystero signaling endpoint | ✅ | ✅ | |
| Configurable transport (mqtt / nostr) | ✅ | ✅ | |
| Relay-URL bootstrap | ✅ | ✅ | |
| Structured errors | 🚫 | ⬆️ | defineCodes registry. |
| Zod boundary validation | 🚫 | ⬆️ | Every public option struct. |
| OTel instrumentation | 🚫 | ⬆️ | Spans + counters + histograms. |
| AbortSignal | 🚫 | ⬆️ | Threaded everywhere. |
| Health / readiness / liveness | 🚫 | ⬆️ | Via @suaveplan/health-check once that lands; otherwise inline endpoints. |
export * barrels |
check | ⬆️ | Convert to explicit named exports per §6a. |
| Test-runner imports | direct vitest | ⬆️ | Rewrite to @suaveplan/testing/runner per §7. |
| 100% test coverage | 🚫 | ⬆️ | Bring to 100/100/100/100. |
| Integration tests | partial | ⬆️ | Use @suaveplan/testing-integration for real-process tests; no mocks. |
Available workspace deps on genesis
-
@suaveplan/network✅ -
@suaveplan/error,@suaveplan/types,@suaveplan/events,@suaveplan/logger,@suaveplan/retry,@suaveplan/timing✅ -
@suaveplan/testing+@suaveplan/testing-integration✅ -
External:
trystero, (optional) mosca/aedes for MQTT broker.
package.json declares "engines": { "node": ">=20" } and omits the browser field; server-tier marker comment in main entry point.
Acceptance gate
bunx turbo lint typecheck test --filter=@suaveplan/network-trystero-servergreen.bunx turbo test:coverage --filter=@suaveplan/network-trystero-server100/100/100/100.bun run docs:checkgreen.- Integration test boots the server in-process and exercises the client-server round trip.
STATUS.mdrow flipped.
Out of scope
- Production deployment infrastructure (Docker, k8s manifests, TLS termination) — deployment concern.
- Cross-cluster federation across multiple server instances.