aboutsummaryrefslogtreecommitdiffstats
Commit message (Expand)AuthorAgeFilesLines
* docs: state the pepper's proof, signing by kind and device retirement as they...Christophe Besson24 hours2-8/+40
* fix: an identity signs a named kind, and a device approval answers a requestChristophe Besson24 hours17-66/+636
* fix(hub): the pepper and a device key take the passphrase, not a tokenChristophe Besson24 hours9-39/+134
* docs: state the pepper, MBK3, the desktop keyring and browser access as they areChristophe Besson28 hours5-109/+291
* feat: browser access, decided in the desktop applicationChristophe Besson28 hours19-5/+231
* feat(client): the desktop application keeps M and every node identity in its ...Christophe Besson28 hours25-59/+873
* refactor(hub): the transport holds an identity, never a private keyChristophe Besson29 hours13-99/+140
* chore: bump version to 0.17.0, and the client minimum with itChristophe Besson30 hours9-10/+14
* feat: bundles sealed per node under the passphrase and the hub's pepperChristophe Besson30 hours30-479/+682
* feat(hub): a bundle pepper per account, handed only to a proven sessionChristophe Besson31 hours5-0/+283
* fix(hub): a downloaded file opens in a tab only under a type that runs nothingChristophe Besson32 hours7-24/+124
* fix: the page connects to its own origin and reCAPTCHA, nowhere elseChristophe Besson32 hours4-10/+21
* fix(client): the page names node operations, and the app confirms what widens...Christophe Besson32 hours25-193/+574
* fix(hub): the admin allow-list grants an account, not a usernameChristophe Besson33 hours7-19/+284
* docs: state hosting, invitations, the roster check and link previews as they areChristophe Besson33 hours2-22/+31
* fix(node): the roster, not the key alone, decides who gets a sessionChristophe Besson33 hours6-21/+200
* fix: only the owner decides who hosts a group, and nobody is made a member un...Christophe Besson33 hours44-95/+1573
* fix: a member can no longer lock a node, crash it with a link, or stop hub cl...Christophe Besson34 hours8-88/+490
* feat(hub): search title, description, canonical and noscript in the shellChristophe Besson35 hours3-4/+67
* feat(hub): sitemap.xml, named by robots.txtChristophe Besson35 hours3-1/+37
* refactor(hub): remove the closed relay registryChristophe Besson3 days6-262/+2
* refactor(node): remove five loopback routes nothing calledChristophe Besson3 days3-46/+6
* docs: keypair_bundle_delete is reserved for device_policy (O3)Christophe Besson3 days3-1/+10
* refactor: drop the unread transfer_limits field from the handshake ackChristophe Besson3 days4-41/+22
* feat(client): save files under a name every platform can writeChristophe Besson3 days19-7/+245
* feat(hub): reports from public-group members, decided by an administratorChristophe Besson3 days22-128/+943
* feat: nodes apply the content blocklist in their public groupsChristophe Besson3 days17-57/+661
* refactor: remove the public-content swarmChristophe Besson3 days12-336/+64
* fix: bound pending admin challenges and sign every value an op acts onChristophe Besson3 days18-132/+594
* refactor: remove dead code across packagesChristophe Besson3 days26-797/+14
* refactor: remove the unused GroupIndex.serialize chainChristophe Besson3 days15-420/+63
* fix: refuse an unsigned handshake challengeChristophe Besson3 days6-52/+44
* docs: bring the design and protocol documents in line with the codeChristophe Besson3 days3-72/+146
* feat(hub): new login tagline, dimmer gradient topChristophe Besson3 days11-11/+11
* fix(hub): say so when a lazily loaded view cannot be fetched0.16Christophe Besson3 days17-6/+284
* feat(hub): keep a show's detail modal open under the playerChristophe Besson3 days9-4/+385
* fix(node): tell whether a pid is alive on Linux tooChristophe Besson4 days1-0/+8
* docs: the Windows node's three modes and one lifecycle, and what it costChristophe Besson4 days4-18/+151
* test: make both suites pass on WindowsChristophe Besson4 days85-266/+293
* fix(hub): the sidebar's Node section follows the node linkChristophe Besson4 days3-8/+90
* fix(hub): say "No operator paired" only when the node says soChristophe Besson4 days2-4/+60
* fix: Windows installer and desktop app start and stop the node one wayChristophe Besson4 days18-250/+927
* fix(node): a Windows daemon that stops properly, starts honestly and runs onceChristophe Besson4 days10-215/+948
* fix(hub): depend on sqlalchemy[asyncio]Christophe Besson4 days1-1/+1
* fix(hub): rate-limit per client, not per proxyChristophe Besson4 days2-3/+55
* chore: store text files with LF whatever the checkout's autocrlfChristophe Besson4 days1-0/+13
* fix(node,client): query TMDB only once a language is chosen, in that languageChristophe Besson5 days9-1/+300
* fix(node): read the packaged TMDB token in placeChristophe Besson5 days6-84/+69
* feat(hub): default email opt-outs and match Register to Login stylingChristophe Besson5 days4-16/+37
* fix(hub): the NAT-punch signal needs a shared active group, like the offer relayChristophe Besson6 days4-53/+140