| Commit message (Expand) | Author | Age | Files | Lines |
| * | feat(hub): open, create and join invitation links in the interface | Christophe Besson | 2 days | 1 | -3/+28 |
| * | fix(hub): a reconnect re-reads the index, not just the handshake | Christophe Besson | 6 days | 1 | -28/+86 |
| * | fix(hub): stop keeping a copy of every group's file listing in the browser | Christophe Besson | 6 days | 1 | -9/+1 |
| * | docs: cite MESHBAY_DESIGN.md and a section instead of the merged notes | Christophe Besson | 7 days | 1 | -6/+6 |
| * | playlists: merge rules, sealing, and the key | Christophe Besson | 9 days | 1 | -1/+1 |
| * | music: play, play next, add to queue | Christophe Besson | 9 days | 1 | -3/+10 |
| * | feat(hub): Videos and Music list their cards a page at a time | Christophe Besson | 10 days | 1 | -1/+1 |
| * | fix(ui): a group opened directly lands on the preferred app once preferences ...0.14 | Christophe Besson | 11 days | 1 | -4/+23 |
| * | feat: a group can be left out of Search, and Search tries every node | Christophe Besson | 11 days | 1 | -0/+6 |
| * | feat(ui): an indexing dock above the music bar, on every page | Christophe Besson | 11 days | 1 | -5/+21 |
| * | fix: an empty group claim is a claim on nothing | Christophe Besson | 13 days | 1 | -19/+52 |
| * | fix(node): the handshake ack dropped one app's directories | Christophe Besson | 2026-09-10 | 1 | -12/+17 |
| * | refactor(mnp)!: one operation for an app's folders, not one per app | Christophe Besson | 2026-09-10 | 1 | -13/+4 |
| * | refactor(spa): stop asking a node what version it is | Christophe Besson | 2026-09-10 | 1 | -6/+0 |
| * | refactor(mnp)!: one answer to "may this member write", and it is the root | Christophe Besson | 2026-09-10 | 1 | -18/+3 |
| * | feat(hub): pin the app controls while a library scrolls | Christophe Besson | 2026-09-10 | 1 | -2/+6 |
| * | fix(spa): a reconnect must give the Chat composer back | Christophe Besson | 2026-09-09 | 1 | -1/+15 |
| * | feat(hub): client-side transfer leases and the transfers panel | Christophe Besson | 2026-09-08 | 1 | -1/+6 |
| * | feat(client): HelloWorld, the reference application | Christophe Besson | 2026-09-07 | 1 | -8/+16 |
| * | fix: a root change reaches every client without a page reload | Christophe Besson | 2026-09-06 | 1 | -0/+7 |
| * | feat(node): an upload lands in the folder it was sent to | Christophe Besson | 2026-09-06 | 1 | -2/+11 |
| * | fix(client): degrade against a node still speaking MNP 1.0 | Christophe Besson | 2026-09-06 | 1 | -0/+6 |
| * | fix(client): a successful root op must never blank the operator's table | Christophe Besson | 2026-09-06 | 1 | -1/+5 |
| * | feat(client): Phase 2 — per-app settings panes, folder tree, multi-directory | Christophe Besson | 2026-09-06 | 1 | -33/+74 |
| * | fix(groups): finish Phase 1 — MNP root management, upload targets, eject state | Christophe Besson | 2026-09-06 | 1 | -8/+26 |
| * | feat: groups refactor Phase 1 — root RO/RW model + shared directories UI | Christophe Besson | 2026-09-06 | 1 | -9/+25 |
| * | feat!: MNP 1.0 — seal index and handshake_ack under the group key | Christophe Besson | 2026-09-03 | 1 | -0/+10 |
| * | fix(hub): fall back to the group's first app when the landing tab is absent | Christophe Besson | 2026-09-02 | 1 | -1/+24 |
| * | fix(hub): adjust no-group prompt and post-create wizard step | Christophe Besson | 2026-09-01 | 1 | -2/+19 |
| * | feat: passphrase change and account recovery (auth-confirm) | Christophe Besson | 2026-09-01 | 1 | -4/+68 |
| * | fix(hub): chat kept stale messages when switching groups on the Chat tab | Christophe Besson | 2026-08-29 | 1 | -1/+1 |
| * | feat: node workflow redesign — wizard auto-config, reset, MusicBrainz contact | Christophe Besson | 2026-08-29 | 1 | -6/+1 |
| * | feat(hub): cross-group search with reuse of existing views | Christophe Besson | 2026-08-28 | 1 | -40/+19 |
| * | feat(hub): group names unique per owner, shown as name@owner | Christophe Besson | 2026-08-28 | 1 | -3/+8 |
| * | feat(music): network-adaptive prefetch depth, opt-in keep-screen-on toggle | Christophe Besson | 2026-08-26 | 1 | -1/+1 |
| * | fix(transport): auto-reconnect after WebRTC failure, without dropping in-flig... | Christophe Besson | 2026-08-26 | 1 | -0/+5 |
| * | feat: add Photos group app | Christophe Besson | 2026-08-25 | 1 | -0/+9 |
| * | fix(hub): refresh directory list after adding/removing a shared root | Christophe Besson | 2026-08-24 | 1 | -0/+1 |
| * | feat(hub): audio_root wiring, mutually-exclusive players, Settings rework | Christophe Besson | 2026-08-24 | 1 | -0/+7 |
| * | fix(hub): starting one player stops the other | Christophe Besson | 2026-08-24 | 1 | -1/+8 |
| * | feat(hub): play audio files from Explorer, scoped to the current folder | Christophe Besson | 2026-08-24 | 1 | -3/+19 |
| * | feat(hub): consolidate loose tracks, "&"/"and" fold, player close/queue | Christophe Besson | 2026-08-24 | 1 | -2/+12 |
| * | feat(hub): Music app client — album grid, flat list, persistent player | Christophe Besson | 2026-08-24 | 1 | -0/+33 |
| * | fix(node,hub): HEVC transcode fallback, live-add progress, per-group TMDB toggle | Christophe Besson | 2026-08-24 | 1 | -2/+11 |
| * | feat(node,hub): add Videos group app (poster grid, flat list, TMDB metadata) | Christophe Besson | 2026-08-24 | 1 | -6/+31 |
| * | feat(node): persistent index cache, visible scan progress, adaptive reconcile... | Christophe Besson | 2026-08-23 | 1 | -1/+56 |
| * | feat(hub): split the group UI into a pluggable "applications" architecture | Christophe Besson | 2026-08-23 | 1 | -0/+484 |