Skip to content

feat: demo archive seeder, English screenshots and UI fixes - #10

Merged
Blackwellcode merged 4 commits into
masterfrom
feat/demo-and-launch
Nov 9, 2026
Merged

Blackwellcode merged 4 commits into
masterfrom
feat/demo-and-launch

Conversation

@Blackwellcode

Copy link
Copy Markdown
Owner

Summary

This PR makes StreamVault easy to try without recording anything, and fixes the issues that showed up while retaking the screenshots.

Demo data

  • scripts/demo_seed.py creates three fictional channels with recordings rendered from FFmpeg test sources. Each recording comes with:
    • chat logs
    • .info.json title and category sidecars
    • thumbnails
    • local avatars
  • It refuses to write into a non-empty directory it did not create.
  • The README has a new section, "Try it locally".
  • /demo-data/ is ignored by git.

Fixes

  • Storage figures: storage_info() used os.statvfs with a bare except. Non-Linux hosts always showed N/A, and real errors were swallowed. It now uses shutil.disk_usage and logs OSError.
  • VOD chat panel: the header was hard-coded to an untranslated "Twitch Chat", even on YouTube recordings. It now uses the translated "Chat".
  • Language switcher: in the sidebar rail it was cut off to "A…". It now shows a globe and the language code over the native select.
  • Channel page: a stray separator appeared when a recording had no size.
  • Example values: the cloud storage page no longer uses a real streamer's name or German text. Catalogs for all 12 languages were updated and recompiled.

Docs

  • New English screenshots taken from the demo data. The users page is replaced by the cloud storage page.
  • CHANGELOG.md is updated.

Test plan

  • python -m unittest discover -s tests: 178 tests, OK (skipped=1). New tests cover StorageInfoTests and DemoSeedTests.
  • ruff check .
  • python scripts/check_translations.py: 0 problems
  • Ran the demo seeder and checked every screenshot page in the browser at 1600×950 and on a 390×844 phone viewport.
  • CI on Python 3.10, 3.11 and 3.12

🤖 Generated with Claude Code

Pierre and others added 4 commits November 9, 2026 23:23
scripts/demo_seed.py renders short sample recordings from FFmpeg test
sources, with chat logs, title sidecars, thumbnails and local avatars, so
StreamVault can be tried without recording anything. It refuses to write
into a non-empty directory it did not create.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
storage_info() used os.statvfs and a bare except, so non-Linux hosts
always showed N/A and real errors were swallowed. shutil.disk_usage gives
the same values on POSIX; OSError is now logged.

Also adds tests for the demo seeder's directory guard.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- The VOD chat panel was hard-coded to an untranslated 'Twitch Chat',
  also for YouTube recordings; it now uses the translated 'Chat'.
- The sidebar language switcher was truncated to 'A...'; the narrow rail
  shows a globe and the language code over the native select.
- Channel pages printed an empty separator when a recording had no size.
- Example values no longer use a real streamer's name or German text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Screenshots are retaken in English from scripts/demo_seed.py data, the
users page is replaced by the cloud storage page, and the README gains a
'Try it locally' section.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Blackwellcode
Blackwellcode merged commit d7e3db2 into master Nov 9, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant