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