From 1294a35b320bd894f64000410a6570334c1391f9 Mon Sep 17 00:00:00 2001 From: davidrobertson Date: Sat, 25 Jul 2026 14:30:29 -0400 Subject: [PATCH] fix: preserve boolean private fields --- plugins/codex-lcm/src/redact-assignments.ts | 5 ++++- plugins/codex-lcm/tests/redact.test.ts | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/plugins/codex-lcm/src/redact-assignments.ts b/plugins/codex-lcm/src/redact-assignments.ts index 2bb3fa4..607d1d9 100644 --- a/plugins/codex-lcm/src/redact-assignments.ts +++ b/plugins/codex-lcm/src/redact-assignments.ts @@ -57,7 +57,10 @@ export function isBenignTokenMetric(key: string, value: unknown): boolean { } export function shouldRedactSecretKey(key: string, value: unknown): boolean { - return isSecretAssignmentKey(key) && !isBenignTokenMetric(key, value); + const parts = keyParts(key); + return isSecretAssignmentKey(key) && + !isBenignTokenMetric(key, value) && + !(typeof value === "boolean" && parts.length === 1 && parts[0] === "private"); } function redactSecretAssignmentLine(value: string, path: string, redactions: RedactionRecord[]): string { diff --git a/plugins/codex-lcm/tests/redact.test.ts b/plugins/codex-lcm/tests/redact.test.ts index fac1882..db3b396 100644 --- a/plugins/codex-lcm/tests/redact.test.ts +++ b/plugins/codex-lcm/tests/redact.test.ts @@ -24,6 +24,13 @@ test("redacts secret-like object keys recursively", () => { assert.equal(result.truncations.length, 0); }); +test("preserves a benign private package flag", () => { + const result = sanitizeForStorage({ private: true }); + + assert.deepEqual(result.value, { private: true }); + assert.equal(result.redactions.length, 0); +}); + test("preserves benign token budget and count metadata", () => { const result = sanitizeForStorage({ token_budget: 1200,