| Commit message (Expand) | Author | Age | Files | Lines |
| * | fix(node): the reaper deletes only the .part files the node wrote | Christophe Besson | 12 hours | 1 | -1/+3 |
| * | fix(node): a revoked account is disconnected, not only refused next time | Christophe Besson | 12 hours | 1 | -2/+3 |
| * | fix: an MBK2 bundle is opened once and stored again as MBK3 | Christophe Besson | 12 hours | 2 | -23/+36 |
| * | docs: chat at rest is protected from a copy without the unlock key, not from ... | Christophe Besson | 13 hours | 2 | -5/+20 |
| * | fix: downloads are marked and keep their extension; Explorer files are refused | Christophe Besson | 13 hours | 1 | -11/+36 |
| * | fix(node): one member holds a share of the node, sized past real use | Christophe Besson | 14 hours | 2 | -7/+17 |
| * | fix(node): an upload never replaces a file, nor shares a part with another | Christophe Besson | 15 hours | 1 | -1/+8 |
| * | fix(node): link previews connect to the address they checked, without blocking | Christophe Besson | 15 hours | 1 | -5/+9 |
| * | fix(node): how a hosted group admits people is the operator's, not the hub's | Christophe Besson | 15 hours | 2 | -1/+7 |
| * | docs: state the pepper's proof, signing by kind and device retirement as they... | Christophe Besson | 28 hours | 2 | -8/+40 |
| * | docs: state the pepper, MBK3, the desktop keyring and browser access as they are | Christophe Besson | 32 hours | 4 | -104/+284 |
| * | chore: bump version to 0.17.0, and the client minimum with it | Christophe Besson | 34 hours | 1 | -1/+1 |
| * | fix(hub): a downloaded file opens in a tab only under a type that runs nothing | Christophe Besson | 36 hours | 2 | -0/+13 |
| * | fix: the page connects to its own origin and reCAPTCHA, nowhere else | Christophe Besson | 36 hours | 1 | -1/+1 |
| * | fix(client): the page names node operations, and the app confirms what widens... | Christophe Besson | 36 hours | 2 | -2/+26 |
| * | fix(hub): the admin allow-list grants an account, not a username | Christophe Besson | 36 hours | 1 | -0/+11 |
| * | docs: state hosting, invitations, the roster check and link previews as they are | Christophe Besson | 37 hours | 2 | -22/+31 |
| * | fix(node): the roster, not the key alone, decides who gets a session | Christophe Besson | 37 hours | 2 | -3/+14 |
| * | fix: only the owner decides who hosts a group, and nobody is made a member un... | Christophe Besson | 37 hours | 3 | -11/+50 |
| * | fix: a member can no longer lock a node, crash it with a link, or stop hub cl... | Christophe Besson | 38 hours | 2 | -4/+6 |
| * | refactor(hub): remove the closed relay registry | Christophe Besson | 3 days | 1 | -2/+1 |
| * | refactor(node): remove five loopback routes nothing called | Christophe Besson | 3 days | 2 | -1/+6 |
| * | docs: keypair_bundle_delete is reserved for device_policy (O3) | Christophe Besson | 3 days | 2 | -1/+6 |
| * | refactor: drop the unread transfer_limits field from the handshake ack | Christophe Besson | 3 days | 1 | -6/+5 |
| * | feat(client): save files under a name every platform can write | Christophe Besson | 3 days | 1 | -0/+9 |
| * | feat(hub): reports from public-group members, decided by an administrator | Christophe Besson | 3 days | 1 | -15/+35 |
| * | feat: nodes apply the content blocklist in their public groups | Christophe Besson | 3 days | 2 | -2/+34 |
| * | refactor: remove the public-content swarm | Christophe Besson | 3 days | 1 | -7/+7 |
| * | fix: bound pending admin challenges and sign every value an op acts on | Christophe Besson | 3 days | 2 | -22/+54 |
| * | refactor: remove dead code across packages | Christophe Besson | 3 days | 3 | -13/+4 |
| * | refactor: remove the unused GroupIndex.serialize chain | Christophe Besson | 3 days | 2 | -30/+21 |
| * | fix: refuse an unsigned handshake challenge | Christophe Besson | 3 days | 2 | -10/+9 |
| * | docs: bring the design and protocol documents in line with the code | Christophe Besson | 3 days | 2 | -71/+146 |
| * | fix(hub): say so when a lazily loaded view cannot be fetched0.16 | Christophe Besson | 4 days | 1 | -1/+6 |
| * | feat(hub): keep a show's detail modal open under the player | Christophe Besson | 4 days | 2 | -0/+11 |
| * | docs: the Windows node's three modes and one lifecycle, and what it cost | Christophe Besson | 4 days | 2 | -6/+27 |
| * | fix(node,client): query TMDB only once a language is chosen, in that language | Christophe Besson | 5 days | 1 | -0/+22 |
| * | fix(hub): the NAT-punch signal needs a shared active group, like the offer relay | Christophe Besson | 6 days | 1 | -1/+4 |
| * | docs(design): state the node-bound MNP token as a rule, not an incident | Christophe Besson | 6 days | 1 | -13/+12 |
| * | feat(protocol): bind the MNP token to the node it is for (E10) | Christophe Besson | 6 days | 2 | -1/+14 |
| * | feat(protocol): MNP 4.0 flag day for the node-audience token (B2) | Christophe Besson | 6 days | 2 | -2/+32 |
| * | feat: invitation links no longer bound to an e-mail address | Christophe Besson | 6 days | 4 | -46/+63 |
| * | chore: bump version to 0.16.0 | Christophe Besson | 6 days | 1 | -1/+1 |
| * | refactor(client): split transport.js into classic scripts | Christophe Besson | 7 days | 1 | -1/+1 |
| * | feat(client): fetch the media apps, the player, settings and search on first use | Christophe Besson | 7 days | 1 | -1/+6 |
| * | refactor(node): split ops.py into the ops package | Christophe Besson | 7 days | 3 | -11/+11 |
| * | refactor(node): move _dispatch_message out of webrtc_server, unchanged | Christophe Besson | 7 days | 1 | -1/+1 |
| * | refactor(node): move the session core out of webrtc_server | Christophe Besson | 7 days | 2 | -6/+7 |
| * | refactor(node): move the operator's node controls out of webrtc_server | Christophe Besson | 7 days | 1 | -1/+1 |
| * | refactor(node): move the MNP handshake out of webrtc_server | Christophe Besson | 7 days | 1 | -1/+1 |