# Absolute Checklist: Streaming Simplification (WebRTC-only) ## Backend 1. Add/confirm `SIMPLE_STREAMING` environment/config switch (default: true for new deployment profile). 2. In `Backend/routes/streams.ts`, update `POST /streams/request` to: - keep device role/link validation - create session with status `requested` - emit request event directly compatible with WebRTC-only flow - remove stream-provider payload assumptions from response 3. In `Backend/routes/streams.ts`, update `POST /streams/:id/accept` to: - validate camera ownership and state - set status to `streaming` - set `startedAt` - emit `stream:started` - remove or gate all publish/subscribe/media-provider dependency 4. In `Backend/routes/streams.ts`, update `POST /streams/:id/end` to: - require authorized participant (camera or requester) - set status to `ended` - set `endedAt` - emit `stream:ended` - stop any active SFU session only if explicitly still active and configured 5. In `Backend/routes/streams.ts`, remove any hard dependency on `mediaProvider.createSession` for live functionality. 6. Gate recording creation in stream end logic behind feature flag (default OFF) or remove endpoint path from phase-1 path. 7. In `Backend/routes/streams.ts`, return minimal deterministic payload for stream start/accept/end responses. 8. In `Backend/db/schema.ts`, mark legacy media fields as deprecated comments only (no schema migration required in phase 1). 9. In `Backend/media/service.ts`, make provider calls no-op for phase-1 streaming runtime or guard them behind non-simplified feature flag. 10. In `Backend/media/providers/mock.ts`, annotate mock provider methods as metadata-only and remove calls from request/accept/end flow. 11. In `Backend/media/sfu/service.ts` and `Backend/media/sfu/noop.ts`, ensure no required startup path is executed for default simplified mode. 12. In `Backend/routes/commands.ts`, document command-table deprecation for stream lifecycle command path; remove active usage if simplified mode is enabled. ## Realtime Gateway 13. In `Backend/realtime/gateway.ts`, remove `stream:frame` event listener and sender path. 14. In `Backend/realtime/gateway.ts`, remove frame-relay participant cache and related validation branch. 15. In `Backend/realtime/gateway.ts`, keep only validated `webrtc:signal` logic for offer/answer/candidate/hangup. 16. In `Backend/realtime/gateway.ts`, simplify signal forwarding so target validation is session ownership + same user context. 17. In `Backend/realtime/gateway.ts`, remove periodic command retry polling for stream commands when in simplified mode. 18. Keep `stream:started` and `stream:ended` emit paths with recipient resolution. 19. Ensure socket middleware still enforces device token auth and role identity checks. ## Web frontend 20. In `WebApp/src/lib/app/controller.js`, collapse stream state to `idle|connecting|active|ended`. 21. Remove fallback image mode, latest-frame state, and frame receiver logic from controller. 22. Ensure client side only uses WebRTC peer connection and `