| Commit message (Expand) | Author | Age | Files | Lines |
| * | style: ruff's own fixes, mechanically applied | Christophe Besson | 6 days | 1 | -4/+6 |
| * | Merge origin/main: the operator's upload ceiling beside the disk-thread work | Christophe Besson | 6 days | 1 | -35/+50 |
| |\ |
|
| | * | fix(node): node.toml's transfer pools reach the transport | Christophe Besson | 6 days | 1 | -37/+30 |
| | * | feat(node): per-file upload ceiling is an operator setting, default 8 GB | Christophe Besson | 7 days | 1 | -0/+22 |
| * | | docs: cite MESHBAY_DESIGN.md and a section instead of the merged notes | Christophe Besson | 7 days | 1 | -6/+7 |
| |/ |
|
| * | fix(node): take the availability poll and every upload write off the loop | Christophe Besson | 7 days | 1 | -3/+3 |
| * | feat: a group can be left out of Search, and Search tries every node | Christophe Besson | 11 days | 1 | -0/+20 |
| * | fix: hold every background task, in both codebases | Christophe Besson | 12 days | 1 | -2/+3 |
| * | refactor(mnp)!: one operation for an app's folders, not one per app | Christophe Besson | 2026-09-10 | 1 | -27/+5 |
| * | fix(node): push the grants a per-member cap change produces | Christophe Besson | 2026-09-09 | 1 | -2/+38 |
| * | fix(node): a running transfer keeps its slot, and a dead grant lets go | Christophe Besson | 2026-09-08 | 1 | -5/+17 |
| * | feat(node): make the transfer caps settable, node-wide and per group | Christophe Besson | 2026-09-08 | 1 | -0/+28 |
| * | feat(node): transfer leases, pools and a queue for downloads and uploads | Christophe Besson | 2026-09-08 | 1 | -0/+36 |
| * | fix(node): make max_concurrent_streams take effect without a restart | Christophe Besson | 2026-09-08 | 1 | -2/+7 |
| * | feat(chat): encrypt group chat under per-device epoch keys (MNP 2.0) | Christophe Besson | 2026-09-07 | 1 | -1/+248 |
| * | fix(node): remove --upload-dir rather than document it | Christophe Besson | 2026-09-07 | 1 | -10/+8 |
| * | fix(node): `root list` printed "?" for every path | Christophe Besson | 2026-09-06 | 1 | -1/+5 |
| * | feat(node): an upload lands in the folder it was sent to | Christophe Besson | 2026-09-06 | 1 | -2/+1 |
| * | fix(node): the MNP root path never reloaded, and my first repair made it worse | Christophe Besson | 2026-09-06 | 1 | -32/+18 |
| * | fix(node): adding a root reached node.toml but not the running node | Christophe Besson | 2026-09-06 | 1 | -1/+22 |
| * | fix(client): a successful root op must never blank the operator's table | Christophe Besson | 2026-09-06 | 1 | -2/+12 |
| * | feat(node): Phase 2 server side — one directory setting for every app | Christophe Besson | 2026-09-06 | 1 | -53/+148 |
| * | fix(groups): finish Phase 1 — MNP root management, upload targets, eject state | Christophe Besson | 2026-09-06 | 1 | -23/+24 |
| * | feat: groups refactor Phase 1 — root RO/RW model + shared directories UI | Christophe Besson | 2026-09-06 | 1 | -48/+245 |
| * | fix(node): make init, node.toml editing and CLI output work on Windows | Christophe Besson | 2026-09-04 | 1 | -3/+5 |
| * | fix(node): pin utf-8 (and LF) on every text file the node reads or writes | Christophe Besson | 2026-09-04 | 1 | -9/+9 |
| * | fix(node): an invitation the hub never registered is a code nobody can use | Christophe Besson | 2026-09-03 | 1 | -7/+28 |
| * | fix(node): CLI member invite now registers hub membership and enforces code | Christophe Besson | 2026-09-01 | 1 | -0/+8 |
| * | fix(node): make WebRTC STUN fallback actually use every configured server | Christophe Besson | 2026-09-01 | 1 | -0/+2 |
| * | feat: passphrase change and account recovery (auth-confirm) | Christophe Besson | 2026-09-01 | 1 | -0/+10 |
| * | feat(ui): configurable ICE interfaces in the Node page | Christophe Besson | 2026-08-30 | 1 | -5/+12 |
| * | feat: configurable STUN server fallbacks for WebRTC ICE | Christophe Besson | 2026-08-30 | 1 | -9/+46 |
| * | feat(node): editable node settings in the Node page (D5) | Christophe Besson | 2026-08-29 | 1 | -1/+114 |
| * | fix(node): correct TMDB movie matching, per-file overrides, rematch | Christophe Besson | 2026-08-29 | 1 | -0/+25 |
| * | feat: node workflow redesign — wizard auto-config, reset, MusicBrainz contact | Christophe Besson | 2026-08-29 | 1 | -17/+9 |
| * | feat(node): share the (path,size,mtime)->hash index cache across every group | Christophe Besson | 2026-08-26 | 1 | -0/+60 |
| * | feat: add Photos group app | Christophe Besson | 2026-08-25 | 1 | -0/+24 |
| * | feat(node): add audio_root, gate Music enrichment on it like video_root | Christophe Besson | 2026-08-24 | 1 | -8/+21 |
| * | feat(node): Music app node-side — indexing, MusicBrainz enrichment, protocol | Christophe Besson | 2026-08-24 | 1 | -0/+42 |
| * | fix(node,hub): HEVC transcode fallback, live-add progress, per-group TMDB toggle | Christophe Besson | 2026-08-24 | 1 | -14/+29 |
| * | feat(node,hub): add Videos group app (poster grid, flat list, TMDB metadata) | Christophe Besson | 2026-08-24 | 1 | -0/+62 |
| * | feat(node): persistent index cache, visible scan progress, adaptive reconcile... | Christophe Besson | 2026-08-23 | 1 | -1/+59 |
| * | feat(hub): split the group UI into a pluggable "applications" architecture | Christophe Besson | 2026-08-23 | 1 | -0/+19 |
| * | feat: unified group management, public groups, and activity-based sidebar | Christophe Besson | 2026-08-20 | 1 | -28/+66 |
| * | feat(node): full Node admin panel — CLI parity, hot-reload, group lifecycle | Christophe Besson | 2026-08-20 | 1 | -16/+201 |
| * | feat(ui): 11-point UI overhaul — tabs, transfers, settings, uploads | Christophe Besson | 2026-08-19 | 1 | -8/+20 |
| * | feat(node): several named roots per group, and one implementation per operation | Christophe Besson | 2026-08-18 | 1 | -0/+487 |