aboutsummaryrefslogtreecommitdiffstats
Commit message (Expand)AuthorAgeFilesLines
* test: make both suites pass on WindowsChristophe Besson10 hours85-266/+293
* fix(hub): the sidebar's Node section follows the node linkChristophe Besson10 hours3-8/+90
* fix(hub): say "No operator paired" only when the node says soChristophe Besson10 hours2-4/+60
* fix: Windows installer and desktop app start and stop the node one wayChristophe Besson10 hours18-250/+927
* fix(node): a Windows daemon that stops properly, starts honestly and runs onceChristophe Besson10 hours10-215/+948
* fix(hub): depend on sqlalchemy[asyncio]Christophe Besson10 hours1-1/+1
* fix(hub): rate-limit per client, not per proxyChristophe Besson10 hours2-3/+55
* chore: store text files with LF whatever the checkout's autocrlfChristophe Besson10 hours1-0/+13
* fix(node,client): query TMDB only once a language is chosen, in that languageChristophe Besson42 hours9-1/+300
* fix(node): read the packaged TMDB token in placeChristophe Besson44 hours6-84/+69
* feat(hub): default email opt-outs and match Register to Login stylingChristophe Besson46 hours4-16/+37
* fix(hub): the NAT-punch signal needs a shared active group, like the offer relayChristophe Besson2 days4-53/+140
* docs(design): state the node-bound MNP token as a rule, not an incidentChristophe Besson2 days1-13/+12
* feat(protocol): bind the MNP token to the node it is for (E10)Christophe Besson2 days13-14/+114
* fix(node,client): survive a transient hub state on login, and surface a faile...Christophe Besson3 days3-5/+135
* feat(protocol): MNP 4.0 flag day for the node-audience token (B2)Christophe Besson3 days7-72/+118
* fix(hub): present a node-audience token in the handshake, not the hub session...Christophe Besson3 days15-38/+284
* fix(hub): require the passphrase to change the e-mail on fileChristophe Besson3 days4-12/+110
* fix(hub): make group revoke admin-only and route it through the broadcasting ...Christophe Besson3 days2-0/+206
* fix(hub): require exp, sub and a known scope when decoding access tokensChristophe Besson3 days2-2/+140
* fix(hub): refuse node-scoped tokens on the admin and moderator APIChristophe Besson3 days2-5/+192
* feat: invitation links no longer bound to an e-mail addressChristophe Besson3 days31-205/+317
* feat(hub): friendlier welcome page, link previews, robots.txt and faviconChristophe Besson3 days23-177/+605
* chore: bump version to 0.16.00.16Christophe Besson3 days8-8/+8
* docs(readme): the repository itself is published read-only, not a mirrorChristophe Besson3 days1-1/+1
* docs: add a README at the repository rootChristophe Besson3 days2-1/+68
* refactor(client): split transport.js into classic scriptsChristophe Besson3 days14-2147/+2234
* test(hub): read the transport wherever it is splitChristophe Besson3 days27-36/+118
* docs(claude): translate the remaining French passages into EnglishChristophe Besson3 days1-12/+12
* docs(claude): translate the Python environment section into EnglishChristophe Besson3 days1-19/+19
* feat(client): fetch the media apps, the player, settings and search on first useChristophe Besson3 days8-17/+160
* refactor(client): move the connection pool and the media tiles to modulesChristophe Besson3 days7-369/+392
* test(hub): read the search code wherever it is splitChristophe Besson3 days8-9/+50
* refactor(node): split ops.py into the ops packageChristophe Besson3 days20-2073/+2298
* test(node): read ops wherever it is splitChristophe Besson3 days4-10/+44
* refactor(node): move per-app enrichment out of NodeDaemonChristophe Besson4 days8-297/+308
* refactor(node): move the CLI out of daemon.py into cli/Christophe Besson4 days18-1428/+1601
* test(node): record what every CLI verb printsChristophe Besson4 days2-0/+1001
* test(node): keep the CLI dispatch test off the developer's nodeChristophe Besson4 days1-0/+8
* test(node): read the daemon's source wherever it is splitChristophe Besson4 days9-59/+138
* fix(node): Peers tab answered 500 after the webrtc splitChristophe Besson4 days3-1/+70
* refactor(node): run signed operations through a table of executorsChristophe Besson4 days1-85/+37
* refactor(node): dispatch MNP messages through a tableChristophe Besson4 days4-197/+167
* test(node): the dispatch golden covers a type field that is not a stringChristophe Besson4 days2-0/+258
* refactor(node): move _dispatch_message out of webrtc_server, unchangedChristophe Besson4 days5-246/+256
* refactor(node): move the session core out of webrtc_serverChristophe Besson4 days6-330/+351
* refactor(node): move operator authority and the admin response out of webrtc_...Christophe Besson4 days3-309/+320
* refactor(node): move the operator's group controls out of webrtc_serverChristophe Besson4 days4-369/+384
* refactor(node): move the operator's node controls out of webrtc_serverChristophe Besson4 days3-564/+589
* refactor(node): section headers follow the code they introduceChristophe Besson4 days3-21/+16