From d237025a6a3fc13b0d5f4e964094a7da662b6340 Mon Sep 17 00:00:00 2001 From: Wibias <37517432+Wibias@users.noreply.github.com> Date: Sun, 16 Aug 2026 08:19:53 +0200 Subject: [PATCH 1/5] fix(gui): clarify Log Guard storage UX and write-load poster Separate wanted vs observed protection modes, surface a three-mode SSD write poster from inspect metrics, rank redacted sources without TARGET_N labels, split Log DB vs largest-files overview, move Compact into reclaim, improve EN/DE copy, raise Windows process-enum timeout, and drop the engineer-only immutable/snapshot badge from the Storage panel. --- .../storage-workspace/StorageWorkspace.tsx | 248 +++++++++++++++--- gui/src/i18n/log-guard-labels.ts | 166 +++++++++++- gui/src/i18n/log-guard-state-labels.ts | 16 +- gui/src/styles-storage-workspace.css | 67 +++++ .../storage-log-guard-protection.test.tsx | 55 +++- gui/tests/storage-log-guard.test.tsx | 29 +- src/codex/app-server-processes.ts | 2 +- src/codex/log-guard/inspect.ts | 52 ++++ src/codex/log-guard/protection.ts | 30 +++ tests/codex-log-guard-inspect.test.ts | 7 + 10 files changed, 610 insertions(+), 62 deletions(-) diff --git a/gui/src/components/storage-workspace/StorageWorkspace.tsx b/gui/src/components/storage-workspace/StorageWorkspace.tsx index fb5ed7808d..03875cf2bf 100644 --- a/gui/src/components/storage-workspace/StorageWorkspace.tsx +++ b/gui/src/components/storage-workspace/StorageWorkspace.tsx @@ -72,6 +72,11 @@ export interface CodexLogGuardReport { freelistPages: number; reclaimableBytes: number; estimatedLogBytes: number | null; + writePoster?: { + off: { keepRowsShare: number; keepBytesShare: number | null }; + compat: { keepRowsShare: number; keepBytesShare: number | null }; + quiet: { keepRowsShare: number; keepBytesShare: number | null }; + }; }; } @@ -138,6 +143,65 @@ function mutationErrorLabel(locale: Locale, code: unknown): string { } } +function writePosterShare( + mode: { keepRowsShare: number; keepBytesShare: number | null }, +): { share: number; unit: "bytes" | "rows" } { + if (mode.keepBytesShare !== null) { + return { share: mode.keepBytesShare, unit: "bytes" }; + } + return { share: mode.keepRowsShare, unit: "rows" }; +} + +function formatWritePosterPercent(share: number, locale: Locale): string { + return (share * 100).toLocaleString(locale, { + maximumFractionDigits: 0, + minimumFractionDigits: 0, + }) + "%"; +} + +function formatRankedSourceLabel(locale: Locale, target: string): string { + const match = /^TARGET_(\d+)$/.exec(target); + if (!match) return target; + const rank = Number(match[1]); + if (!Number.isFinite(rank) || rank <= 0) return target; + return logGuardLabel(locale, "rankedSourceRank").replace("{rank}", String(rank)); +} + +function WritePosterMeter({ + locale, + modeKey, + modeLabel, + share, + unit, +}: { + locale: Locale; + modeKey: "off" | "compat" | "quiet"; + modeLabel: string; + share: number; + unit: "bytes" | "rows"; +}) { + const clamped = Math.max(0, Math.min(1, share)); + const percent = formatWritePosterPercent(clamped, locale); + return ( +
+
+ {modeLabel} + {percent} +
+
+
+
+
+ ); +} + function CodexLogGuardPanel({ report, locale, @@ -213,23 +277,67 @@ function CodexLogGuardPanel({
+ {metrics?.writePoster && ( +
+

+ {logGuardLabel(locale, "writePoster")} +

+

{logGuardLabel(locale, "writePosterHelp")}

+ {([ + ["off", logGuardLabel(locale, "writePosterOff")] as const, + ["compat", logGuardLabel(locale, "compat")] as const, + ["quiet", logGuardLabel(locale, "quiet")] as const, + ]).map(([modeKey, modeLabel]) => { + const poster = writePosterShare(metrics.writePoster![modeKey]); + return ( + + ); + })} +

+ {metrics.writePoster.off.keepBytesShare !== null + ? logGuardLabel(locale, "writePosterUnitBytes") + : logGuardLabel(locale, "writePosterUnitRows")} +

+
+ )} + {protection && (
-

{logGuardLabel(locale, "protection")}

-
- {logGuardProtectionStateLabel(locale, protection.state)} - - {logGuardProtectionModeLabel(locale, protection.desiredMode)} - {protection.observedMode !== protection.desiredMode ? <>{logGuardProtectionModeLabel(locale, protection.observedMode)} : null} - -
-
+

+ {logGuardLabel(locale, "protection")} +

+

{logGuardLabel(locale, "protectionHelp")}

+
+
+
{logGuardLabel(locale, "desiredMode")}
+
{logGuardProtectionModeLabel(locale, protection.desiredMode)}
+
+
+
{t("dash.status")}
+
{logGuardProtectionStateLabel(locale, protection.state)}
+
+ {protection.observedMode !== protection.desiredMode ? ( +
+
{logGuardLabel(locale, "observedMode")}
+
{logGuardProtectionModeLabel(locale, protection.observedMode)}
+
+ ) : null} +
+
- {displayedLogGuard ? ( - - ) : report.codexLogsError === "inspect_failed" ? ( - - ) : null} +
+ + +
- {largestAcross.length > 0 ? ( -
-

{t("storage.section.largest")}

- {largestAcross.map(entry => { - const owner = bucketByKey.get(entry.bucketKey); - return ( -
- {entry.path} - {owner && {bucketLabel(owner, t)}} - {formatBytes(entry.bytes, locale)} -
- ); - })} + {overviewPane === "logGuard" ? ( +
+ {displayedLogGuard ? ( + + ) : report.codexLogsError === "inspect_failed" ? ( + + ) : ( +

{logGuardLabel(locale, "inspectionUnavailable")}

+ )}
) : ( -

-

+
+ {largestAcross.length > 0 ? ( +
+

{t("storage.section.largest")}

+ {largestAcross.map(entry => { + const owner = bucketByKey.get(entry.bucketKey); + return ( +
+ {entry.path} + {owner && {bucketLabel(owner, t)}} + {formatBytes(entry.bytes, locale)} +
+ ); + })} +
+ ) : ( +

+

+ )} +
)}
)} diff --git a/gui/src/i18n/log-guard-labels.ts b/gui/src/i18n/log-guard-labels.ts index de7ed41af5..33ab36ffd8 100644 --- a/gui/src/i18n/log-guard-labels.ts +++ b/gui/src/i18n/log-guard-labels.ts @@ -5,11 +5,27 @@ export type LogGuardLabelKey = | "externalSqliteHome" | "inspectionUnavailable" | "protection" + | "protectionHelp" + | "desiredMode" + | "observedMode" | "compat" + | "compatHelp" | "quiet" + | "quietHelp" | "disable" + | "disableHelp" | "repair" + | "repairHelp" | "compact" + | "compactHelp" + | "rankedSources" + | "rankedSourcesHelp" + | "rankedSourceRank" + | "writePoster" + | "writePosterHelp" + | "writePosterOff" + | "writePosterUnitBytes" + | "writePosterUnitRows" | "pagesUnit" | "compactComplete" | "compactPartial" @@ -38,10 +54,26 @@ const LABELS: Record> = { externalSqliteHome: 'External SQLite storage', inspectionUnavailable: "Diagnostic log inspection is unavailable.", protection: "Protection", + protectionHelp: "Reduces future Codex diagnostic log writes. Codex must be fully quit first. Existing rows stay until free space is reclaimed later.", + desiredMode: "Wanted", + observedMode: "Installed", compat: "Compatibility", + compatHelp: "Keep Codex-compatible TRACE filtering: drop known high-noise targets (SSE transport, hyper_util, etc.) while preserving unrelated TRACE rows.", quiet: "Quiet", + quietHelp: "Drop all TRACE rows. Keep DEBUG, INFO, WARN, and ERROR. Strongest write reduction.", disable: "Disable protection", + disableHelp: "Remove OpenCodex log filters and allow normal Codex logging again.", repair: "Repair protection", + repairHelp: "Re-install the wanted protection mode after Codex rebuilt the logs database.", + compactHelp: "Reclaim free pages already inside the logs database with bounded incremental vacuum. Does not delete log history by itself.", + rankedSources: "Noisiest sources", + rankedSourcesHelp: "Real source names stay private. Rank 1 is noisiest. Counts show relative write pressure only.", + rankedSourceRank: "Rank {rank}", + writePoster: "Future write load", + writePosterHelp: "How much Codex would still write under each mode, based on your current log mix. Protection changes future inserts only. Compact later if you want the file to shrink.", + writePosterOff: "Off (stock Codex)", + writePosterUnitBytes: "Bars show estimated payload size, not just row counts.", + writePosterUnitRows: "Bars show row share. Payload size is unavailable here.", applying: "Applying protection…", "error.generic": "Could not change Codex log protection.", "error.codex_running": "Quit Codex before changing log protection.", @@ -55,19 +87,35 @@ const LABELS: Record> = { }, de: { compact: 'Komprimieren', - compactComplete: "Komprimierung abgeschlossen (logisch / auf Datentraeger freigegeben)", + compactComplete: "Komprimierung abgeschlossen (logisch / auf Datenträger freigegeben)", pagesUnit: "Seiten", - compactPartial: "Komprimierung teilweise (logisch / auf Datentraeger freigegeben)", + compactPartial: "Komprimierung teilweise (logisch / auf Datenträger freigegeben)", confirmCompact: 'Komprimierung bestätigen', cancel: 'Abbrechen', inspectionOnly: 'Nur Inspektion', externalSqliteHome: 'Externer SQLite-Speicher', inspectionUnavailable: "Die Diagnoseprotokoll-Inspektion ist nicht verfügbar.", protection: "Schutz", + protectionHelp: "Verringert künftige Schreibvorgänge ins Codex-Diagnoseprotokoll. Beende Codex zuerst vollständig. Vorhandene Einträge bleiben, bis du Speicher später freigibst.", + desiredMode: "Gewählt", + observedMode: "Installiert", compat: "Kompatibilität", - quiet: "Leise", + compatHelp: "Filtert bekannte laute TRACE-Quellen, behält den Rest. Guter Standard, wenn Codex weiter normal laufen soll.", + quiet: "Ruhig", + quietHelp: "Verwirft jedes TRACE. Behält DEBUG, INFO, WARN und ERROR. Stärkste Entlastung der SSD.", disable: "Schutz deaktivieren", + disableHelp: "Entfernt die OpenCodex-Filter. Codex schreibt danach wieder wie gewohnt.", repair: "Schutz reparieren", + repairHelp: "Setzt den gewählten Schutz neu, nachdem Codex die Protokolldatenbank neu aufgebaut hat.", + compactHelp: "Gibt bereits freie Seiten in der Datenbank zurück. Löscht keine Historie.", + rankedSources: "Lauteste Quellen", + rankedSourcesHelp: "Echte Quellnamen bleiben privat. Rang 1 ist am lautesten. Die Zahlen zeigen nur den relativen Schreibdruck.", + rankedSourceRank: "Rang {rank}", + writePoster: "Künftige Schreiblast", + writePosterHelp: "So viel würde Codex künftig noch schreiben, gemessen an deinem aktuellen Protokollmix. Der Schutz ändert nur neue Einträge. Die Datei schrumpft erst nach Komprimieren.", + writePosterOff: "Aus (normales Codex)", + writePosterUnitBytes: "Die Balken zeigen geschätzte Datenmenge, nicht nur Zeilen.", + writePosterUnitRows: "Die Balken zeigen Zeilenanteile. Die Datenmenge ist hier nicht verfügbar.", applying: "Schutz wird angewendet…", "error.generic": "Der Schutz der Codex-Protokolle konnte nicht geändert werden.", "error.codex_running": "Beende Codex, bevor du den Protokollschutz änderst.", @@ -90,10 +138,26 @@ const LABELS: Record> = { externalSqliteHome: "Stockage SQLite externe", inspectionUnavailable: "L’inspection des journaux de diagnostic est indisponible.", protection: "Protection", + protectionHelp: "Reduces future Codex diagnostic log writes. Codex must be fully quit first. Existing rows stay until free space is reclaimed later.", + desiredMode: "Wanted", + observedMode: "Installed", compat: "Compatibilité", + compatHelp: "Keep Codex-compatible TRACE filtering: drop known high-noise targets (SSE transport, hyper_util, etc.) while preserving unrelated TRACE rows.", quiet: "Silencieux", + quietHelp: "Drop all TRACE rows. Keep DEBUG, INFO, WARN, and ERROR. Strongest write reduction.", disable: "Désactiver la protection", + disableHelp: "Remove OpenCodex log filters and allow normal Codex logging again.", repair: "Réparer la protection", + repairHelp: "Re-install the wanted protection mode after Codex rebuilt the logs database.", + compactHelp: "Reclaim free pages already inside the logs database with bounded incremental vacuum. Does not delete log history by itself.", + rankedSources: "Top sources (ranked)", + rankedSourcesHelp: "Real log source names stay private. Ranks show relative write pressure only (Rank 1 is noisiest).", + rankedSourceRank: "Rank {rank}", + writePoster: "Future diagnostic write load", + writePosterHelp: "Estimated share of future Codex diagnostic log writes that would still hit disk under each mode, based on your current log mix. Protection only changes future inserts; it does not shrink the existing database by itself.", + writePosterOff: "Off (stock Codex)", + writePosterUnitBytes: "Bars use estimated log payload bytes from your current mix.", + writePosterUnitRows: "Bars use row counts from your current mix (payload size unavailable).", applying: "Application de la protection…", "error.generic": "Impossible de modifier la protection des journaux Codex.", "error.codex_running": "Quittez Codex avant de modifier la protection des journaux.", @@ -116,10 +180,26 @@ const LABELS: Record> = { externalSqliteHome: '외부 SQLite 저장소', inspectionUnavailable: "진단 로그 검사를 사용할 수 없습니다.", protection: "보호", + protectionHelp: "Reduces future Codex diagnostic log writes. Codex must be fully quit first. Existing rows stay until free space is reclaimed later.", + desiredMode: "Wanted", + observedMode: "Installed", compat: "호환 모드", + compatHelp: "Keep Codex-compatible TRACE filtering: drop known high-noise targets (SSE transport, hyper_util, etc.) while preserving unrelated TRACE rows.", quiet: "조용한 모드", + quietHelp: "Drop all TRACE rows. Keep DEBUG, INFO, WARN, and ERROR. Strongest write reduction.", disable: "보호 비활성화", + disableHelp: "Remove OpenCodex log filters and allow normal Codex logging again.", repair: "보호 복구", + repairHelp: "Re-install the wanted protection mode after Codex rebuilt the logs database.", + compactHelp: "Reclaim free pages already inside the logs database with bounded incremental vacuum. Does not delete log history by itself.", + rankedSources: "Top sources (ranked)", + rankedSourcesHelp: "Real log source names stay private. Ranks show relative write pressure only (Rank 1 is noisiest).", + rankedSourceRank: "Rank {rank}", + writePoster: "Future diagnostic write load", + writePosterHelp: "Estimated share of future Codex diagnostic log writes that would still hit disk under each mode, based on your current log mix. Protection only changes future inserts; it does not shrink the existing database by itself.", + writePosterOff: "Off (stock Codex)", + writePosterUnitBytes: "Bars use estimated log payload bytes from your current mix.", + writePosterUnitRows: "Bars use row counts from your current mix (payload size unavailable).", applying: "보호 적용 중…", "error.generic": "Codex 로그 보호를 변경하지 못했습니다.", "error.codex_running": "로그 보호를 변경하기 전에 Codex를 종료하세요.", @@ -142,10 +222,26 @@ const LABELS: Record> = { externalSqliteHome: '外部 SQLite 存储', inspectionUnavailable: "诊断日志检查当前不可用。", protection: "保护", + protectionHelp: "Reduces future Codex diagnostic log writes. Codex must be fully quit first. Existing rows stay until free space is reclaimed later.", + desiredMode: "Wanted", + observedMode: "Installed", compat: "兼容模式", + compatHelp: "Keep Codex-compatible TRACE filtering: drop known high-noise targets (SSE transport, hyper_util, etc.) while preserving unrelated TRACE rows.", quiet: "静默模式", + quietHelp: "Drop all TRACE rows. Keep DEBUG, INFO, WARN, and ERROR. Strongest write reduction.", disable: "禁用保护", + disableHelp: "Remove OpenCodex log filters and allow normal Codex logging again.", repair: "修复保护", + repairHelp: "Re-install the wanted protection mode after Codex rebuilt the logs database.", + compactHelp: "Reclaim free pages already inside the logs database with bounded incremental vacuum. Does not delete log history by itself.", + rankedSources: "Top sources (ranked)", + rankedSourcesHelp: "Real log source names stay private. Ranks show relative write pressure only (Rank 1 is noisiest).", + rankedSourceRank: "Rank {rank}", + writePoster: "Future diagnostic write load", + writePosterHelp: "Estimated share of future Codex diagnostic log writes that would still hit disk under each mode, based on your current log mix. Protection only changes future inserts; it does not shrink the existing database by itself.", + writePosterOff: "Off (stock Codex)", + writePosterUnitBytes: "Bars use estimated log payload bytes from your current mix.", + writePosterUnitRows: "Bars use row counts from your current mix (payload size unavailable).", applying: "正在应用保护…", "error.generic": "无法更改 Codex 日志保护。", "error.codex_running": "更改 Codex 日志保护前请先退出 Codex。", @@ -168,10 +264,26 @@ const LABELS: Record> = { externalSqliteHome: '外部 SQLite 儲存空間', inspectionUnavailable: "診斷記錄檢查目前無法使用。", protection: "保護", + protectionHelp: "Reduces future Codex diagnostic log writes. Codex must be fully quit first. Existing rows stay until free space is reclaimed later.", + desiredMode: "Wanted", + observedMode: "Installed", compat: "相容模式", + compatHelp: "Keep Codex-compatible TRACE filtering: drop known high-noise targets (SSE transport, hyper_util, etc.) while preserving unrelated TRACE rows.", quiet: "靜默模式", + quietHelp: "Drop all TRACE rows. Keep DEBUG, INFO, WARN, and ERROR. Strongest write reduction.", disable: "停用保護", + disableHelp: "Remove OpenCodex log filters and allow normal Codex logging again.", repair: "修復保護", + repairHelp: "Re-install the wanted protection mode after Codex rebuilt the logs database.", + compactHelp: "Reclaim free pages already inside the logs database with bounded incremental vacuum. Does not delete log history by itself.", + rankedSources: "Top sources (ranked)", + rankedSourcesHelp: "Real log source names stay private. Ranks show relative write pressure only (Rank 1 is noisiest).", + rankedSourceRank: "Rank {rank}", + writePoster: "Future diagnostic write load", + writePosterHelp: "Estimated share of future Codex diagnostic log writes that would still hit disk under each mode, based on your current log mix. Protection only changes future inserts; it does not shrink the existing database by itself.", + writePosterOff: "Off (stock Codex)", + writePosterUnitBytes: "Bars use estimated log payload bytes from your current mix.", + writePosterUnitRows: "Bars use row counts from your current mix (payload size unavailable).", applying: "正在套用保護…", "error.generic": "無法變更 Codex 日誌保護。", "error.codex_running": "變更 Codex 日誌保護前請先退出 Codex。", @@ -194,10 +306,26 @@ const LABELS: Record> = { externalSqliteHome: 'Внешнее хранилище SQLite', inspectionUnavailable: "Проверка диагностических журналов недоступна.", protection: "Защита", + protectionHelp: "Reduces future Codex diagnostic log writes. Codex must be fully quit first. Existing rows stay until free space is reclaimed later.", + desiredMode: "Wanted", + observedMode: "Installed", compat: "Совместимость", + compatHelp: "Keep Codex-compatible TRACE filtering: drop known high-noise targets (SSE transport, hyper_util, etc.) while preserving unrelated TRACE rows.", quiet: "Тихий режим", + quietHelp: "Drop all TRACE rows. Keep DEBUG, INFO, WARN, and ERROR. Strongest write reduction.", disable: "Отключить защиту", + disableHelp: "Remove OpenCodex log filters and allow normal Codex logging again.", repair: "Восстановить защиту", + repairHelp: "Re-install the wanted protection mode after Codex rebuilt the logs database.", + compactHelp: "Reclaim free pages already inside the logs database with bounded incremental vacuum. Does not delete log history by itself.", + rankedSources: "Top sources (ranked)", + rankedSourcesHelp: "Real log source names stay private. Ranks show relative write pressure only (Rank 1 is noisiest).", + rankedSourceRank: "Rank {rank}", + writePoster: "Future diagnostic write load", + writePosterHelp: "Estimated share of future Codex diagnostic log writes that would still hit disk under each mode, based on your current log mix. Protection only changes future inserts; it does not shrink the existing database by itself.", + writePosterOff: "Off (stock Codex)", + writePosterUnitBytes: "Bars use estimated log payload bytes from your current mix.", + writePosterUnitRows: "Bars use row counts from your current mix (payload size unavailable).", applying: "Применение защиты…", "error.generic": "Не удалось изменить защиту журналов Codex.", "error.codex_running": "Закройте Codex перед изменением защиты журналов.", @@ -220,10 +348,26 @@ const LABELS: Record> = { externalSqliteHome: '外部 SQLite ストレージ', inspectionUnavailable: "診断ログの検査を利用できません。", protection: "保護", + protectionHelp: "Reduces future Codex diagnostic log writes. Codex must be fully quit first. Existing rows stay until free space is reclaimed later.", + desiredMode: "Wanted", + observedMode: "Installed", compat: "互換モード", + compatHelp: "Keep Codex-compatible TRACE filtering: drop known high-noise targets (SSE transport, hyper_util, etc.) while preserving unrelated TRACE rows.", quiet: "静音モード", + quietHelp: "Drop all TRACE rows. Keep DEBUG, INFO, WARN, and ERROR. Strongest write reduction.", disable: "保護を無効化", + disableHelp: "Remove OpenCodex log filters and allow normal Codex logging again.", repair: "保護を修復", + repairHelp: "Re-install the wanted protection mode after Codex rebuilt the logs database.", + compactHelp: "Reclaim free pages already inside the logs database with bounded incremental vacuum. Does not delete log history by itself.", + rankedSources: "Top sources (ranked)", + rankedSourcesHelp: "Real log source names stay private. Ranks show relative write pressure only (Rank 1 is noisiest).", + rankedSourceRank: "Rank {rank}", + writePoster: "Future diagnostic write load", + writePosterHelp: "Estimated share of future Codex diagnostic log writes that would still hit disk under each mode, based on your current log mix. Protection only changes future inserts; it does not shrink the existing database by itself.", + writePosterOff: "Off (stock Codex)", + writePosterUnitBytes: "Bars use estimated log payload bytes from your current mix.", + writePosterUnitRows: "Bars use row counts from your current mix (payload size unavailable).", applying: "保護を適用中…", "error.generic": "Codex ログ保護を変更できませんでした。", "error.codex_running": "ログ保護を変更する前に Codex を終了してください。", @@ -246,10 +390,26 @@ const LABELS: Record> = { externalSqliteHome: 'Harici SQLite depolaması', inspectionUnavailable: "Tanılama günlüğü incelemesi kullanılamıyor.", protection: "Koruma", + protectionHelp: "Reduces future Codex diagnostic log writes. Codex must be fully quit first. Existing rows stay until free space is reclaimed later.", + desiredMode: "Wanted", + observedMode: "Installed", compat: "Uyumluluk", + compatHelp: "Keep Codex-compatible TRACE filtering: drop known high-noise targets (SSE transport, hyper_util, etc.) while preserving unrelated TRACE rows.", quiet: "Sessiz", + quietHelp: "Drop all TRACE rows. Keep DEBUG, INFO, WARN, and ERROR. Strongest write reduction.", disable: "Korumayı devre dışı bırak", + disableHelp: "Remove OpenCodex log filters and allow normal Codex logging again.", repair: "Korumayı onar", + repairHelp: "Re-install the wanted protection mode after Codex rebuilt the logs database.", + compactHelp: "Reclaim free pages already inside the logs database with bounded incremental vacuum. Does not delete log history by itself.", + rankedSources: "Top sources (ranked)", + rankedSourcesHelp: "Real log source names stay private. Ranks show relative write pressure only (Rank 1 is noisiest).", + rankedSourceRank: "Rank {rank}", + writePoster: "Future diagnostic write load", + writePosterHelp: "Estimated share of future Codex diagnostic log writes that would still hit disk under each mode, based on your current log mix. Protection only changes future inserts; it does not shrink the existing database by itself.", + writePosterOff: "Off (stock Codex)", + writePosterUnitBytes: "Bars use estimated log payload bytes from your current mix.", + writePosterUnitRows: "Bars use row counts from your current mix (payload size unavailable).", applying: "Koruma uygulanıyor…", "error.generic": "Codex günlük koruması değiştirilemedi.", "error.codex_running": "Günlük korumasını değiştirmeden önce Codex'i kapatın.", diff --git a/gui/src/i18n/log-guard-state-labels.ts b/gui/src/i18n/log-guard-state-labels.ts index 176f1778c6..754cb8092b 100644 --- a/gui/src/i18n/log-guard-state-labels.ts +++ b/gui/src/i18n/log-guard-state-labels.ts @@ -14,12 +14,12 @@ const LABELS: Record = { en: { schema: { compatible: "Compatible", missing: "Database not found", unreadable: "Database unavailable", unsupported: "Unsupported" }, protection: { off: "Off", active: "Active", drifted: "Needs repair", unsupported: "Unsupported", unknown: "Unknown" }, - mode: { off: "Off", compat: "Compatibility", quiet: "Quiet", collision: "Unknown" }, + mode: { off: "Disabled", compat: "Compatibility", quiet: "Quiet", collision: "Unknown" }, }, de: { schema: { compatible: "Kompatibel", missing: "Datenbank nicht gefunden", unreadable: "Datenbank nicht lesbar", unsupported: "Nicht unterstützt" }, protection: { off: "Aus", active: "Aktiv", drifted: "Reparatur erforderlich", unsupported: "Nicht unterstützt", unknown: "Unbekannt" }, - mode: { off: "Aus", compat: "Kompatibilität", quiet: "Leise", collision: "Unbekannt" }, + mode: { off: "Deaktiviert", compat: "Kompatibilität", quiet: "Leise", collision: "Unbekannt" }, }, fr: { schema: { compatible: "Compatible", missing: "Base de données introuvable", unreadable: "Base de données indisponible", unsupported: "Non pris en charge" }, @@ -29,32 +29,32 @@ const LABELS: Record = { ko: { schema: { compatible: "호환됨", missing: "데이터베이스 없음", unreadable: "데이터베이스를 읽을 수 없음", unsupported: "지원되지 않음" }, protection: { off: "꺼짐", active: "활성", drifted: "복구 필요", unsupported: "지원되지 않음", unknown: "알 수 없음" }, - mode: { off: "꺼짐", compat: "호환 모드", quiet: "조용한 모드", collision: "알 수 없음" }, + mode: { off: "비활성", compat: "호환 모드", quiet: "조용한 모드", collision: "알 수 없음" }, }, zh: { schema: { compatible: "兼容", missing: "未找到数据库", unreadable: "无法读取数据库", unsupported: "不受支持" }, protection: { off: "关闭", active: "已启用", drifted: "需要修复", unsupported: "不受支持", unknown: "未知" }, - mode: { off: "关闭", compat: "兼容模式", quiet: "静默模式", collision: "未知" }, + mode: { off: "已禁用", compat: "兼容模式", quiet: "静默模式", collision: "未知" }, }, "zh-TW": { schema: { compatible: "相容", missing: "找不到資料庫", unreadable: "無法讀取資料庫", unsupported: "不支援" }, protection: { off: "關閉", active: "已啟用", drifted: "需要修復", unsupported: "不支援", unknown: "未知" }, - mode: { off: "關閉", compat: "相容模式", quiet: "靜默模式", collision: "未知" }, + mode: { off: "已停用", compat: "相容模式", quiet: "靜默模式", collision: "未知" }, }, ru: { schema: { compatible: "Совместимо", missing: "База не найдена", unreadable: "База недоступна", unsupported: "Не поддерживается" }, protection: { off: "Выключено", active: "Активно", drifted: "Требуется восстановление", unsupported: "Не поддерживается", unknown: "Неизвестно" }, - mode: { off: "Выключено", compat: "Совместимость", quiet: "Тихий режим", collision: "Неизвестно" }, + mode: { off: "Отключено", compat: "Совместимость", quiet: "Тихий режим", collision: "Неизвестно" }, }, ja: { schema: { compatible: "互換", missing: "データベースが見つかりません", unreadable: "データベースを読み取れません", unsupported: "未対応" }, protection: { off: "オフ", active: "有効", drifted: "修復が必要", unsupported: "未対応", unknown: "不明" }, - mode: { off: "オフ", compat: "互換モード", quiet: "静音モード", collision: "不明" }, + mode: { off: "無効", compat: "互換モード", quiet: "静音モード", collision: "不明" }, }, tr: { schema: { compatible: "Uyumlu", missing: "Veritabanı bulunamadı", unreadable: "Veritabanı okunamıyor", unsupported: "Desteklenmiyor" }, protection: { off: "Kapalı", active: "Etkin", drifted: "Onarım gerekli", unsupported: "Desteklenmiyor", unknown: "Bilinmiyor" }, - mode: { off: "Kapalı", compat: "Uyumluluk", quiet: "Sessiz", collision: "Bilinmiyor" }, + mode: { off: "Devre dışı", compat: "Uyumluluk", quiet: "Sessiz", collision: "Bilinmiyor" }, }, }; diff --git a/gui/src/styles-storage-workspace.css b/gui/src/styles-storage-workspace.css index 1585ac0f56..682ecde43f 100644 --- a/gui/src/styles-storage-workspace.css +++ b/gui/src/styles-storage-workspace.css @@ -742,3 +742,70 @@ position: static; } } + + +/* Log Guard future-write poster: relative SSD write load by protection mode. */ +.log-guard-write-poster { + display: flex; + flex-direction: column; + gap: 0.55rem; +} + +.log-guard-write-poster-row { + display: flex; + flex-direction: column; + gap: 0.28rem; +} + +.log-guard-write-poster-meta { + display: flex; + align-items: baseline; + justify-content: space-between; + gap: 0.75rem; +} + +.log-guard-write-poster-mode { + color: var(--text-secondary, #9aa4b2); + font-size: 0.82rem; +} + +.log-guard-write-poster-value { + font-variant-numeric: tabular-nums; + font-size: 0.82rem; +} + +.log-guard-write-poster-track { + height: 0.55rem; + border-radius: 999px; + background: color-mix(in srgb, var(--border, #2a3340) 70%, transparent); + overflow: hidden; +} + +.log-guard-write-poster-fill { + height: 100%; + border-radius: inherit; + background: var(--accent, #3b82f6); + min-width: 0; +} + + +.stw-overview-tabs { + margin: 12px 0 14px; +} + +.stw-overview-pane { + min-height: 8rem; +} + +.log-guard-mode-actions { + display: flex; + flex-wrap: wrap; + gap: 6px; + padding-top: 2px; +} + +[data-testid="log-guard-reclaim"] { + margin-top: 18px; + padding-top: 12px; + border-top: 1px solid var(--border); +} diff --git a/gui/tests/storage-log-guard-protection.test.tsx b/gui/tests/storage-log-guard-protection.test.tsx index 67507fdce3..549a818c53 100644 --- a/gui/tests/storage-log-guard-protection.test.tsx +++ b/gui/tests/storage-log-guard-protection.test.tsx @@ -56,7 +56,7 @@ test("Storage exposes compatibility, quiet, and disable protection controls", () expect(html).toContain("Disable protection"); expect(html).toContain("Active"); expect(html).not.toContain(">active<"); - expect(html).not.toContain("Compact"); + expect(html).not.toContain("data-testid=\"log-guard-compact\""); }); test("Storage exposes explicit repair only when protection drifted", () => { @@ -80,7 +80,7 @@ test("Storage localizes protection state and desired/observed modes", () => { expect(html).toContain("Reparatur erforderlich"); expect(html).toContain("Kompatibilität"); - expect(html).toContain("Aus"); + expect(html).toContain("Deaktiviert"); expect(html).not.toContain(">drifted<"); expect(html).not.toContain(">compat<"); }); @@ -99,5 +99,54 @@ test("Storage disables protection mutation controls for an unsupported schema", const html = render(value); expect(html).toMatch(/data-testid="log-guard-protect-compat"[^>]*disabled/); expect(html).toMatch(/data-testid="log-guard-protect-quiet"[^>]*disabled/); - expect(html).not.toContain("Compact"); + expect(html).not.toContain("data-testid=\"log-guard-compact\""); +}); + + +test("Storage separates protection status from wanted mode and exposes mode help", () => { + const html = render(report("off")); + expect(html).toContain("Wanted"); + expect(html).toContain("Disabled"); + expect(html).toContain("Off"); + expect(html).not.toMatch(/>Off<.*·.*>Off { + const value = report("active"); + value.codexLogs = { + ...value.codexLogs!, + metrics: { + totalRows: 1000, + rowsByLevel: { TRACE: 400, INFO: 600 }, + traceRows: 400, + traceShare: 0.4, + topTargets: [{ target: "TARGET_1", rows: 300 }], + pageSize: 4096, + pageCount: 10, + freelistPages: 0, + reclaimableBytes: 0, + estimatedLogBytes: 900, + writePoster: { + off: { keepRowsShare: 1, keepBytesShare: 1 }, + compat: { keepRowsShare: 0.8, keepBytesShare: 0.12 }, + quiet: { keepRowsShare: 0.6, keepBytesShare: 0.08 }, + }, + }, + }; + + const html = render(value); + expect(html).toContain('data-testid="log-guard-write-poster"'); + expect(html).toContain("Future write load"); + expect(html).toContain("12%"); + expect(html).toContain("8%"); + expect(html).toContain('style="width:12%"'); + expect(html).toContain('style="width:8%"'); + expect(html).toContain("Rank 1"); + // Ranked sources stay redacted; help copy may mention class names abstractly. + expect(html).toContain("Rank 1"); + expect(html).not.toMatch(/codex_http_client::transport<\/code>/); + expect(html).not.toMatch(/hyper_util<\/code>/); }); diff --git a/gui/tests/storage-log-guard.test.tsx b/gui/tests/storage-log-guard.test.tsx index 272f925b14..006693de28 100644 --- a/gui/tests/storage-log-guard.test.tsx +++ b/gui/tests/storage-log-guard.test.tsx @@ -33,6 +33,11 @@ function report(): StorageReport { freelistPages: 1, reclaimableBytes: 4096, estimatedLogBytes: 350, + writePoster: { + off: { keepRowsShare: 1, keepBytesShare: 1 }, + compat: { keepRowsShare: 0.82, keepBytesShare: 0.05 }, + quiet: { keepRowsShare: 0.56, keepBytesShare: 0.04 }, + }, }, }, }; @@ -61,13 +66,29 @@ test("Storage overview renders read-only Codex diagnostic log health", () => { expect(html).toContain("WAL"); expect(html).toContain("SHM"); expect(html).toContain("0 B"); - expect(html).toContain("TARGET_1"); + expect(html).not.toContain("TARGET_1"); + expect(html).toContain("Noisiest sources"); + expect(html).toContain("Rank 1"); + expect(html).toContain("Real source names stay private"); expect(html).not.toContain("codex_api::sse"); + expect(html).toContain('data-testid="storage-tab-log-guard"'); + expect(html).toContain('data-testid="storage-tab-largest"'); + expect(html).toContain('data-testid="storage-pane-log-guard"'); + expect(html).not.toContain('data-testid="storage-pane-largest"'); + expect(html).toContain('data-testid="log-guard-write-poster"'); + expect(html).toContain("Future write load"); + expect(html).toContain("Off (stock Codex)"); + expect(html).toContain("100%"); + expect(html).toContain("5%"); + expect(html).toContain("4%"); + expect(html).toContain('style="width:100%"'); + expect(html).toContain('style="width:5%"'); + expect(html).toContain('style="width:4%"'); + expect(html).toContain("Bars show estimated payload size"); expect(html).toContain("External SQLite storage"); - expect(html).toContain("snapshot=checkpointed"); expect(html).not.toContain("/state/codex"); - expect(html).not.toContain("Protect"); - expect(html).not.toContain("Compact"); + expect(html).not.toContain('data-testid="log-guard-protect-compat"'); + expect(html).not.toContain('data-testid="log-guard-compact"'); expect(html).not.toContain("High write activity"); }); diff --git a/src/codex/app-server-processes.ts b/src/codex/app-server-processes.ts index 60c778e6b3..e49ee41e29 100644 --- a/src/codex/app-server-processes.ts +++ b/src/codex/app-server-processes.ts @@ -384,7 +384,7 @@ export function listWindowsSnapshots(): ProcessSnapshot[] { "-NoProfile", "-NoLogo", "-NonInteractive", "-Command", psCommand, - ], { encoding: "utf-8", stdio: ["ignore", "pipe", "ignore"], timeout: 8_000, windowsHide: true }); + ], { encoding: "utf-8", stdio: ["ignore", "pipe", "ignore"], timeout: 30_000, windowsHide: true }); for (const line of output.split(/\r?\n/)) { // A candidate whose owner could not be verified makes the whole // enumeration incomplete — the staleness collector must not read the diff --git a/src/codex/log-guard/inspect.ts b/src/codex/log-guard/inspect.ts index d2c1719236..b853a4e52f 100644 --- a/src/codex/log-guard/inspect.ts +++ b/src/codex/log-guard/inspect.ts @@ -8,6 +8,7 @@ import { resolveCodexSqliteHome, type CodexSqliteHomeDeps, } from "../paths"; +import { codexLogGuardCompatDropWhereSql } from "./protection"; const IMMUTABLE_READONLY_FLAGS = constants.SQLITE_OPEN_READONLY | constants.SQLITE_OPEN_URI; const KNOWN_LOG_LEVELS = new Set(["TRACE", "DEBUG", "INFO", "WARN", "ERROR"]); @@ -79,6 +80,20 @@ export type CodexLogGuardCapability = | { state: "supported" } | { state: "unsupported"; reason: CodexLogGuardCapabilityReason }; +export interface CodexLogGuardModeWriteShare { + /** Share of historical rows that would still be written under this mode. */ + keepRowsShare: number; + /** Share of historical estimated log bytes that would still be written, when available. */ + keepBytesShare: number | null; +} + +export interface CodexLogGuardWritePoster { + /** Counterfactual keep-shares for future-write guidance from the current snapshot mix. */ + off: CodexLogGuardModeWriteShare; + compat: CodexLogGuardModeWriteShare; + quiet: CodexLogGuardModeWriteShare; +} + export interface CodexLogGuardMetrics { totalRows: number; rowsByLevel: Record; @@ -90,6 +105,7 @@ export interface CodexLogGuardMetrics { freelistPages: number; reclaimableBytes: number; estimatedLogBytes: number | null; + writePoster: CodexLogGuardWritePoster; } /** @@ -347,6 +363,41 @@ function readMetrics(db: Database, columns: string[]): CodexLogGuardMetrics | nu ).get()?.bytes ?? 0) : null; + const compatWhere = codexLogGuardCompatDropWhereSql("target", "upper(level)"); + const quietWhere = "upper(level) = 'TRACE'"; + const droppedCompatRows = totalRows > 0 + ? Number(db.query("SELECT count(*) AS n FROM logs WHERE " + compatWhere).get()?.n ?? 0) + : 0; + const droppedQuietRows = totalRows > 0 + ? Number(db.query("SELECT count(*) AS n FROM logs WHERE " + quietWhere).get()?.n ?? 0) + : 0; + let droppedCompatBytes: number | null = null; + let droppedQuietBytes: number | null = null; + if (estimatedLogBytes !== null && estimatedLogBytes > 0) { + droppedCompatBytes = Number(db.query( + "SELECT COALESCE(sum(estimated_bytes), 0) AS bytes FROM logs WHERE " + compatWhere, + ).get()?.bytes ?? 0); + droppedQuietBytes = Number(db.query( + "SELECT COALESCE(sum(estimated_bytes), 0) AS bytes FROM logs WHERE " + quietWhere, + ).get()?.bytes ?? 0); + } + const share = (keep: number, total: number) => (total > 0 ? Math.min(1, Math.max(0, keep / total)) : 1); + const writePoster = { + off: { keepRowsShare: 1, keepBytesShare: estimatedLogBytes === null ? null : 1 }, + compat: { + keepRowsShare: share(totalRows - droppedCompatRows, totalRows), + keepBytesShare: estimatedLogBytes === null || droppedCompatBytes === null + ? null + : share(estimatedLogBytes - droppedCompatBytes, estimatedLogBytes), + }, + quiet: { + keepRowsShare: share(totalRows - droppedQuietRows, totalRows), + keepBytesShare: estimatedLogBytes === null || droppedQuietBytes === null + ? null + : share(estimatedLogBytes - droppedQuietBytes, estimatedLogBytes), + }, + }; + return { totalRows, rowsByLevel, @@ -358,6 +409,7 @@ function readMetrics(db: Database, columns: string[]): CodexLogGuardMetrics | nu freelistPages, reclaimableBytes: pageSize * freelistPages, estimatedLogBytes, + writePoster, }; } catch { // A future schema may still have a `logs` table but change aggregate-compatible diff --git a/src/codex/log-guard/protection.ts b/src/codex/log-guard/protection.ts index 613d2677ce..fb0be4d697 100644 --- a/src/codex/log-guard/protection.ts +++ b/src/codex/log-guard/protection.ts @@ -79,6 +79,36 @@ function anyTargetOrDescendant(targets: readonly string[]): string { return `(${targets.map(targetOrDescendant).join(" OR ")})`; } + +/** + * SQL boolean predicate (no leading WHERE) matching the Compatibility trigger. + * Used by Inspect for privacy-safe historical impact meters without leaking target names. + */ +export function codexLogGuardCompatDropWhereSql( + targetExpr = "target", + levelExpr = "upper(level)", +): string { + const desc = (base) => + "(" + targetExpr + " = '" + base + "' OR substr(" + targetExpr + ", 1, " + (base.length + 2) + ") = '" + base + "::')"; + const anyDesc = (bases) => "(" + bases.map(desc).join(" OR ") + ")"; + return [ + targetExpr + " = 'log'", + targetExpr + " = 'codex_otel.log_only'", + targetExpr + " = 'codex_otel.trace_safe'", + targetExpr + " = 'codex_api::responses_websocket_timing'", + targetExpr + " = 'codex_core::post_sampling_token_estimate'", + "(" + desc("hyper_util") + " AND " + levelExpr + " IN ('TRACE', 'DEBUG', 'INFO'))", + "(" + anyDesc(["codex_rmcp_client", "rmcp"]) + " AND " + levelExpr + " IN ('TRACE', 'DEBUG'))", + "(" + anyDesc([ + "codex_http_client::transport", + "codex_api::sse", + "codex_tui::streaming::controller", + "codex_tui::streaming::table_holdback", + ]) + " AND " + levelExpr + " = 'TRACE')", + "(" + targetExpr + " = 'opentelemetry_sdk' AND " + levelExpr + " IN ('TRACE', 'DEBUG'))", + ].join("\n OR "); +} + const COMPAT_TRIGGER_SQL = `CREATE TRIGGER ${COMPAT_TRIGGER} BEFORE INSERT ON logs WHEN diff --git a/tests/codex-log-guard-inspect.test.ts b/tests/codex-log-guard-inspect.test.ts index 96deb06672..1e77ed3dd0 100644 --- a/tests/codex-log-guard-inspect.test.ts +++ b/tests/codex-log-guard-inspect.test.ts @@ -113,6 +113,13 @@ describe("Codex Log Guard inspection", () => { expect(report.metrics?.traceShare).toBe(0.5); expect(report.metrics?.topTargets[0]).toEqual({ target: "TARGET_1", rows: 2 }); expect(report.metrics?.reclaimableBytes).toBeGreaterThanOrEqual(0); + // Fixture: 2 TRACE codex_api::sse rows (300 bytes) + INFO/WARN (125 bytes). + // Compatibility and Quiet both drop those TRACE rows on this mix. + expect(report.metrics?.writePoster).toEqual({ + off: { keepRowsShare: 1, keepBytesShare: 1 }, + compat: { keepRowsShare: 0.5, keepBytesShare: 125 / 425 }, + quiet: { keepRowsShare: 0.5, keepBytesShare: 125 / 425 }, + }); }); test("never exposes feedback bodies, arbitrary levels, target names, or paths", () => { From 13de95fc44e7d35c44ba86040cc457df90d6ed8a Mon Sep 17 00:00:00 2001 From: Wibias <37517432+Wibias@users.noreply.github.com> Date: Sun, 16 Aug 2026 09:58:58 +0200 Subject: [PATCH 2/5] docs(gui): add Storage Log Guard UX screenshot for PR review English focused crop of the changed Log Guard surface: overview tabs, write-load poster, protection, compact, and ranked sources. --- gui/pr-assets/storage-log-guard-ux.png | Bin 0 -> 210822 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 gui/pr-assets/storage-log-guard-ux.png diff --git a/gui/pr-assets/storage-log-guard-ux.png b/gui/pr-assets/storage-log-guard-ux.png new file mode 100644 index 0000000000000000000000000000000000000000..c95154ed451130b9ecdfd55d2f7c27bc9d6176b6 GIT binary patch literal 210822 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 Date: Sun, 16 Aug 2026 10:53:35 +0200 Subject: [PATCH 3/5] fix(gui): type Log Guard SQL helpers and use native meter bars Annotate compat SQL helpers for strict TS. Replace role=meter poster tracks with native for react-doctor. --- .../storage-workspace/StorageWorkspace.tsx | 13 ++++------ gui/src/styles-storage-workspace.css | 26 ++++++++++++++++--- .../storage-log-guard-protection.test.tsx | 4 +-- gui/tests/storage-log-guard.test.tsx | 6 ++--- src/codex/log-guard/protection.ts | 4 +-- 5 files changed, 35 insertions(+), 18 deletions(-) diff --git a/gui/src/components/storage-workspace/StorageWorkspace.tsx b/gui/src/components/storage-workspace/StorageWorkspace.tsx index 03875cf2bf..bfeb98ea77 100644 --- a/gui/src/components/storage-workspace/StorageWorkspace.tsx +++ b/gui/src/components/storage-workspace/StorageWorkspace.tsx @@ -188,16 +188,13 @@ function WritePosterMeter({ {modeLabel} {percent}
-
-
-
+ />
); } diff --git a/gui/src/styles-storage-workspace.css b/gui/src/styles-storage-workspace.css index 682ecde43f..fb1425b6ad 100644 --- a/gui/src/styles-storage-workspace.css +++ b/gui/src/styles-storage-workspace.css @@ -775,17 +775,37 @@ } .log-guard-write-poster-track { + display: block; + width: 100%; height: 0.55rem; + border: 0; border-radius: 999px; background: color-mix(in srgb, var(--border, #2a3340) 70%, transparent); overflow: hidden; + appearance: none; +} + +.log-guard-write-poster-track::-webkit-meter-inner-element { + display: block; } -.log-guard-write-poster-fill { +.log-guard-write-poster-track::-webkit-meter-bar { + background: color-mix(in srgb, var(--border, #2a3340) 70%, transparent); + border: 0; + border-radius: 999px; height: 100%; - border-radius: inherit; +} + +.log-guard-write-poster-track::-webkit-meter-optimum-value, +.log-guard-write-poster-track::-webkit-meter-suboptimum-value, +.log-guard-write-poster-track::-webkit-meter-even-less-good-value { background: var(--accent, #3b82f6); - min-width: 0; + border-radius: 999px; +} + +.log-guard-write-poster-track::-moz-meter-bar { + background: var(--accent, #3b82f6); + border-radius: 999px; } diff --git a/gui/tests/storage-log-guard-protection.test.tsx b/gui/tests/storage-log-guard-protection.test.tsx index 549a818c53..8cc1bf5741 100644 --- a/gui/tests/storage-log-guard-protection.test.tsx +++ b/gui/tests/storage-log-guard-protection.test.tsx @@ -142,8 +142,8 @@ test("Storage write poster prefers payload bytes and never shows raw targets", ( expect(html).toContain("Future write load"); expect(html).toContain("12%"); expect(html).toContain("8%"); - expect(html).toContain('style="width:12%"'); - expect(html).toContain('style="width:8%"'); + expect(html).toContain('value="12"'); + expect(html).toContain('value="8"'); expect(html).toContain("Rank 1"); // Ranked sources stay redacted; help copy may mention class names abstractly. expect(html).toContain("Rank 1"); diff --git a/gui/tests/storage-log-guard.test.tsx b/gui/tests/storage-log-guard.test.tsx index 006693de28..a37111fa3c 100644 --- a/gui/tests/storage-log-guard.test.tsx +++ b/gui/tests/storage-log-guard.test.tsx @@ -81,9 +81,9 @@ test("Storage overview renders read-only Codex diagnostic log health", () => { expect(html).toContain("100%"); expect(html).toContain("5%"); expect(html).toContain("4%"); - expect(html).toContain('style="width:100%"'); - expect(html).toContain('style="width:5%"'); - expect(html).toContain('style="width:4%"'); + expect(html).toContain('value="100"'); + expect(html).toContain('value="5"'); + expect(html).toContain('value="4"'); expect(html).toContain("Bars show estimated payload size"); expect(html).toContain("External SQLite storage"); expect(html).not.toContain("/state/codex"); diff --git a/src/codex/log-guard/protection.ts b/src/codex/log-guard/protection.ts index fb0be4d697..379dbcd851 100644 --- a/src/codex/log-guard/protection.ts +++ b/src/codex/log-guard/protection.ts @@ -88,9 +88,9 @@ export function codexLogGuardCompatDropWhereSql( targetExpr = "target", levelExpr = "upper(level)", ): string { - const desc = (base) => + const desc = (base: string) => "(" + targetExpr + " = '" + base + "' OR substr(" + targetExpr + ", 1, " + (base.length + 2) + ") = '" + base + "::')"; - const anyDesc = (bases) => "(" + bases.map(desc).join(" OR ") + ")"; + const anyDesc = (bases: readonly string[]) => "(" + bases.map(desc).join(" OR ") + ")"; return [ targetExpr + " = 'log'", targetExpr + " = 'codex_otel.log_only'", From cc661e115b816ce583256708bf71e27e5801b519 Mon Sep 17 00:00:00 2001 From: Wibias <37517432+Wibias@users.noreply.github.com> Date: Sun, 16 Aug 2026 11:22:08 +0200 Subject: [PATCH 4/5] fix(log-guard): address CodeRabbit write-poster and trigger findings Keep off-mode byte shares null when estimated bytes total zero so unit selection matches compat/quiet. Generate the compat trigger WHEN clause from codexLogGuardCompatDropWhereSql, scope GUI meter assertions by mode, and pin the Windows snapshot enumeration 30s timeout in tests. --- .../storage-log-guard-protection.test.tsx | 4 ++-- gui/tests/storage-log-guard.test.tsx | 6 +++--- src/codex/log-guard/inspect.ts | 7 ++++++- src/codex/log-guard/protection.ts | 15 +------------- tests/codex-app-server-processes.test.ts | 11 ++++++++++ tests/codex-log-guard-inspect.test.ts | 20 +++++++++++++++++++ tests/codex-log-guard-protection.test.ts | 15 ++++++++++++++ 7 files changed, 58 insertions(+), 20 deletions(-) diff --git a/gui/tests/storage-log-guard-protection.test.tsx b/gui/tests/storage-log-guard-protection.test.tsx index 8cc1bf5741..83546e6e79 100644 --- a/gui/tests/storage-log-guard-protection.test.tsx +++ b/gui/tests/storage-log-guard-protection.test.tsx @@ -142,8 +142,8 @@ test("Storage write poster prefers payload bytes and never shows raw targets", ( expect(html).toContain("Future write load"); expect(html).toContain("12%"); expect(html).toContain("8%"); - expect(html).toContain('value="12"'); - expect(html).toContain('value="8"'); + expect(html).toMatch(/data-testid="log-guard-write-poster-compat"[\s\S]*?value="12"/); + expect(html).toMatch(/data-testid="log-guard-write-poster-quiet"[\s\S]*?value="8"/); expect(html).toContain("Rank 1"); // Ranked sources stay redacted; help copy may mention class names abstractly. expect(html).toContain("Rank 1"); diff --git a/gui/tests/storage-log-guard.test.tsx b/gui/tests/storage-log-guard.test.tsx index a37111fa3c..f3805840e8 100644 --- a/gui/tests/storage-log-guard.test.tsx +++ b/gui/tests/storage-log-guard.test.tsx @@ -81,9 +81,9 @@ test("Storage overview renders read-only Codex diagnostic log health", () => { expect(html).toContain("100%"); expect(html).toContain("5%"); expect(html).toContain("4%"); - expect(html).toContain('value="100"'); - expect(html).toContain('value="5"'); - expect(html).toContain('value="4"'); + expect(html).toMatch(/data-testid="log-guard-write-poster-off"[\s\S]*?value="100"/); + expect(html).toMatch(/data-testid="log-guard-write-poster-compat"[\s\S]*?value="5"/); + expect(html).toMatch(/data-testid="log-guard-write-poster-quiet"[\s\S]*?value="4"/); expect(html).toContain("Bars show estimated payload size"); expect(html).toContain("External SQLite storage"); expect(html).not.toContain("/state/codex"); diff --git a/src/codex/log-guard/inspect.ts b/src/codex/log-guard/inspect.ts index b853a4e52f..6970a5fb4f 100644 --- a/src/codex/log-guard/inspect.ts +++ b/src/codex/log-guard/inspect.ts @@ -383,7 +383,12 @@ function readMetrics(db: Database, columns: string[]): CodexLogGuardMetrics | nu } const share = (keep: number, total: number) => (total > 0 ? Math.min(1, Math.max(0, keep / total)) : 1); const writePoster = { - off: { keepRowsShare: 1, keepBytesShare: estimatedLogBytes === null ? null : 1 }, + off: { + keepRowsShare: 1, + // Keep unit selection consistent with compat/quiet: when estimated bytes + // exist but total 0, byte shares stay null so the GUI uses row shares. + keepBytesShare: estimatedLogBytes !== null && estimatedLogBytes > 0 ? 1 : null, + }, compat: { keepRowsShare: share(totalRows - droppedCompatRows, totalRows), keepBytesShare: estimatedLogBytes === null || droppedCompatBytes === null diff --git a/src/codex/log-guard/protection.ts b/src/codex/log-guard/protection.ts index 379dbcd851..3b90b6fb4b 100644 --- a/src/codex/log-guard/protection.ts +++ b/src/codex/log-guard/protection.ts @@ -112,20 +112,7 @@ export function codexLogGuardCompatDropWhereSql( const COMPAT_TRIGGER_SQL = `CREATE TRIGGER ${COMPAT_TRIGGER} BEFORE INSERT ON logs WHEN - NEW.target = 'log' - OR NEW.target = 'codex_otel.log_only' - OR NEW.target = 'codex_otel.trace_safe' - OR NEW.target = 'codex_api::responses_websocket_timing' - OR NEW.target = 'codex_core::post_sampling_token_estimate' - OR (${targetOrDescendant("hyper_util")} AND upper(NEW.level) IN ('TRACE', 'DEBUG', 'INFO')) - OR (${anyTargetOrDescendant(["codex_rmcp_client", "rmcp"])} AND upper(NEW.level) IN ('TRACE', 'DEBUG')) - OR (${anyTargetOrDescendant([ - "codex_http_client::transport", - "codex_api::sse", - "codex_tui::streaming::controller", - "codex_tui::streaming::table_holdback", - ])} AND upper(NEW.level) = 'TRACE') - OR (NEW.target = 'opentelemetry_sdk' AND upper(NEW.level) IN ('TRACE', 'DEBUG')) + ${codexLogGuardCompatDropWhereSql("NEW.target", "upper(NEW.level)")} BEGIN SELECT RAISE(IGNORE); END`; diff --git a/tests/codex-app-server-processes.test.ts b/tests/codex-app-server-processes.test.ts index 7d89663ec3..2de555416b 100644 --- a/tests/codex-app-server-processes.test.ts +++ b/tests/codex-app-server-processes.test.ts @@ -83,6 +83,17 @@ describe("collectCodexAppServerCatalogState (#857)", () => { expect(status.state).toBe("not_running"); }); + test("Windows snapshot enumeration uses a 30s PowerShell timeout", () => { + // Log Guard apply waits for Codex process exit; a short PowerShell timeout + // previously made "Codex is still running" look like "enumeration failed". + const source = readFileSync( + join(import.meta.dir, "../src/codex/app-server-processes.ts"), + "utf8", + ); + expect(source).toMatch(/timeout:\s*30_000/); + expect(source).toContain("export function listWindowsSnapshots"); + }); + test("enumeration failure reports unknown, never not_running", () => { // On macOS the win32 enumeration path has no powershell.exe → it throws, // which must surface as unknown rather than "nothing is running". diff --git a/tests/codex-log-guard-inspect.test.ts b/tests/codex-log-guard-inspect.test.ts index 1e77ed3dd0..890e5d70ab 100644 --- a/tests/codex-log-guard-inspect.test.ts +++ b/tests/codex-log-guard-inspect.test.ts @@ -122,6 +122,26 @@ describe("Codex Log Guard inspection", () => { }); }); + test("write poster byte shares stay null when estimated bytes total zero", () => { + const root = makeRoot(); + const codexHome = join(root, "codex-home"); + const databasePath = join(codexHome, "logs_2.sqlite"); + mkdirSync(codexHome); + writeFileSync(join(codexHome, "config.toml"), ""); + createCurrentLogsDb(databasePath); + + const db = new Database(databasePath); + db.exec("UPDATE logs SET estimated_bytes = 0"); + db.close(); + + const report = inspectCodexLogs({ codexHome }); + expect(report.metrics?.writePoster).toEqual({ + off: { keepRowsShare: 1, keepBytesShare: null }, + compat: { keepRowsShare: 0.5, keepBytesShare: null }, + quiet: { keepRowsShare: 0.5, keepBytesShare: null }, + }); + }); + test("never exposes feedback bodies, arbitrary levels, target names, or paths", () => { const root = makeRoot(); const codexHome = join(root, "codex-home"); diff --git a/tests/codex-log-guard-protection.test.ts b/tests/codex-log-guard-protection.test.ts index a2e0a7be8f..3c977ac93f 100644 --- a/tests/codex-log-guard-protection.test.ts +++ b/tests/codex-log-guard-protection.test.ts @@ -5,6 +5,7 @@ import { tmpdir } from "node:os"; import { join } from "node:path"; import { + codexLogGuardCompatDropWhereSql, getCodexLogGuardProtectionStatus, protectCodexLogs, repairCodexLogGuardProtection, @@ -327,6 +328,20 @@ describe("Codex Log Guard protection", () => { expect(unprotectCodexLogs(deps).ok).toBe(true); expect(triggers(databasePath)).toEqual([]); }); + test("compat trigger WHEN clause is generated from the inspect drop helper", () => { + // Write-poster impact meters use codexLogGuardCompatDropWhereSql(); the + // installed trigger must use that same predicate so reported shares match + // the rows Compatibility actually drops. + const { codexHome, databasePath } = fixture(); + const deps = testDeps(codexHome); + expect(protectCodexLogs("compat", deps).ok).toBe(true); + const sql = triggers(databasePath).find((row) => row.name === "opencodex_log_guard_compat_v1")?.sql ?? ""; + const expected = codexLogGuardCompatDropWhereSql("NEW.target", "upper(NEW.level)"); + // SQLite may reformat whitespace when storing CREATE TRIGGER SQL. + const normalize = (value: string) => value.replace(/\s+/g, " ").trim(); + expect(normalize(sql)).toContain(normalize(expected)); + }); + test("a schema change between inspection and the locked write is refused", () => { // TOCTOU: the lock serializes OpenCodex against itself, not against Codex or // another SQLite writer. The locked recheck used to compare column NAMES From 76f247ddc149c7dadf371271bc86aecb9a29358d Mon Sep 17 00:00:00 2001 From: Wibias <37517432+Wibias@users.noreply.github.com> Date: Sun, 16 Aug 2026 11:31:03 +0200 Subject: [PATCH 5/5] test(log-guard): scope Windows snapshot timeout assertion Limit the 30s timeout pin to the listWindowsSnapshots body so a stray 30_000 token elsewhere cannot keep the regression green. --- tests/codex-app-server-processes.test.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tests/codex-app-server-processes.test.ts b/tests/codex-app-server-processes.test.ts index 2de555416b..127fd54da3 100644 --- a/tests/codex-app-server-processes.test.ts +++ b/tests/codex-app-server-processes.test.ts @@ -90,8 +90,15 @@ describe("collectCodexAppServerCatalogState (#857)", () => { join(import.meta.dir, "../src/codex/app-server-processes.ts"), "utf8", ); - expect(source).toMatch(/timeout:\s*30_000/); expect(source).toContain("export function listWindowsSnapshots"); + const start = source.indexOf("export function listWindowsSnapshots"); + expect(start).toBeGreaterThanOrEqual(0); + const nextExport = source.indexOf("\nexport function", start + 1); + const windowsSource = source.slice( + start, + nextExport === -1 ? source.length : nextExport, + ); + expect(windowsSource).toMatch(/execFileSync\([\s\S]*timeout:\s*30_000/); }); test("enumeration failure reports unknown, never not_running", () => {