Alone, or with Everyone fetches it, a page link with plain-file tracks
plays through SharedLinks.local (a SharedSource without the upload): it
resumes after a cut, backs off on 412/429/5xx and resolves the page again
on 403/410/412, where ffmpeg's own reconnect gave up for good. Pieces
tracks and a reader that cannot open keep yt-dlp's URLs as before.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Dev reads the dev and stable manifests and offers the newer by semver;
a test build stores Dev on its first start, so the release that updates
it keeps the channel. Switching to Stable in a test build asks before
going back to an older release. tool/dev_release.sh's one-time command
also writes the update-channel file that sets Dev.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Quick chat (Enter in the full player, whatever plays): a box at the
bottom centre in the control bar's place, compact and widening with
the text, sharing its draft with the chat panel; Enter sends, Esc or an
empty Enter closes, it closes by itself after 8 s without typing (the
draft stays). Keys go to it; the Enter that opened it no longer reaches
a focused button. Typing never shows the cursor or the controls: the
frame wakes only on real mouse movement and holds the controls hidden
while the box or its echo is up. Your sent line shows as an echo (or
flies as your own danmaku line); your own chat toast is not repeated.
- Subtitle lift: always for the box, for the control bar as a setting
(off); 4 eased-out sub-pos steps 42 ms apart instead of one per frame.
- Notifications: Toasts / Danmaku (off by default): chat and short notices
fly over the full player, problems stay toasts; every knob of the look
plus boldness, persisted, with a live preview strip in Settings.
- Player panel: ⚙ → Player settings docks a foldable glass panel at the
right (tracks, subtitle size and lift, picture, volume, notifications,
controls) in place of the card; Esc closes it.
- Danmaku preview: the mock dialogue follows the lift; the stand-in page
has the chat box too.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- starsync://host:port/?name=&pw= (PROTOCOL.md "Invite link"); the password only when ticked, never in logs
- Linux: launcher entry takes x-scheme-handler/starsync (%u, StartupNotify) and becomes its xdg-mime default; Windows: HKCU\Software\Classes\starsync -> starsync.exe
- InstanceLock: lock file + loopback handoff per profile folder; the running app comes up with the second start's activation token (Wayland/X11) or AllowSetForegroundWindow (Windows)
- Sharing looks up the internet address (HTTPS services with fallbacks); members card picks Internet / Home network / VPN and says when the port needs forwarding
- JoinOffers: link and clipboard prompt with /health, joins through ConnectFlow; dismissed clipboard invites kept as fingerprints
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- "Sharp video and subtitles" (Settings → Player and the player settings
card, on by default): the video output renders at the view's physical
size (debounced, GPU rendering only), so libass, mpv's scaler and the
shaders work at screen resolution; re-sent after media_kit's own reset
on new video params, redrawn while paused.
- Dev builds only (Settings → About → Developer): a danmaku preview
(DanmakuLayer: free lanes in an upper band, density cap with a queue,
equal crossing time, outlined text, avatars, own-line frame) over the
real player or a stand-in picture, with samples, a random stream, live
toasts, every knob and mock subtitles; and "Lift subtitles above the
chat line and controls": Enter opens a stand-in chat line, bottom
subtitles move up via mpv sub-pos while it or the control bar is up.
- tool/make_sub_test.sh: a test video with a top \an8 sign, bottom
dialogue and an SRT track.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CHANGELOG.md keeps an Unreleased section (user-facing changes add a line in
the same commit); tool/release.sh cuts it into the version, the manifest
gets a structured "changes" field next to the one-line "notes" older
apps read, and the Gitea release text is that section. The app's update
band shows the top items, What's new opens a card (Added / Changed /
Fixed), and the first start after an update shows it once.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>