| Commit message (Expand) | Author | Age | Files | Lines |
| * | docs: state hosting, invitations, the roster check and link previews as they are | Christophe Besson | 14 hours | 1 | -4/+6 |
| * | fix(node): the roster, not the key alone, decides who gets a session | Christophe Besson | 14 hours | 1 | -3/+6 |
| * | fix: only the owner decides who hosts a group, and nobody is made a member un... | Christophe Besson | 14 hours | 1 | -2/+4 |
| * | fix: a member can no longer lock a node, crash it with a link, or stop hub cl... | Christophe Besson | 14 hours | 1 | -3/+3 |
| * | refactor(node): remove five loopback routes nothing called | Christophe Besson | 2 days | 1 | -0/+5 |
| * | docs: keypair_bundle_delete is reserved for device_policy (O3) | Christophe Besson | 2 days | 1 | -0/+4 |
| * | refactor: drop the unread transfer_limits field from the handshake ack | Christophe Besson | 2 days | 1 | -6/+5 |
| * | feat: nodes apply the content blocklist in their public groups | Christophe Besson | 2 days | 1 | -0/+6 |
| * | fix: bound pending admin challenges and sign every value an op acts on | Christophe Besson | 2 days | 1 | -15/+37 |
| * | refactor: remove dead code across packages | Christophe Besson | 2 days | 1 | -2/+0 |
| * | refactor: remove the unused GroupIndex.serialize chain | Christophe Besson | 2 days | 1 | -21/+13 |
| * | fix: refuse an unsigned handshake challenge | Christophe Besson | 2 days | 1 | -7/+6 |
| * | docs: bring the design and protocol documents in line with the code | Christophe Besson | 3 days | 1 | -45/+98 |
| * | feat(protocol): bind the MNP token to the node it is for (E10) | Christophe Besson | 5 days | 1 | -0/+1 |
| * | feat(protocol): MNP 4.0 flag day for the node-audience token (B2) | Christophe Besson | 5 days | 1 | -1/+2 |
| * | feat: invitation links no longer bound to an e-mail address | Christophe Besson | 5 days | 1 | -4/+5 |
| * | refactor(node): split ops.py into the ops package | Christophe Besson | 6 days | 1 | -4/+4 |
| * | refactor(node): move _dispatch_message out of webrtc_server, unchanged | Christophe Besson | 6 days | 1 | -1/+1 |
| * | refactor(node): move the session core out of webrtc_server | Christophe Besson | 6 days | 1 | -5/+6 |
| * | refactor(node): move invitations, joins and device linking out of webrtc_server | Christophe Besson | 6 days | 1 | -1/+1 |
| * | refactor(node): move uploads out of webrtc_server | Christophe Besson | 6 days | 1 | -1/+1 |
| * | refactor(node): move transfer slots and leases out of webrtc_server | Christophe Besson | 6 days | 1 | -1/+1 |
| * | refactor(node): move file browsing and folder/file ops out of webrtc_server | Christophe Besson | 6 days | 1 | -2/+2 |
| * | refactor(node): move group chat out of webrtc_server | Christophe Besson | 6 days | 1 | -1/+1 |
| * | refactor(node): move video streaming out of webrtc_server | Christophe Besson | 6 days | 1 | -3/+3 |
| * | refactor(node): move framing, shared limits and ffmpeg jobs out of webrtc_server | Christophe Besson | 6 days | 1 | -3/+3 |
| * | docs: qualify what an invitation link changes about the code | Christophe Besson | 7 days | 1 | -0/+5 |
| * | docs: drop the invitation-link plan from the tree | Christophe Besson | 7 days | 1 | -1/+1 |
| * | feat(node): invitation links — a code bound to no account until redeemed | Christophe Besson | 7 days | 1 | -5/+36 |
| * | feat: the node signs its handshake challenge (MNP 3.4) | Christophe Besson | 7 days | 1 | -9/+40 |
| * | feat(node): per-file upload ceiling is an operator setting, default 8 GB | Christophe Besson | 12 days | 1 | -3/+3 |
| * | docs: state what is built, and what the packaged install has answered | Christophe Besson | 12 days | 1 | -1/+1 |
| * | fix(node): measure where a seek lands instead of predicting it | Christophe Besson | 13 days | 1 | -1/+1 |
| * | fix(node): a seek reports where the picture begins, not where it was asked | Christophe Besson | 13 days | 1 | -1/+1 |
| * | feat: embedded subtitles in the video player (MNP 3.3) | Christophe Besson | 13 days | 1 | -3/+11 |
| * | fix(node): a seek left the audio a GOP behind the picture | Christophe Besson | 14 days | 1 | -1/+4 |
| * | feat: let the viewer pick the audio track | Christophe Besson | 14 days | 1 | -8/+26 |
| * | playlists: drive the blob ops over a real DataChannel | Christophe Besson | 2026-09-16 | 1 | -0/+6 |
| * | mnp 3.1: per-account blobs the node cannot read | Christophe Besson | 2026-09-16 | 1 | -4/+48 |
| * | feat: a group can be left out of Search, and Search tries every node | Christophe Besson | 2026-09-14 | 1 | -0/+3 |
| * | fix: an empty group claim is a claim on nothing | Christophe Besson | 2026-09-12 | 1 | -1/+9 |
| * | docs(mnp): the protocol reference, brought to the cleanup push | Christophe Besson | 2026-09-10 | 1 | -0/+2197 |