From d26051f59fcd08303ed33289e25b1b20c93ab95c Mon Sep 17 00:00:00 2001 From: Codex Date: Sat, 11 Jul 2026 15:59:42 +0200 Subject: [PATCH] =?UTF-8?q?feat(webterm):=20YAML-first=20=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E4=B8=8B=E8=A1=8C=E5=8E=8B=E7=BC=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/platform-infra/webterm.yaml | 8 ++++++++ scripts/src/platform-infra-webterm.ts | 11 +++++++++++ 2 files changed, 19 insertions(+) diff --git a/config/platform-infra/webterm.yaml b/config/platform-infra/webterm.yaml index 7979dbf3..bf44a4e6 100644 --- a/config/platform-infra/webterm.yaml +++ b/config/platform-infra/webterm.yaml @@ -37,6 +37,14 @@ browserTerminalHistory: browserOutputPolicy: maxFramesPerSecond: 10 maxFrameBytes: 65536 + compression: + enabled: true + thresholdBytes: 1024 + level: 3 + memLevel: 7 + concurrencyLimit: 4 + serverContextTakeover: true + clientContextTakeover: false browserPerformance: animationsEnabled: true diff --git a/scripts/src/platform-infra-webterm.ts b/scripts/src/platform-infra-webterm.ts index 9a59593e..9918127b 100644 --- a/scripts/src/platform-infra-webterm.ts +++ b/scripts/src/platform-infra-webterm.ts @@ -51,6 +51,7 @@ interface BrowserTerminalHistory { interface BrowserOutputPolicy { maxFramesPerSecond: number; maxFrameBytes: number; + compression: { enabled: boolean; thresholdBytes: number; level: number; memLevel: number; concurrencyLimit: number; serverContextTakeover: boolean; clientContextTakeover: boolean }; } interface BrowserPerformance { @@ -757,9 +758,19 @@ function parseBrowserTerminalHistory(record: Record, path: stri } function parseBrowserOutputPolicy(record: Record, path: string): BrowserOutputPolicy { + const compression = recordField(record, "compression", path); return { maxFramesPerSecond: positiveIntegerField(record, "maxFramesPerSecond", path), maxFrameBytes: positiveIntegerField(record, "maxFrameBytes", path), + compression: { + enabled: booleanField(compression, "enabled", `${path}.compression`), + thresholdBytes: positiveIntegerField(compression, "thresholdBytes", `${path}.compression`), + level: positiveIntegerField(compression, "level", `${path}.compression`), + memLevel: positiveIntegerField(compression, "memLevel", `${path}.compression`), + concurrencyLimit: positiveIntegerField(compression, "concurrencyLimit", `${path}.compression`), + serverContextTakeover: booleanField(compression, "serverContextTakeover", `${path}.compression`), + clientContextTakeover: booleanField(compression, "clientContextTakeover", `${path}.compression`), + }, }; }