* chore: migrate linting from ESLint to oxlint
- Add .oxlintrc.json with full rule set:
correctness (error), suspicious (warn), perf (warn)
TypeScript, React, jsx-a11y, react-perf, Jest, Mocha plugins
license-header enforced via jsPlugins
promise plugin for async/await patterns
- Slim down eslint.config.mjs to a single rule:
no-restricted-syntax (AST selectors for @vscode/l10n import guard)
TypeScript parser kept so ESLint can parse .ts/.tsx files
- Install oxlint + eslint-plugin-oxlint devDependencies
- Update lint/lint-fix scripts: oxlint runs first, then eslint
- Remove stale eslint-disable comments from source files
(rules migrated to oxlint no longer need inline suppressions)
- Add oxlint-disable comment in test/global.test.ts
for intentional top-level mocha hook
* chore: simplify .oxlintrc.json — remove redundant explicit error rules
Remove ~170 lines of explicit 'error' rules that are already enabled
automatically by oxlint's default correctness category:
- Top-level rules: removed all 55 Default=Γ standard ESLint correctness
rules (constructor-super, no-debugger, no-unused-labels, etc.)
- TS/TSX overrides: removed 10 TypeScript Default=Γ rules
(no-duplicate-enum-values, no-misused-new, no-this-alias,
no-wrapper-object-types, prefer-as-const, triple-slash-reference,
no-extra-non-null-assertion, no-non-null-asserted-optional-chain,
no-unsafe-declaration-merging, prefer-namespace-keyword)
- Removed no-unused-expressions (Default=Γ correctness)
- Removed no-op 'off' entries for Pedantic rules that aren't enabled
(no-throw-literal, prefer-promise-reject-errors, require-await)
Config shrinks from ~400 to ~230 lines. Rule count unchanged: 87 rules.
* fix: add oxlint to devDependencies
The lint script was calling oxlint but the package was missing from
devDependencies, causing CI to fail with 'oxlint: not found' since
npm ci only installs declared dependencies.
* feat(lint): enable oxlint type-aware mode via oxlint-tsgolint
- Install oxlint-tsgolint package (required for typeAware option)
- Add options.typeAware: true to .oxlintrc.json
- Add type-aware rules for *.ts and *.tsx:
no-floating-promises (error), no-misused-promises (error),
require-await (warn), unbound-method (warn), no-base-to-string (warn)
- Disable type-aware rules for test files (jest/mocha overrides)
- Revert eslint.config.mjs to truly minimal (no-restricted-syntax only)
Type-aware mode adds only ~1.5s overhead (8s -> 9.4s) thanks to
oxlint-tsgolint's Rust-based type resolution.
* chore(lint): disable no-unsafe-type-assertion, jsx-no-jsx-as-prop, no-shadow in oxlint; restore tsconfig.json
* fix: tsconfig.test.json - use moduleResolution node to fix TS5095 and TS2742 pipeline failures
* feat: implement worker threads for parallel localization extraction
* fix: enhance integration test retries in CI workflow