- Schedule: if start_at is more than a minute in the past, confirm() before submitting (operator may want to fire immediately, but shouldn't do it accidentally) - Recorders: generateClipName now sanitizes the recorder name so the S3 key / SMB path / ffmpeg arg stays clean — spaces become underscores, anything outside [A-Za-z0-9._-] is dropped, capped at 40 - Asset detail: audio mute + fullscreen buttons now key off streamUrl state (rather than videoRef.current which is null on first render) so they reliably appear when a stream is available |
||
|---|---|---|
| .. | ||
| src | ||
| .env.example | ||
| .gitignore | ||
| Dockerfile | ||
| package.json | ||