Skip to content

Conversation

@tylerbutler
Copy link
Member

@tylerbutler tylerbutler commented Jan 12, 2026

Summary

Upgrades typescript-eslint from v8.18 to v8.50 and @eslint/js from v8.57 to v9.39.

Key changes:

  • Dependency upgrades: typescript-eslint v8.50, @eslint/js v9.39, eslint-plugin-jsdoc v61.5
  • Flat config fix: Explicitly sets project: null in parser options to prevent conflict with projectService in newer typescript-eslint versions
  • Adds ~60 inline eslint-disable comments: For cases where auto-fixing || to ?? or && chains to ?. would change behavior for falsy-but-valid values (0, false, empty string)

tylerbutler and others added 14 commits December 15, 2025 18:11
Remove all eslint-suppressions.json files from the repository.
These files were added to suppress ESLint violations during the
typescript-eslint upgrade and are no longer needed.
Add eslint-disable comments for prefer-nullish-coalescing,
prefer-optional-chain, no-unsafe-enum-comparison, strict-boolean-expressions,
no-base-to-string, and await-thenable rules where auto-fix is unsafe.

These violations were previously suppressed by eslint-suppressions.json
files which have been removed. Using inline disables instead of auto-fix
because the auto-fixers can cause subtle logic bugs when converting
|| to ?? or && chains to ?. chains for falsy (but valid) values.
Copilot AI review requested due to automatic review settings January 12, 2026 20:58
@tylerbutler tylerbutler requested review from a team as code owners January 12, 2026 20:58
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades typescript-eslint from v8.18 to v8.50 and @eslint/js from v8.57 to v9.39. The upgrade includes a critical parser configuration fix and adds inline ESLint suppressions where auto-fixing would change code behavior.

Changes:

  • Upgrades core ESLint dependencies to latest compatible versions
  • Fixes parser options conflict by explicitly setting project: null when using projectService
  • Adds inline suppressions for prefer-nullish-coalescing, prefer-optional-chain, and other rules where auto-fix could change behavior with falsy values

Reviewed changes

Copilot reviewed 88 out of 90 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
pnpm-lock.yaml Updates dependency versions for typescript-eslint (v8.50), @eslint/js (v9.39), eslint-plugin-jsdoc (v61.5)
common/build/eslint-config-fluid/package.json Updates package dependency specifiers to match lock file
common/build/eslint-config-fluid/flat.mts Adds project: null parser option to prevent conflict with projectService
common/build/eslint-config-fluid/printed-configs/*.json Auto-generated config changes from new ESLint rule versions
packages//src/**/.ts Adds inline suppressions with justifications for cases where auto-fix would be unsafe
Files not reviewed (2)
  • common/build/eslint-config-fluid/pnpm-lock.yaml: Language not supported
  • pnpm-lock.yaml: Language not supported

throw new Error("Invalid Snapshot.");
}

// eslint-disable-next-line @typescript-eslint/strict-boolean-expressions, @typescript-eslint/prefer-nullish-coalescing -- intentional behavior
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does intentional behavior mean? Here and elsehwere.

* Licensed under the MIT License.
*/

/* eslint-disable @typescript-eslint/prefer-nullish-coalescing, @typescript-eslint/prefer-optional-chain */
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add TODO comments for all file-wide suppressions.

@tylerbutler tylerbutler changed the title chore(eslint): upgrade typescript-eslint to v8.50 build(client): upgrade typescript-eslint to v8.50 Jan 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant