Commit Graph
60 Commits
Author SHA1 Message Date
AAA 00c205edbe fix(route): converge direct paths without disrupting media 2026-08-26 03:25:40 +08:00
AAA f87c2ba0ed fix(route): preserve media while converging direct paths 2026-08-26 01:21:34 +08:00
AAA d52f1b950b feat(rooms): prefer the last available room code 2026-08-25 23:35:15 +08:00
AAA c6d6655887 fix(media): stabilize reconnect and startup quality (#266)
* fix(media): scope viewer reconnect

* fix(media): serialize peer recovery

* fix(media): apply peer profile when connected

* fix(viewer): preserve unaffected route presentation

* fix(media): default game sharing to fluid

* fix(media): initialize peer quality before offer

* fix(media): seed peer startup bitrate

* fix(media): defer adaptive scaling until startup

* docs(media): record startup adaptation matrix
2026-08-25 23:08:34 +08:00
AAA 7727054581 fix(media): align quality presets (#264)
* fix(media): default screen audio to saver

* fix(media): align screen audio tiers
2026-08-25 19:09:43 +08:00
AAA 684e4d1d15 fix(media): stabilize current route presentation (#263) 2026-08-25 18:36:54 +08:00
AAA d9cdb55cfc feat(rooms): finish Browser v12 room and UI controls
* feat(rooms): simplify code entry

* fix(host): clarify room entry labels

* docs(rooms): decouple access management from sharing

* feat(host): streamline room and quality controls

* docs(rooms): define private code entry

* feat(rooms): support private invitation-only entry

* docs(ui): unify viewer connection details

* feat(ui): unify viewer connection details

* docs(todo): queue product UI polish

* docs(route): settle local observation boundaries

* docs(rooms): align private entry truth
2026-08-25 01:50:57 +08:00
AAA cf4987c3c7 feat(browser): implement room v12 and exact audio stats 2026-08-24 22:29:56 +08:00
AAA b662ece099 refactor(browser): fix video codec to VP8 2026-08-24 14:47:58 +08:00
AAA 1b7655a34d refactor(browser): simplify codec ownership 2026-08-24 10:18:23 +08:00
AAA 3536671016 feat(browser): complete v9 runtime 2026-08-24 08:09:41 +08:00
AAA eb926f89b3 feat: implement v9 viewer entry and presentation 2026-08-24 05:58:15 +08:00
AAA 37c34d9031 feat(route): add on-demand route observability 2026-08-24 05:58:15 +08:00
AAA c962fe758b feat(media): apply live audio ceilings 2026-08-24 05:58:15 +08:00
AAA e647a1e52a refactor(route): remove application TURN (#216) 2026-08-24 02:14:12 +08:00
AAA b76d2cc0a5 feat(rooms): replace SQLite with leased memory rooms (#211)
Implements the accepted memory-resident room and access model on the single piik-v8 Browser wire. Local repository, full Web, build, and Chrome access/privacy gates passed before merge.
2026-08-23 21:47:49 +08:00
AAA 10c1a31de6 refactor(route): converge on one room controller 2026-08-23 17:17:04 +08:00
AAA d4353686a4 feat(admission): support 20-viewer rooms 2026-08-23 12:28:23 +08:00
AAA 524f012739 refactor(route): enforce global SFU admission 2026-08-23 00:50:11 +08:00
AAA ca1d715319 fix(route): enforce authenticated endpoint capacity 2026-08-23 00:23:15 +08:00
AAA 78871db805 refactor(route): unify endpoint media copy accounting (#200) 2026-08-22 21:59:44 +08:00
AAA 9080e68601 fix(signaling): detect silent websocket partitions (#182)
Add a bounded authenticated control-plane watchdog that replaces only an unresponsive socket generation without granting it media-route authority.
2026-08-22 08:32:32 +08:00
AAA 12c686ea5e fix(sfu): enforce bounded root invariants (#179) 2026-08-22 08:04:05 +08:00
AAA 35f9b785f9 fix(media): clamp browser relay release capacity (#177) 2026-08-22 07:29:50 +08:00
AAA b95aaa5834 feat(media): add screen audio quality presets (#165)
Add configurable 64/128/256 kbps screen-audio presets across P2P, relay, and SFU paths.
2026-08-22 04:10:53 +08:00
AAA 0a5c21025f fix(media): demote corroborated relay parents (#164)
Preserve exact selected edges across unrelated route revisions, demote corroborated bad relay parents, and parameterize the bounded endpoint cap while retaining the production default of two.
2026-08-22 03:55:11 +08:00
AAA b1d676e317 feat(web): finish participant presence states [skip ci]
* fix(web): hide unique viewer ID suffixes

* feat(web): show viewer roster to viewers

* feat: show intentional sharing pause to viewers

* fix(web): show proven SFU viewer connections [skip ci]

* chore(signal): version presence state wire [skip ci]

* fix(signal): close presence generation contract [skip ci]
2026-08-21 23:05:51 +08:00
AAA eef8d156f3 feat(media): add explicit Web codec selection [skip ci] (#150) 2026-08-21 22:11:42 +08:00
AAA 252b6d69c0 fix(sfu): retain live quality across republish [skip ci]
Merge reviewed video quality-tier regression fix. Production deployment follows exact merged SHA.
2026-08-21 19:14:23 +08:00
AAA 9e3ebe26ce feat(media): reselect healthy SFU roots [skip ci]
Event-triggered make-before-break recovery from healthy SFU to a proven P2P baseline parent.
2026-08-21 17:59:41 +08:00
AAA 5810ec2201 refactor(media): keep routing automatic [skip ci] 2026-08-21 15:21:59 +08:00
AAA ae153c05bd feat(media): allow two Web relay children [skip ci]
Locally accepted: focused 214 tests, full 458-test suite, typecheck, client/server builds, Chrome five-Viewer cap2 proof, repository hygiene, and independent P0/P1 review. PR head had zero Actions runs.
2026-08-21 13:50:35 +08:00
AAA 91df9b7c89 feat(web): add one-share P2P debug mode [skip ci]
Locally accepted: 107 focused tests, typecheck, client/server builds, repository hygiene, and independent P0/P1 review. PR head had zero Actions runs.
2026-08-21 13:30:05 +08:00
AAA 671f7ef731 feat(web): expose authoritative viewer topology
Local typecheck, 142 focused tests, client build, repository hygiene, and independent P0/P1 review passed.
2026-08-21 11:46:03 +08:00
AAA 16c08eb96f feat(web): raise screen audio send ceiling (#128) 2026-08-21 11:30:15 +08:00
AAA 85c3f7342f refactor: remove stale hybrid routing artifacts (#89) 2026-08-21 01:48:29 +08:00
AAA 4b52aadda7 feat(media): add restricted host SFU selected-edge TURN
Adds the explicit host-sfu-ingress selected-edge wire and relay-only Host publisher path while preserving STUN-only ordinary peers.
2026-08-21 00:33:54 +08:00
AAA 8ed3b4e016 feat(presence): let Web Hosts set display names
Web Hosts can set local display names through the existing opt-in presence roster; Viewer/Host subscribers see the current Host name. Native exact wire remains unchanged.
2026-08-20 22:21:51 +08:00
AAA ded55bcd7d feat(access): add private room password entry (#77)
Adds bounded per-room Viewer password entry while preserving grant/public paths and Native v2 wire compatibility.
2026-08-20 20:00:52 +08:00
AAA 2930e4c788 feat: add bounded selected-edge TURN recovery (#76)
Add one default-off, generation-bound relay-only rebuild for the original failed peer edge after Viewer-root SFU exhaustion while keeping ordinary Web and Native ICE STUN-only.
2026-08-20 19:53:58 +08:00
AAA 57d6e8982b fix(media): remove participant-wide TURN capability (#72) 2026-08-20 17:32:13 +08:00
AAA 1e11e09261 feat: add exact-room peer ICE TURN fallback (#66) 2026-08-20 13:37:02 +08:00
AAA 51a3022ae1 feat(presence): show named online viewer roster (#64) 2026-08-20 13:17:26 +08:00
AAA 4b942bfda0 feat(native): add provisional fixed-high sender candidate (#61) 2026-08-20 11:32:05 +08:00
AAA 08aee25582 fix(routing): reparent persistently degraded viewer edges (#62) 2026-08-20 11:29:53 +08:00
AAA de967fbc61 feat(access): scope viewer invitations to rooms (#56) 2026-08-20 02:42:22 +08:00
AAA 7621f2766e fix(signaling): make protocol mismatch terminal 2026-08-19 21:11:54 +08:00
AAA ad10036d1b fix(media): close the UDP candidate migration boundary 2026-08-19 21:08:49 +08:00
AAA 12d4b4e4aa chore: merge main into feat/sfu-udp-exact-room
# Conflicts:
#	docs/project-memory.md
#	docs/status.md
#	docs/方案设计.md
#	docs/需求理解.md
#	src/shared/protocol.ts
#	tests/server-signal.test.ts
2026-08-19 20:46:57 +08:00
AAA ae298aadd2 feat(media): migrate ordinary ICE to STUN-only 2026-08-19 20:44:36 +08:00