- 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 |
||
|---|---|---|
| .. | ||
| public | ||
| src/css | ||
| .dockerignore | ||
| .gitignore | ||
| Dockerfile | ||
| nginx.conf | ||
| package.json | ||
| postcss.config.js | ||
| tailwind.config.js | ||