From 024d81c7ecc59a1f908a95ebdd8780f117b64b3d Mon Sep 17 00:00:00 2001 From: Matiss Jurevics Date: Sat, 7 Mar 2026 16:30:00 +0000 Subject: [PATCH] docs: add streaming simplification rollout and validation artifacts --- ...AMING_SIMPLIFICATION_ABSOLUTE_CHECKLIST.md | 75 ++++++++++ ...REAMING_SIMPLIFICATION_EXECUTION_PROMPT.md | 73 +++++++++ ...MING_SIMPLIFICATION_IMPLEMENTATION_PLAN.md | 138 ++++++++++++++++++ ...ING_SIMPLIFICATION_ROLLOUT_AND_ROLLBACK.md | 45 ++++++ ...EAMING_SIMPLIFICATION_VALIDATION_MATRIX.md | 44 ++++++ 5 files changed, 375 insertions(+) create mode 100644 docs/STREAMING_SIMPLIFICATION_ABSOLUTE_CHECKLIST.md create mode 100644 docs/STREAMING_SIMPLIFICATION_EXECUTION_PROMPT.md create mode 100644 docs/STREAMING_SIMPLIFICATION_IMPLEMENTATION_PLAN.md create mode 100644 docs/STREAMING_SIMPLIFICATION_ROLLOUT_AND_ROLLBACK.md create mode 100644 docs/STREAMING_SIMPLIFICATION_VALIDATION_MATRIX.md diff --git a/docs/STREAMING_SIMPLIFICATION_ABSOLUTE_CHECKLIST.md b/docs/STREAMING_SIMPLIFICATION_ABSOLUTE_CHECKLIST.md new file mode 100644 index 0000000..d09b22e --- /dev/null +++ b/docs/STREAMING_SIMPLIFICATION_ABSOLUTE_CHECKLIST.md @@ -0,0 +1,75 @@ +# 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 `