diff --git a/config/platform-infra/webterm.yaml b/config/platform-infra/webterm.yaml index db632607..d3339a65 100644 --- a/config/platform-infra/webterm.yaml +++ b/config/platform-infra/webterm.yaml @@ -49,6 +49,7 @@ browserOutputPolicy: browserPerformance: animationsEnabled: true defaultBackgroundMode: receive-only + defaultMobileTerminalPercent: 40 backgroundModes: disconnect: label: 断开后台连接 diff --git a/scripts/src/platform-infra-webterm.ts b/scripts/src/platform-infra-webterm.ts index d49a14a8..f9de54e8 100644 --- a/scripts/src/platform-infra-webterm.ts +++ b/scripts/src/platform-infra-webterm.ts @@ -67,6 +67,7 @@ interface BrowserOutputPolicy { interface BrowserPerformance { animationsEnabled: boolean; defaultBackgroundMode: "disconnect" | "receive-only" | "low-frequency" | "live"; + defaultMobileTerminalPercent: number; backgroundModes: Array<{ id: "disconnect" | "receive-only" | "low-frequency" | "live"; label: string }>; deferredOutputMaxBytes: number; lowFrequencyRenderIntervalMs: number; @@ -898,6 +899,7 @@ function parseBrowserPerformance(record: Record, path: string): return { animationsEnabled: booleanField(record, "animationsEnabled", path), defaultBackgroundMode: defaultBackgroundMode as BrowserPerformance["defaultBackgroundMode"], + defaultMobileTerminalPercent: integerInRangeField(record, "defaultMobileTerminalPercent", path, 20, 70), backgroundModes, deferredOutputMaxBytes: positiveIntegerField(record, "deferredOutputMaxBytes", path), lowFrequencyRenderIntervalMs: positiveIntegerField(record, "lowFrequencyRenderIntervalMs", path), @@ -913,6 +915,12 @@ function positiveIntegerField(record: Record, key: string, path return value; } +function integerInRangeField(record: Record, key: string, path: string, min: number, max: number): number { + const value = integerField(record, key, path); + if (value < min || value > max) throw new Error(`${path}.${key} must be from ${min} to ${max}`); + return value; +} + function parseLiteral(value: string, expected: T, path: string): T { if (value !== expected) throw new Error(`${path} must be ${expected}`); return expected;