| Commit message (Expand) | Author | Age | Files | Lines |
| * | fix(hub): a pinned band's ring stops eating the form above it | Christophe Besson | 2026-09-10 | 1 | -0/+32 |
| * | feat(hub): pin the app controls while a library scrolls | Christophe Besson | 2026-09-10 | 1 | -9/+292 |
| * | fix(spa): say why a download cannot be paused | Christophe Besson | 2026-09-09 | 1 | -0/+10 |
| * | feat(spa): pause and resume a download, in session | Christophe Besson | 2026-09-09 | 1 | -0/+14 |
| * | feat(hub): client-side transfer leases and the transfers panel | Christophe Besson | 2026-09-08 | 1 | -0/+64 |
| * | feat(hub): name a group's host on its card, not its visibility | Christophe Besson | 2026-09-08 | 1 | -0/+5 |
| * | feat(chat): Tier 2 — a member verifies another member's device itself | Christophe Besson | 2026-09-07 | 1 | -0/+9 |
| * | feat(chat): encrypt group chat under per-device epoch keys (MNP 2.0) | Christophe Besson | 2026-09-07 | 1 | -0/+13 |
| * | fix(client): drop the "No changes to save" hint beside Save | Christophe Besson | 2026-09-07 | 1 | -2/+0 |
| * | fix(client): Save in the app panes was invisible, and Chat's never landed | Christophe Besson | 2026-09-07 | 1 | -0/+30 |
| * | feat(client): HelloWorld, the reference application | Christophe Besson | 2026-09-07 | 1 | -0/+12 |
| * | fix(client): New folder did nothing — prompt() throws in the desktop client | Christophe Besson | 2026-09-07 | 1 | -0/+12 |
| * | feat(client): bring back New folder, icon-only — and close the hole it opened | Christophe Besson | 2026-09-06 | 1 | -0/+4 |
| * | fix(client): the folder picker had no background, and its field no layout | Christophe Besson | 2026-09-06 | 1 | -17/+49 |
| * | feat(client): Phase 2 — per-app settings panes, folder tree, multi-directory | Christophe Besson | 2026-09-06 | 1 | -0/+74 |
| * | fix(groups): finish Phase 1 — MNP root management, upload targets, eject state | Christophe Besson | 2026-09-06 | 1 | -0/+25 |
| * | feat: groups refactor Phase 1 — root RO/RW model + shared directories UI | Christophe Besson | 2026-09-06 | 1 | -0/+36 |
| * | fix(node): inline @owner next to group name, fix buffering layout shift | Christophe Besson | 2026-09-06 | 1 | -5/+9 |
| * | fix(client): hide the tray button on the narrow layout | Christophe Besson | 2026-09-05 | 1 | -0/+5 |
| * | feat(client): minimise to a system tray indicator (GNOME) | Christophe Besson | 2026-09-05 | 1 | -0/+25 |
| * | fix(hub): the Node page takes the width of a settings page | Christophe Besson | 2026-09-02 | 1 | -1/+7 |
| * | fix(hub): the show detail modal must not move when the season does | Christophe Besson | 2026-09-02 | 1 | -5/+40 |
| * | fix(hub): steady the show detail modal, and give a series its director | Christophe Besson | 2026-09-02 | 1 | -13/+119 |
| * | refactor(node): JSON-only control API, Node page absorbs the admin dashboard | Christophe Besson | 2026-09-01 | 1 | -0/+25 |
| * | feat: configurable STUN server fallbacks for WebRTC ICE | Christophe Besson | 2026-08-30 | 1 | -0/+53 |
| * | revert(hub): drop the poster-grid movie merge (V12) | Christophe Besson | 2026-08-30 | 1 | -1/+0 |
| * | fix(hub): make "Re-match" and "Fix match" the same size in the detail modal | Christophe Besson | 2026-08-30 | 1 | -2/+4 |
| * | Merge remote-tracking branch 'origin/main' | Christophe Besson | 2026-08-29 | 1 | -0/+50 |
| |\ |
|
| | * | feat(node): editable node settings in the Node page (D5) | Christophe Besson | 2026-08-29 | 1 | -0/+50 |
| * | | feat(hub): drop the Search page title, add a Files refresh button | Christophe Besson | 2026-08-29 | 1 | -0/+9 |
| |/ |
|
| * | feat: V13 — per-card "re-match this one file" (MNP 0.13) | Christophe Besson | 2026-08-29 | 1 | -0/+1 |
| * | feat(hub): V12 — merge movies by TMDB id in the poster grid | Christophe Besson | 2026-08-29 | 1 | -0/+1 |
| * | fix(node): correct TMDB movie matching, per-file overrides, rematch | Christophe Besson | 2026-08-29 | 1 | -0/+24 |
| * | feat(hub): search downloads, photos view, pre-connect optimization | Christophe Besson | 2026-08-28 | 1 | -1/+2 |
| * | feat(hub): cross-group search with reuse of existing views | Christophe Besson | 2026-08-28 | 1 | -1/+105 |
| * | fix(hub): sidebar — status dot on the name line, not between name and @owner | Christophe Besson | 2026-08-28 | 1 | -1/+18 |
| * | feat(hub): group names unique per owner, shown as name@owner | Christophe Besson | 2026-08-28 | 1 | -0/+20 |
| * | fix(files): make "Filter files" search the whole group | Christophe Besson | 2026-08-28 | 1 | -0/+10 |
| * | feat(chat): link previews for pasted URLs | Christophe Besson | 2026-08-28 | 1 | -0/+52 |
| * | fix(video): let the toolbar wrap on mobile — no room left for the filter field | Christophe Besson | 2026-08-26 | 1 | -0/+7 |
| * | feat(video): add an All/Movies/Series filter to the toolbar | Christophe Besson | 2026-08-26 | 1 | -0/+32 |
| * | fix(hub): disable Android's default tap-highlight flash | Christophe Besson | 2026-08-26 | 1 | -0/+10 |
| * | fix(hub): stop hover/focus states from sticking on mobile touch | Christophe Besson | 2026-08-26 | 1 | -2/+22 |
| * | feat: add Photos group app | Christophe Besson | 2026-08-25 | 1 | -0/+277 |
| * | feat(hub): audio_root wiring, mutually-exclusive players, Settings rework | Christophe Besson | 2026-08-24 | 1 | -0/+105 |
| * | fix(hub): give the Music flat list its own look instead of Videos' reskin | Christophe Besson | 2026-08-24 | 1 | -3/+28 |
| * | fix(hub): show what's actually playing in the queue panel | Christophe Besson | 2026-08-24 | 1 | -0/+11 |
| * | feat(hub): consolidate loose tracks, "&"/"and" fold, player close/queue | Christophe Besson | 2026-08-24 | 1 | -0/+3 |
| * | feat(hub): draw an actual CD for covers with no art, not a flat icon | Christophe Besson | 2026-08-24 | 1 | -14/+18 |
| * | feat(hub): big monochrome disc placeholder for covers with no art | Christophe Besson | 2026-08-24 | 1 | -0/+15 |