Skip to content

v0.12.0 - Recording Upload Improvements and Security Patches

Choose a tag to compare

@FuzzyMistborn FuzzyMistborn released this 31 Jul 22:31
· 80 commits to main since this release

Lots of focus on resolving some security issues and resolving issues surrounding recording uploads.

New Features

  • Direct-to-cloud upload for local recordings. Video recorded to a guest's local disk now streams straight to cloud storage in the background
    throughout the session, instead of waiting until the recording stops and uploading everything at once. Cuts down the post-recording wait
    significantly for large sessions.
  • "Upload while recording" toggle in the studio header (on by default) to disable the above behavior if preferred.
  • Falls back automatically to the previous end-of-session upload behavior when cloud storage isn't configured, or if a direct-to-cloud upload
    attempt fails partway through.

Improvements

  • Session data now saves without blocking the app.
  • A corrupted session save file gets moved aside instead of silently wiping out every session on restart.
  • Stuck video-processing (ffmpeg) jobs now time out (configurable, default 4 hours) instead of hanging a slot forever.
  • Added an aggregate per-participant upload cap (configurable, default 100GB) to bound a runaway or malicious uploader.
  • Host/moderator tokens no longer leak into server logs.
  • Some unbounded internal bookkeeping lists are now cleaned up over time instead of growing forever.
  • /pending-guests now accepts the host token as a header instead of only a query param, keeping it out of access logs.

Bug Fixes

  • Security: guests could previously bypass the host's approval step and upload recordings directly without ever being admitted to the session —
    closed. Also fixed: uploads continuing well after a session ends, storage limits being skippable, and cloud-upload endpoints not verifying a
    request actually belonged to the session it claimed.
  • Fixed a race where opening the same session in two tabs could interfere with an in-progress upload.
  • Fixed a rare logging error that could leave a finished upload stuck without ever being processed.
  • An interrupted-then-resumed direct-to-cloud upload now finishes with the correct audio/video settings instead of falling back to defaults.
  • Cancelling a direct-to-cloud upload now properly cleans up the partial object in cloud storage instead of leaving it stranded.
  • Recording a second screen share in one session no longer risks failing to save properly.
  • Background upload no longer competes with the recording itself for memory.
  • Fixed a bug that could corrupt exported video when screen sharing was restarted mid-recording.
  • Fixed a crash-recovery marker getting stuck permanently when a recording crashed before writing its first chunk.
  • Fixed a crash affecting nearly every recording/upload action, caused by a leftover debug-logging call.
  • Fixed several data-loss/corruption bugs around quick retakes, screen-share restarts, mic issues, and network interruptions during recording.
  • Fixed cloud uploads getting stuck when one destination (of several) was unreachable.
  • Fixed grid exports occasionally being marked "ready" when the export had actually failed.

Other

  • Added CI (automated test runs on push/PR to main).