CastMan — host console

Slim Phase 1: session control + upload progress. The full dashboard (silence alarm, D4 verification) is deliberately not built yet.

Session

If you are tunnelling, replace the host part with your trycloudflare.com address — or just open this page through the tunnel and the link will be right automatically.

Participants

WhoChunksUploadedLast chunk DeviceTrack
nobody has joined yet

Refreshes every 3 s. A participant whose last chunk is older than ~2.5 min is flagged — chunks are only cut every 2 min, so that is the earliest honest warning.

Shared clap anchor

Everyone must be recording first. This fires one countdown on every recorder at the same instant — that shared clap is what clapsync.py aligns the tracks on. Anyone not recording yet is told they missed it rather than clapping at the wrong time.

End of session

Each guest's page assembles their own track when they press stop. This rebuilds every track from whatever chunks are on disk — safe to click any number of times, and the fix if someone's browser died before stopping.

Then, in WSL:
python3 tools/clapsync.py sessions/