summaryrefslogtreecommitdiffstats
Commit message (Expand)AuthorAgeFilesLines
...
| * fix(hub): keep the download worker alive, and never hang on a dead sinkChristophe Besson2026-09-084-7/+238
| * fix(hub): let this origin frame its own download URLChristophe Besson2026-09-083-6/+111
| * feat(node): make the transfer caps settable, node-wide and per groupChristophe Besson2026-09-0821-3/+470
| * feat(node): transfer leases, pools and a queue for downloads and uploadsChristophe Besson2026-09-087-1/+1264
| * fix(node): make max_concurrent_streams take effect without a restartChristophe Besson2026-09-083-5/+222
| * test(node): close the eleven failures, and the order-dependence behind sevenChristophe Besson2026-09-084-3/+47
| * feat(node): cap the media cache and evict least-recently-used entriesChristophe Besson2026-09-082-5/+270
| * fix(client): write a download to .part and rename it when it completesChristophe Besson2026-09-081-4/+36
| * test(hub): stop the Chrome profile cleanup racing its own childrenChristophe Besson2026-09-085-5/+50
| * fix(hub): never collect a large download in the pageChristophe Besson2026-09-0814-16/+395
| * fix(hub): make the streamed download path reliable, and clean up after an abortChristophe Besson2026-09-085-42/+465
|/
* chore: bump all packages to 0.12.0Christophe Besson2026-09-086-6/+6
* feat(client): create the system tray at launch, not on first minimiseChristophe Besson2026-09-086-25/+158
* fix(hub): drop the flag emoji from the language menuChristophe Besson2026-09-082-11/+18
* feat(hub): name a group's host on its card, not its visibilityChristophe Besson2026-09-083-7/+21
* feat(hub): collapse "Your devices on this node" by defaultChristophe Besson2026-09-081-3/+8
* feat(hub): cap a directory zip at 512 MBChristophe Besson2026-09-0813-6/+162
* fix(hub): stop badging every poster "unmatched" when TMDB is offChristophe Besson2026-09-082-7/+75
* fix(chat): the operator was missing from the roster they hostChristophe Besson2026-09-072-9/+102
* feat(chat): Tier 2 — a member verifies another member's device itselfChristophe Besson2026-09-0722-41/+929
* docs(chat): correct the claim that two devices never share a keyChristophe Besson2026-09-071-4/+17
* Merge origin/main into the chat encryption workChristophe Besson2026-09-0725-606/+1747
|\
| * feat(mnp)!: seal the upload under the group keyChristophe Besson2026-09-0715-168/+1040
| * refactor(mnp)!: remove stream_seg, the last unencrypted content messageChristophe Besson2026-09-079-225/+53
| * fix(mnp): give a reply an id, so it stops being routed by luckChristophe Besson2026-09-078-105/+521
* | feat(chat): encrypt group chat under per-device epoch keys (MNP 2.0)Christophe Besson2026-09-0744-203/+4570
|/
* fix(client): break the Wayland ready-to-show deadlockChristophe Besson2026-09-071-0/+10
* Merge branch 'refactor/groups-phase1'Christophe Besson2026-09-0784-1788/+9504
|\
| * fix(node): carry enrichment across a rescan instead of re-deriving itChristophe Besson2026-09-072-90/+232
| * fix(node): a replugged root came back without its metadataChristophe Besson2026-09-073-0/+261
| * test(hub): the folder-name test was reading the ".." rowChristophe Besson2026-09-071-3/+11
| * fix(client): drop the "No changes to save" hint beside SaveChristophe Besson2026-09-0716-40/+1
| * fix(client): Save in the app panes was invisible, and Chat's never landedChristophe Besson2026-09-0718-23/+174
| * fix(node): remove --upload-dir rather than document itChristophe Besson2026-09-077-53/+64
| * chore(node): finish Phase 3 — CLI deprecations, Windows shapes, docsChristophe Besson2026-09-075-5/+298
| * feat(client): HelloWorld, the reference applicationChristophe Besson2026-09-0722-16/+425
| * fix(client): report a directory result under the button that caused itChristophe Besson2026-09-072-9/+65
| * fix(client): New folder did nothing — prompt() throws in the desktop clientChristophe Besson2026-09-0714-22/+192
| * feat(client): bring back New folder, icon-only — and close the hole it openedChristophe Besson2026-09-065-1/+115
| * fix: a root change reaches every client without a page reloadChristophe Besson2026-09-066-9/+169
| * fix(node): `root list` printed "?" for every pathChristophe Besson2026-09-064-8/+147
| * feat(node): an upload lands in the folder it was sent toChristophe Besson2026-09-0612-84/+156
| * fix(node): the MNP root path never reloaded, and my first repair made it worseChristophe Besson2026-09-063-96/+277
| * fix(node): adding a root reached node.toml but not the running nodeChristophe Besson2026-09-062-1/+214
| * fix(client): the folder picker had no background, and its field no layoutChristophe Besson2026-09-0613-29/+201
| * docs(groups): the upload-policy migration is not optional after allChristophe Besson2026-09-061-2/+15
| * fix(client): degrade against a node still speaking MNP 1.0Christophe Besson2026-09-0616-6/+288
| * fix(client): a successful root op must never blank the operator's tableChristophe Besson2026-09-063-3/+104
| * feat(client): Phase 2 — per-app settings panes, folder tree, multi-directoryChristophe Besson2026-09-0634-647/+1861
| * feat(node): Phase 2 server side — one directory setting for every appChristophe Besson2026-09-0614-173/+875