aboutsummaryrefslogtreecommitdiffstats
path: root/packages
Commit message (Expand)AuthorAgeFilesLines
* chore: release 0.2.00.2Christophe Besson2026-08-146-8/+8
* fix(node): an operator keeps their role when reconnectingChristophe Besson2026-08-141-1/+5
* feat!: identity keys per node — C4's blast radius drops to one operatorChristophe Besson2026-08-1415-276/+234
* perf(client): bundle KDF to 128 MB, and derive it once per sign-inChristophe Besson2026-08-144-11/+25
* feat(client): Argon2id for the keypair bundle, and remove the backup toggleChristophe Besson2026-08-148-96/+292
* feat(client): make the key backup a choice, and raise the passphrase floorChristophe Besson2026-08-146-11/+190
* test: prove a second browser works after pairingChristophe Besson2026-08-141-0/+16
* fix(client): recover identity keys from what the browser already hasChristophe Besson2026-08-141-0/+40
* fix(client): capture the challenge values before joining, not afterChristophe Besson2026-08-142-8/+100
* fix(client): refresh the token when the node says "not a member"Christophe Besson2026-08-145-13/+87
* fix(node): keep reading the hub socket while negotiating WebRTCChristophe Besson2026-08-142-11/+67
* fix(node): announce the node key in the challenge, and keep names in the rosterChristophe Besson2026-08-147-32/+105
* feat(node): operator surface — member list, invite, revoke, unpin over SSHChristophe Besson2026-08-147-14/+499
* feat(node)!: the node wraps the group key — closes H3 and M3Christophe Besson2026-08-1417-285/+2111
* test(node): allocate daemon test ports instead of hardcoding 28000Christophe Besson2026-08-141-3/+17
* feat(node): CLI for headless operators — status, ui, gek-initChristophe Besson2026-08-131-5/+124
* feat(node): keep the daemon alive when the hub rejects credentialsChristophe Besson2026-08-131-8/+22
* test: JS/Python transcript parity across the language boundaryChristophe Besson2026-08-131-0/+175
* feat(client): pin node identities on first use — closes 11.5.8Christophe Besson2026-08-132-0/+24
* fix(hub): require proof of possession on node announce — closes M8Christophe Besson2026-08-135-13/+232
* feat(quic): GEK proof and mutual authentication — closes C6Christophe Besson2026-08-133-8/+186
* refactor(quic): share the unified handshake authorizationChristophe Besson2026-08-132-25/+36
* feat(mnp): unified handshake with mutual authenticationChristophe Besson2026-08-137-123/+680
* fix: resource limits, signaling authz, node admin UI tokenChristophe Besson2026-08-137-32/+380
* fix: swarm privacy, revocation persistence, keystore KDF, audit integrityChristophe Besson2026-08-1314-66/+406
* fix(hub): authenticate node WebSocket registrationChristophe Besson2026-08-132-13/+256
* fix(node): group isolation, upload confinement, GEK seizure, admin challengeChristophe Besson2026-08-1311-155/+919
* fix(node)!: remove unauthenticated HTTP file API and TCP transportChristophe Besson2026-08-1312-1346/+45
* feat: Phase 12 — P2P crypto material, password split, node Ed25519 authChristophe Besson2026-08-1329-772/+3378
* feat(node): audit logging + local admin UI rewriteChristophe Besson2026-08-115-133/+705
* feat(node): index push to WebRTC peers + swarm registration (11.5, 11.9)Christophe Besson2026-08-113-2/+173
* feat(node): Phase 11 — production-ready daemon with WebRTC, WS, chat, HTTPChristophe Besson2026-08-114-29/+376
* fix(ui): reduce upload chunk size to 48KB to fit aiortc SCTP limitChristophe Besson2026-08-111-1/+1
* fix(ui): set MediaSource duration from ffprobe and clamp seeks to buffered rangeChristophe Besson2026-08-111-5/+23
* fix(ui): remove duplicate connecting messages and buggy stream progress barChristophe Besson2026-08-112-52/+4
* feat: Phase 10c — MSE video streaming (real-time playback)Christophe Besson2026-08-117-52/+373
* fix(hub): move _handle_chat_notify before @router.websocket decoratorChristophe Besson2026-08-111-1/+1
* feat: chat notifications via hub, file delete, upload fix, cached display, in...Christophe Besson2026-08-112-0/+48
* fix(ui): upload chunk size, cached file display, chat names, file delete, inl...Christophe Besson2026-08-117-26/+179
* fix(node): iterate dict copies in WebRTC peer broadcast and close_allChristophe Besson2026-08-111-2/+2
* fix(ui): group creation error, chat UUIDs, file preview, action menuChristophe Besson2026-08-115-53/+428
* feat: Phase 10b — Self-service UI (group create/join, upload, IndexedDB, se...Christophe Besson2026-08-1110-11/+888
* feat(hub): Phase 10.5–10.8, 10.10 — notifications, settings, search, versionChristophe Besson2026-08-1110-18/+520
* feat(hub): Phase 10.1–10.4 — Site overlay + admin/moderation UIChristophe Besson2026-08-1110-17/+1205
* feat: Phase 9 — Web client SPA with WebRTC P2P transportChristophe Besson2026-08-1124-301/+2905
* feat: Phase 9.1–9.5 — WebRTC DataChannel transport for browser P2PChristophe Besson2026-08-1012-4/+1586
* feat(hub): Phase 8 — Hub v2 security hardening + production readinessChristophe Besson2026-08-1019-85/+502
* feat: Phase 7 — Node v2 (multi-group, Sender Keys, 0-RTT, chat, denylist)Christophe Besson2026-08-1022-73/+1620
* feat(node): punch_nat() — NAT traversal from QUIC server socketChristophe Besson2026-08-101-0/+16
* fix(node): QuicChunkClient local_port + QuicChunkServer dual-stackChristophe Besson2026-08-102-8/+11