diff --git a/docs/plans/state.json b/docs/plans/state.json index 4046535..b3bd7e0 100644 --- a/docs/plans/state.json +++ b/docs/plans/state.json @@ -581,6 +581,18 @@ ], "test_status": "pnpm test:run src/audit/phase0BaselineScriptWiring.test.ts + pnpm typecheck passing" }, + "phase0-live-baseline-backend-list-dedup-in-cli": { + "status": "completed", + "date": "2026-02-27", + "updated": "2026-02-27", + "summary": "Deduplicated repeated backend names in phase-0 capture/drift CLI parsing so repeated `--backend` values do not duplicate drift evaluation rows or alter backend-scoped artifact suffix selection.", + "files_modified": [ + "scripts/capture-phase0-live-baseline.ts", + "scripts/check-phase0-baseline-backend-drift.ts", + "docs/plans/state.json" + ], + "test_status": "pnpm typecheck + node --import tsx/esm scripts/check-phase0-baseline-backend-drift.ts --artifacts-dir docs/plans/artifacts --backend native,native --format json + synthetic-audit capture smoke check passing" + }, "phase0-instrumentation-ticket-checklist": { "status": "completed", "date": "2026-02-25", diff --git a/scripts/capture-phase0-live-baseline.ts b/scripts/capture-phase0-live-baseline.ts index c3075cc..74a701e 100644 --- a/scripts/capture-phase0-live-baseline.ts +++ b/scripts/capture-phase0-live-baseline.ts @@ -146,9 +146,14 @@ function parseBackendTargets(raw: string | undefined): Phase0BackendTarget[] | u return undefined; } const parsed: Phase0BackendTarget[] = []; + const seen = new Set(); for (const value of values) { if (BACKEND_TARGETS.includes(value as Phase0BackendTarget)) { - parsed.push(value as Phase0BackendTarget); + const backend = value as Phase0BackendTarget; + if (!seen.has(backend)) { + parsed.push(backend); + seen.add(backend); + } continue; } throw new Error(`Invalid backend "${value}".`); diff --git a/scripts/check-phase0-baseline-backend-drift.ts b/scripts/check-phase0-baseline-backend-drift.ts index 7a1481b..6204cda 100644 --- a/scripts/check-phase0-baseline-backend-drift.ts +++ b/scripts/check-phase0-baseline-backend-drift.ts @@ -126,9 +126,14 @@ function parseOptionalInteger(raw: string | undefined, flag: string): number | u function parseBackends(raw: string | undefined): Phase0BackendTarget[] { const values = parseCsv(raw) ?? ['pi_embedded', 'native']; const parsed: Phase0BackendTarget[] = []; + const seen = new Set(); for (const value of values) { if (BACKEND_TARGETS.includes(value as Phase0BackendTarget)) { - parsed.push(value as Phase0BackendTarget); + const backend = value as Phase0BackendTarget; + if (!seen.has(backend)) { + parsed.push(backend); + seen.add(backend); + } continue; } throw new Error(`Invalid backend "${value}".`);