From ed122b2caf7c265e477ac05ffe4d203e4e112d43 Mon Sep 17 00:00:00 2001 From: "Bob.Hou" Date: Wed, 5 Aug 2026 11:53:15 -0400 Subject: [PATCH] fix(quality): prune a stale entry from the ESLint suppressions baseline (#9509) release/v3.8.50 fails its own "No new ESLint warnings" gate right now, independent of what any PR changes. Measured directly: a worktree checked out at the current tip alone, no PR merged in, exits 2 with "There are suppressions left that do not occur anymore." Cross-checked against two unrelated open PRs (#9499, #9497) hitting the identical failure, ruling out anything content-specific. The mass-freeze commit that regenerated config/quality/eslint-suppressions.json for the TypeScript 7 migration left one entry pointing at a violation that no longer exists: src/lib/usage/providerLimits.ts no longer triggers no-restricted-imports, but the suppression entry for it does. ESLint's own suppression bookkeeping treats an unmatched entry as a hard failure, separate from and in addition to real unsuppressed errors. --prune-suppressions removes exactly that one entry. It also drops the informal "_comment" key documenting the freeze's origin, since ESLint's suppression writer only round-trips file-keyed entries it manages itself -- that context is not lost, it is still readable at the mass-freeze commit (6b0e11e37) in git history. This is one of two independent problems behind the same gate failure, not the whole fix. Two files (tests/unit/issue-9407-gemini-web-validation-false-positive.test.ts, tests/unit/v1-models-auth-leak-9320.test.ts) carry real, currently unsuppressed no-explicit-any errors with no entry covering them at all -- pruning cannot add what was never there. #9484 fixes those at the source. Verified here that after this change alone, the gate moves from exit 2 (stale suppressions) to the ordinary exit 1 those two remaining errors cause -- both this and #9484 need to land before the gate is green again. Signed-off-by: Minxi Hou Co-authored-by: Diego Rodrigues de Sa e Souza --- config/quality/eslint-suppressions.json | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/config/quality/eslint-suppressions.json b/config/quality/eslint-suppressions.json index e20f17c04c..b25bdbca91 100644 --- a/config/quality/eslint-suppressions.json +++ b/config/quality/eslint-suppressions.json @@ -1,5 +1,4 @@ { - "_comment": "Congelamento em massa gerado em 2026-08-05 durante a migracao para TypeScript 7 (branch release/v3.8.50). A mudanca de toolchain elevou a contagem de violacoes ESLint de forma ampla e mecanica: 4344 violacoes em 676 arquivos, concentradas em @typescript-eslint/no-explicit-any (4063) e no-restricted-imports (203). Todas sao PRE-EXISTENTES ao congelamento - nenhuma foi introduzida para passar o gate. Politica (CLAUDE.md): novas violacoes DEVEM ser corrigidas, nunca adicionadas aqui; esta allowlist so cobre a divida herdada da migracao. As entradas devem ser reduzidas conforme a divida for paga (o gate quality-ratchet impede crescimento). Regenerado a partir de `npx eslint . --format json`; entradas individuais nao levam justificativa propria por serem de origem unica e mecanica - a justificativa e esta.", "open-sse/executors/blackbox-web.ts": { "@typescript-eslint/no-explicit-any": { "count": 1 @@ -1292,11 +1291,6 @@ "count": 1 } }, - "src/lib/usage/providerLimits.ts": { - "no-restricted-imports": { - "count": 1 - } - }, "src/lib/usage/providerWindowCosts.ts": { "no-restricted-syntax": { "count": 1 @@ -3388,4 +3382,4 @@ "count": 5 } } -} +} \ No newline at end of file