From 041d48eccbc591c8a46b904c31358388cf563ae4 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 25 Aug 2026 00:22:20 -0700 Subject: [PATCH] refactor(config): simplify allowed-value formatting (#129064) * refactor(config): simplify allowed-value formatting * chore(config): tighten allowed-value assertion baseline --- config/assertion-safety-baseline.txt | 2 +- src/config/allowed-values.ts | 23 +++++------------------ 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/config/assertion-safety-baseline.txt b/config/assertion-safety-baseline.txt index cb83fa4ec755..fc02a56e8d19 100644 --- a/config/assertion-safety-baseline.txt +++ b/config/assertion-safety-baseline.txt @@ -2657,7 +2657,7 @@ src/commands/tasks.ts 2 src/commands/telemetry-exporter-summary.ts 3 src/commands/test-runtime-config-helpers.ts 3 src/config/agent-dirs.ts 1 -src/config/allowed-values.ts 2 +src/config/allowed-values.ts 1 src/config/bundled-channel-config-metadata.generated.ts 1 src/config/channel-alias-migration.ts 2 src/config/channel-capabilities.ts 2 diff --git a/src/config/allowed-values.ts b/src/config/allowed-values.ts index 6f9e8cf65f66..39446a037fcb 100644 --- a/src/config/allowed-values.ts +++ b/src/config/allowed-values.ts @@ -44,22 +44,13 @@ function toAllowedValueLabel(value: unknown): string { } function toAllowedValueValue(value: unknown): string { - if (typeof value === "string") { - return value; - } - return safeStringify(value); + return typeof value === "string" ? value : safeStringify(value); } function toAllowedValueDedupKey(value: unknown): string { - if (value === null) { - return "null:null"; - } - const kind = typeof value; + const kind = value === null ? "null" : typeof value; // Preserve schema distinctions such as numeric 1 vs string "1" even when labels match. - if (kind === "string") { - return `string:${value as string}`; - } - return `${kind}:${safeStringify(value)}`; + return `${kind}:${toAllowedValueValue(value)}`; } /** Summarizes enum/allowed-value candidates for compact validation error hints. */ @@ -97,14 +88,10 @@ export function summarizeAllowedValues( }; } -function messageAlreadyIncludesAllowedValues(message: string): boolean { - const lower = normalizeLowercaseStringOrEmpty(message); - return lower.includes("(allowed:") || lower.includes("expected one of"); -} - /** Appends an allowed-values hint unless the validation message already includes one. */ export function appendAllowedValuesHint(message: string, summary: AllowedValuesSummary): string { - if (messageAlreadyIncludesAllowedValues(message)) { + const lower = normalizeLowercaseStringOrEmpty(message); + if (lower.includes("(allowed:") || lower.includes("expected one of")) { return message; } return `${message} (allowed: ${summary.formatted})`;