feat(client): complete native source and release boundary

Complete the Native Client source/audio boundary, strict v5 loopback contract, Browser media lifecycle handling, and non-blocking release checks. Keep unverified platform/physical gates explicit; do not rewrite the Go Server.
This commit is contained in:
AAA authored and GitHub committed 2026-09-04 03:42:54 +08:00
1 parent 3583e92938
commit 5781d6bbfa
194 files changed
+19199 -10342

No files matched your search

+17 -5
View File
@@ -12,22 +12,30 @@
"build": "npm run build:client && npm run build:server",
"build:client": "vite build",
"build:server": "node --input-type=module -e \"import { rmSync } from 'node:fs'; rmSync('dist/server', { recursive: true, force: true })\" && tsc -p tsconfig.server.json",
"package:client": "node scripts/assemble-client.mjs",
"package:client-candidate": "node scripts/package-client-candidate.mjs",
"check:client": "node scripts/check-client.mjs",
"check:client-core": "node scripts/check-client.mjs --core",
"check:client-capture": "node scripts/check-client.mjs --capture-only",
"gate:client-media": "tsx scripts/client-media-gate.ts",
"gate:client-native-host": "tsx scripts/client-native-host-gate.ts",
"gate:client-cross-nat": "tsx scripts/client-native-host-gate.ts",
"gate:client-link-media": "tsx scripts/client-native-host-gate.ts",
"gate:client-native-sfu": "tsx scripts/client-native-sfu-gate.ts",
"gate:client-link": "tsx scripts/client-link-gate.ts",
"start": "node dist/server/server/index.js",
"gate:peer-topology-loopback": "tsx scripts/peer-assisted-benchmark.ts",
"gate:sfu-admission": "vitest run tests/room-route-controller.test.ts tests/hybrid-media-router.test.ts tests/sfu-resource-admission.test.ts tests/sfu-room-control.test.ts tests/livekit-token.test.ts tests/sfu-client.test.ts tests/route-transition.test.ts tests/server-config.test.ts tests/server-http.test.ts tests/server-signal.test.ts",
"gate:access-privacy": "npm run build:client && vitest run tests/server-signal.test.ts && tsx scripts/access-privacy-gate.ts",
"probe:native-one-viewer": "tsx scripts/native-one-viewer-gate.ts",
"probe:client-loopback": "tsx scripts/client-loopback-gate.ts",
"gate:client-local": "tsx scripts/client-local-gate.ts",
"typecheck": "tsc -b --pretty false",
"test": "vitest run",
"test:watch": "vitest",
"check": "npm run typecheck && npm test && npm run build"
},
"dependencies": {
"livekit-client": "2.22.1",
"livekit-server-sdk": "2.18.0",
"react": "19.2.8",
"react-dom": "19.2.8",
"sdp-transform": "3.0.0",
"sirv": "3.0.2",
"ws": "8.21.3",
"zod": "4.4.3"
@@ -39,6 +47,10 @@
"@types/sdp-transform": "3.0.0",
"@types/ws": "8.18.1",
"@vitejs/plugin-react": "6.0.5",
"livekit-client": "2.22.1",
"react": "19.2.8",
"react-dom": "19.2.8",
"sdp-transform": "3.0.0",
"tsx": "4.23.12",
"typescript": "~6.0.3",
"vite": "8.2.1",