fix(voice-gateway): S2S idle timeout + upstream send lock + iOS AudioContext suspended + port 3012→3013

- P0: S2S DialogAudioIdleTimeoutError now notifies client instead of force-closing, sets upstreamReady=false and cancels keepalive
- P0: Reduce audioKeepaliveIntervalMs from 20s to 8s to prevent S2S idle timeout
- P1: Add upstreamSendLock to prevent concurrent IllegalStateException: Send pending
- P1: iOS AudioContext suspended handling - buffer audio chunks and try resume after user interaction
- P1: disconnect() clears pendingAudioChunks and _resuming to prevent memory leak
- Fix: Frontend hardcoded port 3012→3013 in videoApi.js and vite.config.js
- Add complete Java backend source code to git tracking
This commit is contained in:
User
2026-04-16 19:16:11 +08:00
parent fe25229de7
commit ff6a63147b
93 changed files with 10557 additions and 23 deletions

View File

@@ -0,0 +1,27 @@
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import tailwindcss from '@tailwindcss/vite';
const backendTarget = 'http://localhost:3013';
export default defineConfig({
plugins: [react(), tailwindcss()],
build: {
outDir: 'dist',
sourcemap: false,
},
server: {
port: 5174,
proxy: {
'/api': {
target: backendTarget,
changeOrigin: true,
},
'/ws': {
target: backendTarget,
changeOrigin: true,
ws: true,
},
},
},
});