Files
live/.gitignore
adminandClaude Opus 4.8 8e61dc111c feat: keyboard seek, playback speed, and persist edited settings
Player
- Arrow keys seek by 5s, Shift for a 30s jump on long recordings, J/L for +-30s,
  Space toggles playback, and up/down adjust volume. Dragging a scrubber across a
  multi-hour replay is unusable — one pixel is tens of seconds — so keys are the
  practical way to move around a long recording.
- The shortcuts ignore key events from inputs, so typing a chapter time in the
  replay editor no longer scrubs the video.
- Add a playback speed selector. It is a replay tool: speeding a live stream up
  would only push it further ahead of the encoder's buffer.

Replay editor
- Stop playback restarting on every edit. The player's source effect depended on
  the `lines` and `qualities` arrays, and callers such as the replay editor pass
  fresh literals on every render, so adding a chapter or typing a title was
  treated as a source change and reloaded the stream from the beginning. The
  effect now depends on the resolved source URL instead of the arrays it came
  from. Measured: adding three chapters leaves the media requests unchanged and
  the playhead advancing.

Settings persistence
- Settings edited in the UI were applied to the in-memory settings object and
  never written down, so the brand, transcode ladder and load-balancing strategy
  silently reverted to the config.py defaults on every restart. They are now
  saved to backend/settings.json (atomic temp-file replace) and re-applied at
  startup, with only known keys accepted so a hand-edited file cannot inject
  arbitrary attributes.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-09-29 12:44:33 +08:00

39 lines
704 B
Plaintext

# dependencies and build output
node_modules/
dist/
__pycache__/
*.pyc
*.tsbuildinfo
# local state and secrets
*.db
venv/
.venv/
*.log
# OSS credentials (accessKeySecret lives here) — never commit
RainOSS
RainOSS.bak
# generated at runtime
runtime/
media/
.playwright-mcp/
*.crt
*.key
# written by the admin node manager, not part of the source
backend/nodes.json
# administrator-edited settings (brand, transcode ladder) saved at runtime
backend/settings.json
# MediaMTX binaries and archives are fetched, not committed
mediamtx/mediamtx
mediamtx/mediamtx.exe
mediamtx/mediamtx.tar.gz
# lockfiles are intentionally not tracked
package-lock.json
# edge-agent
edge-agent/dist/
edge-agent/mediamtx/