fix: repair pnpm run lint and gate it in CI - #112
Conversation
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013S4pYSjwUsiZtdtMMpW7bw
|
ⓘ Qodo reviews are paused because the subscription is no longer active. Ask your workspace admin to reactivate the subscription to resume reviews. Manage billing |
PR Summary by QodoRepair lint toolchain and gate releases on ESLint
AI Description
Diagram
High-Level Assessment
Files changed (4)
|
Code Review by Qodo
1. Fork pull requests skip lint checks
|
Add a job-level `permissions: contents: read` block to the lint job. `eslint .` executes the repo's ESLint config and every installed plugin, so it should not inherit the caller workflow's contents:write / id-token:write token. Bump engines.node to >=22.0.0. The previous >=18.0.0 is a false claim: eslint-config-etherpad@5 pulls eslint-visitor-keys@5.0.1, which excludes Node 18, and >=22.0.0 is the documented ether plugin floor. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013S4pYSjwUsiZtdtMMpW7bw
Why
pnpm run lintwas broken in this repo and nothing noticed, because no workflowran it.
typescriptwas pinned to^7.0.2. TypeScript 7 is the native port and nolonger exposes the legacy compiler API, so
ts-api-utilsthrowsCannot read properties of undefined (reading 'Intrinsic')while the ESLintconfig is still loading, and takes the whole config down before a single file is
linted.
What changed
typescript^7.0.2→~6.0.3.eslint-config-etherpad@5declarestypescript: ">=4.8.4 <6.1.0", so a future TypeScript major now fails loudlyat install time instead of silently breaking lint.
eslint-config-etherpad^4.0.5→^5.0.0..github/workflows/lint.yml, wired intotest-and-release.ymlas alintjob and added to thereleasejob'sneeds:— so lint now gatesreleases the same way the backend/frontend tests do.
per-platform binaries that TypeScript 6 does not.
Lint result
pnpm run lintis clean with no code changes at all — the config was the onlything broken.
Follows the already-merged ether/ep_cursortrace#117,
ether/ep_clear_formatting#96 and ether/ep_git_commit_saved_revision#107.
🤖 Generated with Claude Code
https://claude.ai/code/session_013S4pYSjwUsiZtdtMMpW7bw