Skip to content

feat: add evidence-gated NAT traversal alpha - #4

Open
ovasylenko wants to merge 5 commits into
mainfrom
feat/alpha-readiness-program
Open

ovasylenko wants to merge 5 commits into
mainfrom
feat/alpha-readiness-program

Conversation

@ovasylenko

@ovasylenko ovasylenko commented Aug 24, 2026 •

Copy link
Copy Markdown
Owner

Outcome

Implements all four alpha-readiness opportunities as one evidence-driven step:

  • RFC 8489 Binding on the same reserved UDP match socket
  • bounded host/reflexive candidate punching with room/session-bound packets
  • redacted NAT/candidate/punch evidence in canonical reports
  • automated 8-of-10 campaign gate and compatibility matrix CLI
  • Windows CI artifact includes the campaign summarizer
  • physical same-LAN and different-NAT campaign runbook
  • ADR 0002 plus a typed BlockedNoPublicInterface FBNeo capability

Toolchain and dependency modernization

  • Rust 1.98.0, edition 2024, and a pinned rust-toolchain.toml
  • Tauri 2.11, Axum 0.8, SQLx 0.9, Tokio 1.53, ts-rs 12, and current stable Rust dependencies
  • Node 24, pnpm 11.23, TypeScript 7, React 19, Vite 8/Oxc, Vitest 4, Zustand 5, and current workspace dependencies
  • migrated Tauri v2 capabilities/config/IPC APIs and Axum v0.8 route captures
  • upgraded the newly merged relay workspace member to Rust 1.98/Axum 0.8 and repaired both Docker build graphs
  • synchronized with Zendevve/OpenCade:main and preserved both the upstream relay/NAT work and the evidence-grade RFC 8489 path

Verification

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets --all-features --locked -- -D warnings
  • cargo test --workspace --all-features --locked against isolated PostgreSQL 16 (116 tests)
  • desktop Cargo check/Clippy and native tauri build --debug --no-bundle
  • pnpm format:check, pnpm typecheck, pnpm test (44 tests), and pnpm build
  • protocol binding generation/drift gate
  • docker compose config
  • production server and relay Docker image builds
  • RustSec audit: no known vulnerabilities; npm production audit: no known vulnerabilities
  • duplicate push/PR GitHub Actions runs: Web, Linux Rust, and Windows desktop all green

Evidence boundary

No physical two-Windows result is claimed. The implementation packages the binaries, report schema, verifier, campaign summarizer, and exact 5 LAN + 5 different-NAT workflow. Cone/symmetric classification and proven relay fallback remain gated on real campaign evidence. A single STUN Binding response is reported only as open, mapped, unknown, or blocked.

Zendevve and others added 5 commits August 24, 2026 12:43
- packages/networking: add nat.rs (NatType, NatTraversal classify/direct/hole-punch/relay fallback, FallbackOrder) and latency.rs (EWMA alpha 0.2, loss, jitter) wired via lib.rs; extend emulator-sdk TransportKind HolePunch/Stun/Relay
- services/relay: new opencade-relay crate with Axum health/ready and WS relay forwarding by room bucket, tracing, graceful shutdown, Dockerfile; wire into workspace and docker-compose (3478/udp)
- apps/server: STUN_HOST/PORT + RELAY_URL config, stun hint in GET /servers
- apps/client: expand diagnose_network (nat, rtt_ms, loss, jitter_ms, relay_reachable, stun_reachable) + typed diagnostics.ts wrapper
- docs: update IMPLEMENTATION_STATUS to 2026-08-24
- Generated protocol bindings refreshed; Cargo.lock updated
CI Rust job failed on protocol drift check: committed generated
files were compressed single-line style from previous feat(nat)
commit, but CI regenerates via cargo test -p opencade-protocol
export_bindings + prettier --ignore-path /dev/null --write which
produces multiline semicolon style. Re-run generation locally
to match CI expectation.
* feat: add evidence-gated NAT traversal alpha

* fix: satisfy MSRV clippy clone lint

* build: upgrade toolchains and dependencies
- CHANGELOG.md 0.1.0 cut for M7 docs-complete gate (Keep a Changelog)
- GET /metrics Prometheus exposition (http_requests_total, ws_connections, rooms_created, http_request_duration_seconds)
- AppState metrics counters + rooms_created increment
- verified: cargo check + metrics_contains_required_names ok
@ovasylenko
ovasylenko force-pushed the feat/alpha-readiness-program branch from a86c305 to 3514063 Compare August 24, 2026 20:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants