| Commit message (Expand) | Author | Age | Files | Lines |
| * | feat(hub): say "N groups unreachable" on Search for a few seconds, not for goodHEAD0.18main | Christophe Besson | 7 hours | 4 | -33/+41 |
| * | feat: copy a file's or folder's #/name@owner link from Files, Music, Photos a... | Christophe Besson | 8 hours | 19 | -20/+198 |
| * | feat: open a group, a folder or a file from a #/name@owner link | Christophe Besson | 9 hours | 15 | -11/+202 |
| * | fix: list as members only the accounts the node has admitted | Christophe Besson | 9 hours | 12 | -4/+53 |
| * | feat: move the desktop client's Hub section from Settings to Profile | Christophe Besson | 10 hours | 12 | -35/+35 |
| * | docs: generate an HTTP API listing for the hub and the node control API | Christophe Besson | 10 hours | 11 | -1/+12 |
| * | feat: prefill https://meshbay.org on the desktop client's hub screen | Christophe Besson | 11 hours | 12 | -15/+4 |
| * | fix: read the node token per call and detect before polling the index dock | Christophe Besson | 11 hours | 1 | -0/+10 |
| * | chore: license MeshBay — LGPL protocol layer, AGPL for the rest | Christophe Besson | 11 hours | 21 | -0/+1887 |
| * | feat(cast): music on the TV, the music bar as its remote | Christophe Besson | 18 hours | 6 | -32/+270 |
| * | feat(cast): photos on the TV, and a television chosen once for the session | Christophe Besson | 19 hours | 16 | -16/+310 |
| * | fix(hub): music keep-alive outlasts a skipped track | Christophe Besson | 21 hours | 1 | -7/+15 |
| * | feat(android): music keeps playing with the screen off | Christophe Besson | 22 hours | 2 | -0/+20 |
| * | fix(hub): music player retries a track lost to a screen-off disconnect | Christophe Besson | 22 hours | 1 | -3/+60 |
| * | fix(android): music player starts on its own and no longer shows autoplay ref... | Christophe Besson | 22 hours | 1 | -1/+4 |
| * | Player: redesigned cast remote | Christophe Besson | 2 days | 13 | -72/+253 |
| * | Player: remote control while casting | Christophe Besson | 2 days | 12 | -7/+248 |
| * | Cast: receiver position and pause/play on both clients | Christophe Besson | 2 days | 1 | -0/+13 |
| * | fix(client): the local player is silent while casting | Christophe Besson | 2 days | 1 | -0/+18 |
| * | fix(client): a seek's first segments are held while it lands, not dropped | Christophe Besson | 2 days | 1 | -1/+36 |
| * | fix(client): a download written to disk no longer holds the whole file | Christophe Besson | 2 days | 1 | -0/+4 |
| * | fix(client): the node setup welcome is for a build that has a node | Christophe Besson | 2 days | 1 | -1/+4 |
| * | refactor(mnp): remove ten operator messages no client sent0.17 | Christophe Besson | 3 days | 3 | -78/+2 |
| * | fix(client): no confirmation dialog for adding a folder or its flags | Christophe Besson | 3 days | 11 | -23/+2 |
| * | feat(mnp): sharing a folder is decided on the node's machine only (MNP 6.0) | Christophe Besson | 3 days | 16 | -171/+90 |
| * | feat(client): list cast receivers as they answer | Christophe Besson | 3 days | 2 | -15/+47 |
| * | fix(client): rotating a group key asks nothing | Christophe Besson | 4 days | 11 | -12/+0 |
| * | fix(client): hosting a group asks nothing when its folder came from the picker | Christophe Besson | 4 days | 10 | -10/+0 |
| * | fix(client): the audit export never hands a spreadsheet a formula | Christophe Besson | 4 days | 2 | -5/+16 |
| * | chore: remove a spike page served in production and an unused derivation | Christophe Besson | 4 days | 1 | -265/+0 |
| * | fix: an MBK2 bundle is opened once and stored again as MBK3 | Christophe Besson | 4 days | 3 | -4/+104 |
| * | fix: downloads are marked and keep their extension; Explorer files are refused | Christophe Besson | 4 days | 1 | -1/+6 |
| * | fix(hub): a stranger who knows your name locks only browsers you never used | Christophe Besson | 4 days | 1 | -1/+25 |
| * | fix(hub): a group name fits its column and carries no control characters | Christophe Besson | 4 days | 1 | -2/+2 |
| * | fix(node): how a hosted group admits people is the operator's, not the hub's | Christophe Besson | 4 days | 1 | -0/+3 |
| * | fix: an identity signs a named kind, and a device approval answers a request | Christophe Besson | 5 days | 5 | -32/+99 |
| * | fix(hub): the pepper and a device key take the passphrase, not a token | Christophe Besson | 5 days | 4 | -16/+32 |
| * | feat: browser access, decided in the desktop application | Christophe Besson | 5 days | 16 | -5/+189 |
| * | feat(client): the desktop application keeps M and every node identity in its ... | Christophe Besson | 5 days | 19 | -59/+270 |
| * | refactor(hub): the transport holds an identity, never a private key | Christophe Besson | 5 days | 10 | -96/+87 |
| * | feat: bundles sealed per node under the passphrase and the hub's pepper | Christophe Besson | 5 days | 19 | -197/+273 |
| * | fix(hub): a downloaded file opens in a tab only under a type that runs nothing | Christophe Besson | 5 days | 3 | -20/+56 |
| * | fix(client): the page names node operations, and the app confirms what widens... | Christophe Besson | 5 days | 16 | -92/+149 |
| * | fix: only the owner decides who hosts a group, and nobody is made a member un... | Christophe Besson | 5 days | 13 | -2/+335 |
| * | feat(hub): sitemap.xml, named by robots.txt | Christophe Besson | 5 days | 2 | -0/+22 |
| * | docs: keypair_bundle_delete is reserved for device_policy (O3) | Christophe Besson | 7 days | 1 | -0/+4 |
| * | refactor: drop the unread transfer_limits field from the handshake ack | Christophe Besson | 7 days | 1 | -9/+0 |
| * | feat(client): save files under a name every platform can write | Christophe Besson | 7 days | 15 | -6/+113 |
| * | feat(hub): reports from public-group members, decided by an administrator | Christophe Besson | 7 days | 15 | -5/+435 |
| * | fix: bound pending admin challenges and sign every value an op acts on | Christophe Besson | 7 days | 4 | -15/+62 |