Repository navigation
[Refactor] Remove no-explicit-any suppressions: batch 3 (integrations) - #2309
Conversation
|
Important Review skippedAuto reviews are limited based on label configuration. 🏷️ Required labels (at least one): 1
Please check the settings in the CodeRabbit UI or the
|
|
No new code issues found in the latest commit; both earlier findings are verified fixed in the current code. See session
Reviewed 1a29fc7 |
|
Self-review of the full diff (24 files: 23 campaign files + the ledger). Summary of what I checked and where reviewers should look: Verified clean
Behavior-equivalent changes a reviewer should confirm are acceptable
Environment notes
|
Review statusThis PR was opened by an automated account. A human maintainer must verify the change intent, provenance, and validation before merging. Current step: The required review sequence passed. Remaining merge requirements apply. Review-state labels are managed by this workflow; do not edit them manually. |
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
Upstream moved e943530 to 73931fe, 9 commits: Zoo-Code-Org#2275 zustand v5.0.16, Zoo-Code-Org#2274 ai sdk bump, Zoo-Code-Org#2273 @types/katex, Zoo-Code-Org#2341 the v3.96.0 release prep, Zoo-Code-Org#2309 batch 3 of the no-explicit-any suppression removal in the integrations area, Zoo-Code-Org#2297 the interrupted-message-write resume fix, Zoo-Code-Org#2120 partial-message throttling, Zoo-Code-Org#2308 webview tests on four workers, and Zoo-Code-Org#1838 reporting emergency condense like the automatic path. No campaign head is an ancestor of that main, so this is a merge commit rather than a fast-forward. The single conflict was the src/extension/api.ts import block. It is resolved as a union: main adds TaskMessagesReadError, getErrorCode and tracePersistenceEvent, and this branch keeps its import type { Task } line. Neither side was dropped. Suppression baseline: Zoo-Code-Org#2309 lowered the no-explicit-any counts in the integrations area, so the never-raise-a-count baseline is mains lower tree at 73931fe, not the e943530 one. The pre-commit hook shells out to pnpm, which is not installed on this lane PATH, so this merge commit was made with --no-verify and the gates - tsc, eslint with the suppressions file, prettier and the vitest lanes for every file in the diff - are run on the merged tree instead.
Related GitHub Issue
Part of the no-explicit-any suppression elimination campaign. This is batch 3. It follows #2281 (batch 1) and #2286 (batch 2). The campaign tracks the suppressions ledger in
src/eslint-suppressions.json; this batch has no separate tracking issue.Description
Batch 3 removes every
no-explicit-anysuppression insrc/integrations. The ledger shrinks from 3,315 suppressions across 292 files to 2,884 suppressions across 269 files. That removes all 431 suppressedanys in the 23integrationsfiles, and the ledger entry for each file is gone.The fixes are real type fixes. No
as any, no@ts-ignore, and no moved suppressions. Assertions and runtime behavior stay unchanged. The main patterns:diffViewProvider["relPath"]), perAGENTS.md.src/test-utils/vscode.ts, or full structuralvscode.Tab/TabGroupdoubles. Double assertions appear once per double at its construction site, with a comment that names the members the double provides.getTheme.tsnow uses recursiveJsonValue/ParsedThemetypes instead ofany.execSyncfailure paths in the terminal stream helpers use anExecExceptionintersection instead oferror: any.__TEST_ENV__global uses a propervardeclaration instead of(global as any).Two production files change:
src/integrations/theme/getTheme.ts(JSON types plus one documented theme conversion) andsrc/integrations/editor/DiffViewProvider.ts(typed rejection handler). All other changes are test files. No user-facing behavior changes.Test Procedure
Validation ran after a rebase onto latest
main(debd3c7). All gates pass:src/integrationssuites pass. 564 test files: 564 passed, 23 skipped (platform-gated shell and PowerShell suites). Per-file runs: DiffViewProvider.spec 71/71, TerminalProfile.spec 57/57, TerminalProcess.spec 41/41, TerminalRegistry.spec 19/19, TerminalProcess.test 7/7, ExecaTerminalProcess.spec 19/19, OutputInterceptor 25/25, open-file 8/8, EditorUtils 8/8, InterpretExitCode 9/9, kimi-code oauth + export-markdown 35/35.pnpm lintpasses with zero warnings across all 12 workspace packages. Each touched file was pruned witheslint --prune-suppressions --max-warnings=0.pnpm check-typespasses (root project plus 11 turbo tasks).pnpm --dir src testpasses. 12,276 tests passed, 39 skipped (platform-gated).pnpm test: 14/14 turbo tasks pass. The first full run had one transient failure in the extension suite that matches the known order-dependentextension.spec.tsflake. Two later full runs pass clean. Recorded, not chased.--max-warnings=0, Prettier, mutation judgement).Guardrail scan since #2279: main added no new suppressions. Main added one direct
vi.clearAllMocks()call inwebview-ui/.../SettingsView.spec.tsx(#2271). The webview workspace has no reset helper, and the #2279 guardrail covers the extension workspace only, so this matches the current webview convention. Recorded here, not changed in this batch.Pre-Submission Checklist
src/integrationssuppressions only.as any, no@ts-ignore, and no new suppressions. The ledger change removes exactly 23 files; no entry is added or raised.src/test-utils/vscode.tshelpers, or single construction-site double assertions with comments naming the provided members.Visual Snapshots
Not applicable. This change is type-level only. No rendered UI changes.
Videos
Not applicable. No interaction or animation changes.
Documentation Updates
No functionality changed, so the docs repository needs no companion PR.
Additional Notes
Ledger delta: 3,315 suppressions across 292 files → 2,884 suppressions across 269 files (−431 suppressions, −23 files). The next batch can pick up any remaining directory. The workspace baseline needs
packages/buildcompiled andpnpm --dir src bundlerun before__tests__/dist_assets.spec.tscan pass; the sandbox needed that step once.