Skip to content

feat(alpha): complete proof-of-play readiness program - #6

Merged
Zendevve merged 1 commit into
Zendevve:mainfrom
ovasylenko:feat/alpha-readiness-program
Aug 25, 2026
Merged

Zendevve merged 1 commit into
Zendevve:mainfrom
ovasylenko:feat/alpha-readiness-program

Conversation

@ovasylenko

Copy link
Copy Markdown
Contributor

Summary

  • add the user-supplied RetroArch plus FBNeo-core native-process adapter with safe argument construction and compatibility fingerprints
  • add direct UDP, STUN, hole punching, authenticated relay readiness, campaign aggregation, and privacy-minimized success and failure evidence
  • make room lifecycle authoritative: exactly two players, server-derived one-use launch grants, per-participant native launch and exit records, and process-backed PLAYING and FINISHED transitions
  • supervise emulator children in Tauri, drain output, reap exits, and report lifecycle completion directly to the server
  • extract a deterministic client match coordinator and truthfully gate relay or reflexive UDP routes as readiness-only for the RetroArch TCP alpha
  • harden authentication with bounded per-identity and global throttling plus equal-cost unknown-user password work
  • move desktop session tokens into operating-system credential storage, require HTTPS for remote APIs, and narrow the desktop CSP
  • add strict playable-report verification, ADRs, physical Windows test instructions, and a checksummed alpha kit
  • upgrade the Rust, Tauri, Node, pnpm, and workspace dependency baseline

Verification

  • cargo fmt --all -- --check
  • cargo clippy --workspace --all-targets -- -D warnings
  • cargo test --workspace: 138 tests passed, including PostgreSQL API lifecycle, UDP, relay, two-process probe, and evidence CLI coverage
  • desktop cargo check and Clippy with --locked
  • desktop cargo test: 9 tests passed
  • pnpm test: 54 tests passed
  • pnpm typecheck
  • pnpm build
  • pnpm format:check
  • docker compose config --quiet
  • cargo audit: no unallowed vulnerabilities; the desktop lock retains only the configured upstream Tauri and Linux GTK maintenance warnings

Capability boundary

A successful OpenCade UDP probe is not presented as proof that RetroArch gameplay occurred. Native launch is enabled only for a verified same-LAN host candidate. Authenticated relay and reflexive UDP results remain readiness evidence until OpenCade has a real bridge for RetroArch native TCP traffic.

Physical two-Windows RetroArch gameplay remains the external evidence gate because emulator binaries, cores, BIOS files, and ROMs are user supplied and intentionally absent from CI.

@ovasylenko
ovasylenko force-pushed the feat/alpha-readiness-program branch from a86c305 to 3514063 Compare August 24, 2026 20:10
@Zendevve
Zendevve merged commit 826fef8 into Zendevve:main Aug 25, 2026
3 checks passed
Zendevve added a commit that referenced this pull request Aug 25, 2026
The pnpm format:check step in CI failed after the proof-of-match merge
because the repo had 45 files with formatting drift accumulated since the
last prettier pass. Most of the drift landed in the alpha readiness PR
(#6) — new ADRs, alpha scripts, the Tauri runtime layer, the client
matchCoordinator, usePlayableMatch, etc. — and was not run through
prettier before commit.

This commit is mechanical: `pnpm format` with no manual edits, applied
to exactly the 45 files prettier flags. No semantic changes; no Rust
files touched. Verified locally:

  - pnpm format:check  -> exit 0
  - pnpm typecheck     -> exit 0
  - pnpm test          -> 20/20 tests pass
  - pnpm build         -> exit 0
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