| Commit message (Expand) | Author | Age | Files | Lines |
| * | fix(hub): a redeemed invitation link leaves the owner's list | Christophe Besson | 2 days | 1 | -7/+9 |
| * | feat(hub): open, create and join invitation links in the interface | Christophe Besson | 2 days | 1 | -0/+172 |
| * | feat(hub): make mailing an invitation a remembered choice | Christophe Besson | 2 days | 1 | -17/+52 |
| * | fix: ask in the page instead of native confirm/alert | Christophe Besson | 4 days | 1 | -7/+8 |
| * | fix(hub): removing from a group no longer unpins the account | Christophe Besson | 5 days | 1 | -4/+16 |
| * | fix: removing someone who never redeemed their invitation | Christophe Besson | 5 days | 1 | -2/+17 |
| * | feat: a group can be left out of Search, and Search tries every node | Christophe Besson | 11 days | 1 | -0/+39 |
| * | fix: bound what one member can cost the others | Christophe Besson | 13 days | 1 | -1/+4 |
| * | refactor(spa): stop asking a node what version it is | Christophe Besson | 2026-09-10 | 1 | -23/+5 |
| * | feat(hub): pin the app controls while a library scrolls | Christophe Besson | 2026-09-10 | 1 | -0/+8 |
| * | feat(hub): collapse "Your devices on this node" by default | Christophe Besson | 2026-09-08 | 1 | -3/+8 |
| * | feat(client): HelloWorld, the reference application | Christophe Besson | 2026-09-07 | 1 | -2/+7 |
| * | fix(client): report a directory result under the button that caused it | Christophe Besson | 2026-09-07 | 1 | -9/+23 |
| * | fix: a root change reaches every client without a page reload | Christophe Besson | 2026-09-06 | 1 | -6/+18 |
| * | fix(node): `root list` printed "?" for every path | Christophe Besson | 2026-09-06 | 1 | -5/+11 |
| * | fix(client): degrade against a node still speaking MNP 1.0 | Christophe Besson | 2026-09-06 | 1 | -3/+21 |
| * | feat(client): Phase 2 — per-app settings panes, folder tree, multi-directory | Christophe Besson | 2026-09-06 | 1 | -547/+61 |
| * | fix(groups): finish Phase 1 — MNP root management, upload targets, eject state | Christophe Besson | 2026-09-06 | 1 | -142/+251 |
| * | feat: groups refactor Phase 1 — root RO/RW model + shared directories UI | Christophe Besson | 2026-09-06 | 1 | -173/+276 |
| * | feat: email verification for registration, email change, and invitations | Christophe Besson | 2026-08-31 | 1 | -1/+19 |
| * | feat: node workflow redesign — wizard auto-config, reset, MusicBrainz contact | Christophe Besson | 2026-08-29 | 1 | -57/+1 |
| * | feat(hub): group names unique per owner, shown as name@owner | Christophe Besson | 2026-08-28 | 1 | -2/+6 |
| * | feat: add Photos group app | Christophe Besson | 2026-08-25 | 1 | -2/+112 |
| * | fix(hub): poll for a root count change instead of trusting one fetch | Christophe Besson | 2026-08-25 | 1 | -2/+34 |
| * | fix(hub): make root-folder save success/failure actually visible | Christophe Besson | 2026-08-24 | 1 | -9/+10 |
| * | fix(hub): refresh directory list after adding/removing a shared root | Christophe Besson | 2026-08-24 | 1 | -1/+12 |
| * | feat(hub): audio_root wiring, mutually-exclusive players, Settings rework | Christophe Besson | 2026-08-24 | 1 | -88/+199 |
| * | feat(hub): Music app client — album grid, flat list, persistent player | Christophe Besson | 2026-08-24 | 1 | -0/+106 |
| * | fix(node,hub): HEVC transcode fallback, live-add progress, per-group TMDB toggle | Christophe Besson | 2026-08-24 | 1 | -20/+51 |
| * | feat(node,hub): season-specific overviews, manual TMDB match correction, and ... | Christophe Besson | 2026-08-24 | 1 | -1/+19 |
| * | feat(node,hub): add Videos group app (poster grid, flat list, TMDB metadata) | Christophe Besson | 2026-08-24 | 1 | -2/+209 |
| * | feat(node): persistent index cache, visible scan progress, adaptive reconcile... | Christophe Besson | 2026-08-23 | 1 | -1/+110 |
| * | feat(hub): split the group UI into a pluggable "applications" architecture | Christophe Besson | 2026-08-23 | 1 | -0/+635 |