These rules apply to every OpenStream change.
- Never replace source timestamps with arrival time.
- Never re-encode ISO video.
- Never use unbounded queues.
- Never put OBS dependencies inside the engine.
- Never let the UI own media sessions.
- Never perform network or disk work on the UI thread.
- Never perform ordinary CPU frame copies in the hardware path.
- Never allow one camera failure to interrupt another.
- Never enable a software codec silently.
- Never create a second phone video encoder in standard mode.
- Never mix all microphones automatically.
- Never promise genlock or guaranteed frame-perfect sync.
- Keep unrelated changes in separate PRs.
- Every performance change must include before-and-after measurements.
- Every media change must include behavioural tests.
- Every queue must declare its capacity and overflow policy.
- Every recording gap must be surfaced and logged.
- Hardware acceleration must have an explicit fallback and warning.
- Preserve legacy compatibility through adapters, not core contamination.
After completing a task, create a pull request on GitHub for the finished changes.