Sequence headers stamped 0 no longer consume the reconnect/fill splice bias (they are pinned at the splice point; first media tag sets the bias), bridge feed/freeze/reconnect are serialized, fill writes use the bounded write deadline and mark output failure, and the watchdog no longer shields a fill whose emissions stall or whose output seconds leap far ahead of wall time.
relay-v2.39-avfill-fastout trial: faster RTMPS stall recovery during gap fill (On only)
During A/V gap fill, stop renewing blocked stdin writes and bypass fill protection when FFmpeg output progress has been stale beyond the fill-output grace (25s default), so a genuinely stuck RTMPS output reopens in seconds instead of being hidden for ~117s. Healthy fills keep the same connection.
relay-v2.38-avfill trial: A/V-complete gap fill (On only)
- guest_watch.py: keyless WebSocket watcher on host rooms (piratetok-live-py 0.3.0).
A guest is active while its userId keeps appearing in link_mic_method events.
- app.py: when an enabled account is offline in its own room but is a guest on a
watched host, relay the host stream and show LIVE on host. Switch back when the
guest signal expires. Own-room behaviour is unchanged otherwise.
- Dockerfile: GUEST_WATCH_HOSTS=talolil, GUEST_ACTIVE_SECONDS=120.
- test_guest_watch.py: unit checks.
Resume the same owned publisher while the accepted lifecycle transition finishes, without duplicate transitions or pre-start timeout cancellation. Keep created/terminal lifecycle guards and existing account/channel/credential settings. New before-fix regressions reproduced four failures; all 383 checks pass after fix. Deployment explicitly approved by the owner while streams are running.
Recover repeated RTMPS startup failures using safe backup ingest routing
Same owned stream and broadcast, primary/backup route recovery with query-safe URL construction. Add redacted handshake diagnostics and prevent debug publish-success messages from being treated as output failures. Preserve credentials, channel, quota and account choices. 376 checks passed.
Fix live source handover without interrupting the YouTube publisher
Start the replacement reader after releasing its handover flag; cancel and join old readers exclusively. Handle CDN EOF/read failures inside the same FFmpeg, allow bounded first-byte grace, reuse recent compatible live observations and ignore 16x16 placeholder canvas dimensions. Preserve channel, user settings, events and Secrets. Regression coverage includes real HTTP/FFmpeg continuity; 367 checks passed.
Fix explicit channel confirmation and TikTok JSON cookie import
Keep the checked OAuth channel separate from the active journal channel. Add adopt-only confirmation with no broadcast start; preserve fail-closed guards, stop old publishers before archiving, clear old ingestion destinations, and scope history to its channel. Accept browser JSON cookie exports with expiry/domain filtering. Add deterministic dashboard, API and cookie regressions; isolate the local lifecycle ingest fixture.
fix: keep container logs focused on actionable events
Arena maintenance
8039249
fix: recover dead FFmpeg senders and add iframe login
Arena maintenance
1a38430
Run the sender watchdog on every manager pass, detach stopped supervisors, protect detailed health, restore the dashboard, pin dependencies, and add regression coverage.
حارسا الحمل: عودة تلقائية إلى copy بعد 60ث + ترميز متزامن واحد