From 1295ec62ba515e50b006727c8ec18ecb6d2a19cc Mon Sep 17 00:00:00 2001
From: Veton Shabani <68129513+vetonshabani0@users.noreply.github.com>
Date: Tue, 30 Jun 2026 23:15:18 +0200
Subject: [PATCH] Mark P2 (persistent game shell) done in the mission log
The launcher now hosts games in an iframe shell so the WebRTC controller link survives launch; controller intents relay in over postMessage. Phone-over-LAN play still depends on direct P2P (P5).
---
docs/todo.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/todo.md b/docs/todo.md
index 0efcfdf..d0d0c2f 100644
--- a/docs/todo.md
+++ b/docs/todo.md
@@ -68,9 +68,9 @@ title: TODO / Backlog
P1 ✓
Real transport — WebRTC P2P. Done. PlayerSession.connect() (launcher = hub/answerer, one peer per phone) and ControllerSession.connect()/send() (controller = offerer) now open a real WebRTC DataChannel; intents flow phone→TV peer-to-peer. The new web-api service is a thin signaling relay (SDP/ICE) keyed by room code. Verified end-to-end in a browser. See web-api / transport architecture.
-
location.href = ../games/<id>/), which unloads the page and drops the peer connection — so today a phone drives the launcher menu but not a running game. Host games in a persistent shell (iframe / in-page swap) so the controller link survives launch and games can consume controller intents.
+ postMessage (sc:intent), injected through each game's shared Input layer with no per-game change; Back returns to the menu still connected. Verified with two clients on one machine. (Phone-over-LAN play depends on direct P2P succeeding — see P5.)