| Commit message (Expand) | Author | Age | Files | Lines |
| * | feat(cast): music on the TV, the music bar as its remote | Christophe Besson | 20 hours | 1 | -0/+1 |
| * | feat(cast): photos on the TV, and a television chosen once for the session | Christophe Besson | 21 hours | 1 | -5/+15 |
| * | Player: redesigned cast remote | Christophe Besson | 2 days | 1 | -31/+70 |
| * | Player: remote control while casting | Christophe Besson | 2 days | 1 | -7/+115 |
| * | fix(client): the local player is silent while casting | Christophe Besson | 2 days | 1 | -0/+18 |
| * | fix(client): a seek's first segments are held while it lands, not dropped | Christophe Besson | 2 days | 1 | -1/+36 |
| * | feat(client): list cast receivers as they answer | Christophe Besson | 4 days | 1 | -12/+19 |
| * | refactor: remove dead code across packages | Christophe Besson | 7 days | 1 | -6/+0 |
| * | feat(hub): keep a show's detail modal open under the player | Christophe Besson | 7 days | 1 | -1/+1 |
| * | fix(hub): keep the video read-ahead across a reconnection | Christophe Besson | 2026-09-21 | 1 | -9/+164 |
| * | perf(hub): bound video read-ahead by bytes, not by seconds | Christophe Besson | 2026-09-21 | 1 | -8/+145 |
| * | fix(hub): a reconnect re-reads the index, not just the handshake | Christophe Besson | 2026-09-19 | 1 | -3/+6 |
| * | feat(cast): carry subtitles to a Chromecast, on the relay's clock | Christophe Besson | 2026-09-18 | 1 | -1/+123 |
| * | feat: tell a forced subtitle track from a full one | Christophe Besson | 2026-09-17 | 1 | -28/+9 |
| * | fix(hub): sample activeCues, the number that decides whether a subtitle shows | Christophe Besson | 2026-09-17 | 1 | -0/+27 |
| * | fix(hub): trace the subtitle path end to end in the player | Christophe Besson | 2026-09-17 | 1 | -2/+24 |
| * | docs(hub): say what the subtitle track's mode effect was measured to do | Christophe Besson | 2026-09-17 | 1 | -5/+9 |
| * | feat: embedded subtitles in the video player (MNP 3.3) | Christophe Besson | 2026-09-17 | 1 | -4/+172 |
| * | feat(hub): give the audio-language button a glyph of its own | Christophe Besson | 2026-09-17 | 1 | -1/+1 |
| * | feat: let the viewer pick the audio track | Christophe Besson | 2026-09-17 | 1 | -3/+114 |
| * | fix(node): inline @owner next to group name, fix buffering layout shift | Christophe Besson | 2026-09-06 | 1 | -8/+7 |
| * | feat(video): hold a Screen Wake Lock while a video is open | Christophe Besson | 2026-08-26 | 1 | -0/+43 |
| * | fix(transport): auto-reconnect after WebRTC failure, without dropping in-flig... | Christophe Besson | 2026-08-26 | 1 | -0/+19 |
| * | fix(node,hub): always transcode video audio to stereo AAC, never copy | Christophe Besson | 2026-08-23 | 1 | -10/+55 |
| * | feat(hub): split the group UI into a pluggable "applications" architecture | Christophe Besson | 2026-08-23 | 1 | -0/+992 |