| Commit message (Expand) | Author | Age | Files | Lines |
| * | style: ruff's own fixes, mechanically applied | Christophe Besson | 6 days | 6 | -24/+22 |
| * | docs: cite MESHBAY_DESIGN.md and a section instead of the merged notes | Christophe Besson | 7 days | 5 | -58/+64 |
| * | fix(node): take the availability poll and every upload write off the loop | Christophe Besson | 7 days | 1 | -7/+8 |
| * | feat: let the viewer pick the audio track | Christophe Besson | 9 days | 1 | -3/+4 |
| * | feat(node): progress names the root under way and the roots waiting | Christophe Besson | 11 days | 1 | -25/+97 |
| * | fix(node): a scan keeps its progress while a burst or a plug runs beside it | Christophe Besson | 11 days | 1 | -23/+59 |
| * | fix(node): a reload and a plug rescan outlive the session that asked | Christophe Besson | 12 days | 1 | -2/+16 |
| * | fix(node): an added root is served before it is scanned | Christophe Besson | 12 days | 1 | -5/+71 |
| * | fix: hold every background task, in both codebases | Christophe Besson | 12 days | 1 | -1/+2 |
| * | fix(node): an uploaded file records who sent it | Christophe Besson | 12 days | 2 | -3/+122 |
| * | fix(node): carry enrichment across a rescan instead of re-deriving it | Christophe Besson | 2026-09-07 | 1 | -12/+54 |
| * | fix(node): a replugged root came back without its metadata | Christophe Besson | 2026-09-07 | 1 | -0/+25 |
| * | fix(groups): finish Phase 1 — MNP root management, upload targets, eject state | Christophe Besson | 2026-09-06 | 1 | -0/+16 |
| * | feat: groups refactor Phase 1 — root RO/RW model + shared directories UI | Christophe Besson | 2026-09-06 | 1 | -0/+38 |
| * | fix(node): prevent watchdog from overwriting index entries with duplicate con... | Christophe Besson | 2026-09-06 | 1 | -3/+9 |
| * | feat(node): indexing v2 — partial-read hashing for files above 40 MB | Christophe Besson | 2026-09-06 | 2 | -40/+83 |
| * | refactor(node): platform abstraction for Windows portability (W1-W2-W5-W6-W7) | Christophe Besson | 2026-09-03 | 1 | -1/+2 |
| * | refactor!: one file_chunk and index_sync encoder for every transport | Christophe Besson | 2026-09-03 | 1 | -1/+8 |
| * | chore: scrub copyrighted names from tests, comments and docs | Christophe Besson | 2026-08-30 | 1 | -5/+6 |
| * | fix(node): stop a numbered saga all matching its first film | Christophe Besson | 2026-08-30 | 1 | -8/+22 |
| * | fix(node): stop a movie with a mangled quality tag being shelved as a series | Christophe Besson | 2026-08-29 | 2 | -2/+31 |
| * | feat(node): V8–V11 — show-branch ladder, year-aware _best_match, wider se... | Christophe Besson | 2026-08-29 | 1 | -17/+83 |
| * | fix(node): correct TMDB movie matching, per-file overrides, rematch | Christophe Besson | 2026-08-29 | 1 | -0/+10 |
| * | fix(music): stop sharing one folder's cover across unrelated tracks, and merg... | Christophe Besson | 2026-08-26 | 1 | -0/+17 |
| * | fix(video): recognize "S1"/"S2"-style season folders, not just full words | Christophe Besson | 2026-08-26 | 1 | -0/+9 |
| * | fix(video): fix two remaining bugs in Specials numbering and long-season epis... | Christophe Besson | 2026-08-26 | 2 | -22/+73 |
| * | fix(video): group every episode under the show's own folder, not a per-file g... | Christophe Besson | 2026-08-26 | 2 | -79/+70 |
| * | fix(video): a Specials/Bonus folder's episodes were matched to TMDB as unrela... | Christophe Besson | 2026-08-26 | 1 | -9/+103 |
| * | fix(node,hub): key music/media metadata lookups by file_id, not path | Christophe Besson | 2026-08-26 | 1 | -13/+0 |
| * | feat(node): share the (path,size,mtime)->hash index cache across every group | Christophe Besson | 2026-08-26 | 1 | -2/+40 |
| * | fix(hub,node): Create Group wizard silently skipped apps, and lost track of s... | Christophe Besson | 2026-08-25 | 1 | -16/+49 |
| * | fix(node): make Photos/Video/Music enrichment survive node restarts | Christophe Besson | 2026-08-25 | 3 | -30/+111 |
| * | feat: add Photos group app | Christophe Besson | 2026-08-25 | 1 | -0/+160 |
| * | fix(node): skip indexing audio files under 50KB, likely-corrupt source | Christophe Besson | 2026-08-24 | 1 | -0/+17 |
| * | feat(node): recognize WMA and Musepack as audio, read their real tag keys | Christophe Besson | 2026-08-24 | 2 | -15/+127 |
| * | feat(hub): consolidate loose tracks, "&"/"and" fold, player close/queue | Christophe Besson | 2026-08-24 | 1 | -8/+7 |
| * | fix(node): stop inventing a fake artist from the shared root's name | Christophe Besson | 2026-08-24 | 2 | -23/+188 |
| * | feat(node): Music app node-side — indexing, MusicBrainz enrichment, protocol | Christophe Besson | 2026-08-24 | 2 | -0/+238 |
| * | fix(node,hub): HEVC transcode fallback, live-add progress, per-group TMDB toggle | Christophe Besson | 2026-08-24 | 2 | -31/+79 |
| * | feat(node,hub): add Videos group app (poster grid, flat list, TMDB metadata) | Christophe Besson | 2026-08-24 | 3 | -1/+372 |
| * | feat(node): persistent index cache, visible scan progress, adaptive reconcile... | Christophe Besson | 2026-08-23 | 4 | -50/+330 |
| * | fix: first-run wizard reliability and node startup performance | Christophe Besson | 2026-08-22 | 1 | -3/+9 |
| * | feat(node): several named roots per group, and one implementation per operation | Christophe Besson | 2026-08-18 | 2 | -50/+360 |
| * | feat: Phase 9 — Web client SPA with WebRTC P2P transport | Christophe Besson | 2026-08-11 | 2 | -19/+40 |
| * | fix: 4 corrections — streaming hash, watchdog bug, cipher doc, deps | Christophe Besson | 2026-08-09 | 1 | -3/+11 |
| * | feat(node): add directory indexer and Mesh Group Index | Christophe Besson | 2026-08-09 | 3 | -0/+409 |
| * | chore: initialize monorepo structure for MeshBay | Christophe Besson | 2026-08-09 | 1 | -0/+0 |