| Commit message (Expand) | Author | Age | Files | Lines |
| * | fix(node): an invitation the hub never registered is a code nobody can use | Christophe Besson | 2026-09-03 | 2 | -1/+68 |
| * | fix(hub): steady the show detail modal, and give a series its director | Christophe Besson | 2026-09-02 | 1 | -0/+101 |
| * | fix(node): bound and tighten the chat link-preview SSRF surface | Christophe Besson | 2026-09-01 | 2 | -2/+88 |
| * | feat(node): [node] quic_enabled flag, off by default | Christophe Besson | 2026-09-01 | 1 | -0/+53 |
| * | refactor(node): JSON-only control API, Node page absorbs the admin dashboard | Christophe Besson | 2026-09-01 | 3 | -43/+46 |
| * | fix(node): make WebRTC STUN fallback actually use every configured server | Christophe Besson | 2026-09-01 | 1 | -0/+138 |
| * | feat: passphrase change and account recovery (auth-confirm) | Christophe Besson | 2026-09-01 | 3 | -1/+86 |
| * | feat: configurable STUN server fallbacks for WebRTC ICE | Christophe Besson | 2026-08-30 | 1 | -0/+1 |
| * | chore: scrub copyrighted names from tests, comments and docs | Christophe Besson | 2026-08-30 | 5 | -24/+24 |
| * | fix(node): stop a numbered saga all matching its first film | Christophe Besson | 2026-08-30 | 1 | -3/+14 |
| * | fix(node): stop a movie with a mangled quality tag being shelved as a series | Christophe Besson | 2026-08-29 | 2 | -0/+63 |
| * | fix: on restart, serve a video's cached TMDB match instead of re-searching | Christophe Besson | 2026-08-29 | 1 | -1/+60 |
| * | feat: V13 — per-card "re-match this one file" (MNP 0.13) | Christophe Besson | 2026-08-29 | 2 | -0/+160 |
| * | feat(node): V8–V11 — show-branch ladder, year-aware _best_match, wider se... | Christophe Besson | 2026-08-29 | 3 | -2/+153 |
| * | fix(node): correct TMDB movie matching, per-file overrides, rematch | Christophe Besson | 2026-08-29 | 7 | -0/+458 |
| * | feat: node workflow redesign — wizard auto-config, reset, MusicBrainz contact | Christophe Besson | 2026-08-29 | 3 | -201/+13 |
| * | fix(node): a pinned device can be invited to a further invite-only group | Christophe Besson | 2026-08-28 | 1 | -2/+86 |
| * | feat(chat): link previews for pasted URLs | Christophe Besson | 2026-08-28 | 2 | -0/+253 |
| * | fix(music): stop sharing one folder's cover across unrelated tracks, and merg... | Christophe Besson | 2026-08-26 | 1 | -0/+38 |
| * | fix(video): a TMDB override never stored the metadata its chosen id names | Christophe Besson | 2026-08-26 | 1 | -0/+58 |
| * | fix(video): recognize "S1"/"S2"-style season folders, not just full words | Christophe Besson | 2026-08-26 | 1 | -0/+18 |
| * | fix(video): fix two remaining bugs in Specials numbering and long-season epis... | Christophe Besson | 2026-08-26 | 2 | -11/+86 |
| * | fix(video): group every episode under the show's own folder, not a per-file g... | Christophe Besson | 2026-08-26 | 2 | -44/+76 |
| * | fix(video): TMDB match cache never invalidated on movie<->show reclassification | Christophe Besson | 2026-08-26 | 1 | -0/+37 |
| * | fix(video): a Specials/Bonus folder's episodes were matched to TMDB as unrela... | Christophe Besson | 2026-08-26 | 1 | -1/+98 |
| * | fix(node,hub): key music/media metadata lookups by file_id, not path | Christophe Besson | 2026-08-26 | 3 | -11/+304 |
| * | feat(node): share the (path,size,mtime)->hash index cache across every group | Christophe Besson | 2026-08-26 | 4 | -0/+288 |
| * | fix(hub,node): Create Group wizard silently skipped apps, and lost track of s... | Christophe Besson | 2026-08-25 | 1 | -0/+85 |
| * | fix(node): fall back to a loose MusicBrainz query when the strict one finds n... | Christophe Besson | 2026-08-25 | 1 | -2/+96 |
| * | fix(node): make Photos/Video/Music enrichment survive node restarts | Christophe Besson | 2026-08-25 | 3 | -0/+181 |
| * | feat: add Photos group app | Christophe Besson | 2026-08-25 | 1 | -0/+162 |
| * | fix(node): scope _enriched_attempted by group, not just content hash0.7 | Christophe Besson | 2026-08-25 | 3 | -7/+62 |
| * | test(node): a real signed audio_root save through the full challenge path | Christophe Besson | 2026-08-24 | 1 | -3/+123 |
| * | feat(node): add audio_root, gate Music enrichment on it like video_root | Christophe Besson | 2026-08-24 | 2 | -0/+293 |
| * | feat(music): transcode WMA/Musepack to AAC so they actually play | Christophe Besson | 2026-08-24 | 1 | -0/+193 |
| * | fix(node): skip indexing audio files under 50KB, likely-corrupt source | Christophe Besson | 2026-08-24 | 2 | -2/+41 |
| * | feat(node): recognize WMA and Musepack as audio, read their real tag keys | Christophe Besson | 2026-08-24 | 2 | -0/+134 |
| * | feat(hub): consolidate loose tracks, "&"/"and" fold, player close/queue | Christophe Besson | 2026-08-24 | 1 | -19/+20 |
| * | fix(node): stop inventing a fake artist from the shared root's name | Christophe Besson | 2026-08-24 | 1 | -5/+149 |
| * | feat(node): Music app node-side — indexing, MusicBrainz enrichment, protocol | Christophe Besson | 2026-08-24 | 5 | -2/+669 |
| * | fix(node,hub): HEVC transcode fallback, live-add progress, per-group TMDB toggle | Christophe Besson | 2026-08-24 | 7 | -87/+408 |
| * | feat(node,hub): season-specific overviews, manual TMDB match correction, and ... | Christophe Besson | 2026-08-24 | 4 | -0/+598 |
| * | feat(node,hub): add Videos group app (poster grid, flat list, TMDB metadata) | Christophe Besson | 2026-08-24 | 11 | -2/+1302 |
| * | fix(node,hub): always transcode video audio to stereo AAC, never copy | Christophe Besson | 2026-08-23 | 1 | -0/+174 |
| * | feat(node): persistent index cache, visible scan progress, adaptive reconcile... | Christophe Besson | 2026-08-23 | 7 | -1/+1239 |
| * | feat(hub): split the group UI into a pluggable "applications" architecture | Christophe Besson | 2026-08-23 | 1 | -0/+137 |
| * | feat(node): systemd service panel on the Node page, and a clean CLI restart | Christophe Besson | 2026-08-22 | 1 | -11/+49 |
| * | fix: first-run wizard reliability and node startup performance | Christophe Besson | 2026-08-22 | 2 | -14/+34 |
| * | fix: update source-reading tests that drifted from the code | Christophe Besson | 2026-08-22 | 1 | -1/+1 |
| * | fix: meshbay-node init creates the keystore, status never does | Christophe Besson | 2026-08-22 | 1 | -0/+2 |