chore: eslint 10 + typescript-eslint 8 flat config, CI action bumps, hardened release - #61
Conversation
- eslint 8 -> 10, @typescript-eslint/* 7 -> typescript-eslint 8 - replace .eslintrc.cjs with a flat eslint.config.mjs - drop eslint-plugin-import + eslint-import-resolver-alias: the @ -> ./src alias was dead (no src/ dir) and TypeScript already validates imports - migrate .eslintignore into the config's ignores; drop the --ext flag lint, format:check, tsc:check, test (76) and build all pass.
- actions/checkout v5 -> v7, volta-cli/action v4 -> v5, setup-node v5 -> v6 (clears the deprecated-Node-20-actions warnings) - test matrices: node [20, 22, 24] -> [22, 24] - release.yml: npm version --allow-same-version + only commit when the version actually changed, so a pre-bumped branch can't break a release
There was a problem hiding this comment.
Code Review
This pull request migrates the project's ESLint configuration to the flat config format (eslint.config.mjs), upgrading ESLint to v10 and updating related dependencies. The review feedback correctly identifies that the Prettier configuration is not placed at the end of the configuration array, which contradicts the inline comment and may prevent it from overriding conflicting formatting rules in subsequent custom blocks.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
Per PR review: prettier was placed before the custom rule blocks despite the comment saying it must be last. Move it to the end so it reliably overrides any conflicting formatting rules.
Consolidates the open dependency/CI update PRs.
ESLint flat-config migration (closes #24, #29)
.eslintrc.cjs→ flateslint.config.mjseslint-plugin-import+eslint-import-resolver-alias(the@ → ./srcalias was dead — nosrc/— and TypeScript already validates imports).eslintignorefolded into the configignores; removed the deprecated--extflagCI (closes #49, #59, #60)
[20, 22, 24]→[22, 24]release.ymlhardened:npm version --allow-same-version+ only commit when the version actually changed, so a pre-bumped branch can't break a release (the exact failure mode from the v1.5.0 release)Verified locally:
lint,format:check,tsc:check,test(76 passed, 97% coverage),buildall green.Closes #24, #29, #49, #59, #60.