fix(eslint): remove projectService from Svelte parser — restores fast lint #600

Merged
marcel merged 1 commits from fix/eslint-projectservice-slow-lint into main 2026-05-15 20:10:09 +02:00
Owner

Summary

  • Removes projectService: true from the Svelte-files ESLint parser config, restoring fast CI lint (~30s vs 7+ min).

Root cause

5646e739 added an unconditional svelte-kit sync step before linting so .svelte-kit/tsconfig.json always exists (correct fix). This inadvertently activated projectService: true on every run — ESLint now builds the full TypeScript language service for all .svelte files.

Before that commit, cache-hit runs had no tsconfig.json, so projectService fell back silently to AST-only parsing — fast. Now it always resolves the project and does full type-aware compilation — slow.

Why projectService is not needed

All rules in the Svelte-specific config block are AST-selector-based no-restricted-syntax checks. None of them require type information. parser: ts.parser is still present and sufficient for correct <script lang="ts"> parsing.

Test plan

  • npm run lint passes locally after the change
  • CI lint step completes in under 2 minutes

🤖 Generated with Claude Code

## Summary - Removes `projectService: true` from the Svelte-files ESLint parser config, restoring fast CI lint (~30s vs 7+ min). ## Root cause `5646e739` added an unconditional `svelte-kit sync` step before linting so `.svelte-kit/tsconfig.json` always exists (correct fix). This inadvertently activated `projectService: true` on every run — ESLint now builds the full TypeScript language service for all `.svelte` files. Before that commit, cache-hit runs had no `tsconfig.json`, so `projectService` fell back silently to AST-only parsing — fast. Now it always resolves the project and does full type-aware compilation — slow. ## Why projectService is not needed All rules in the Svelte-specific config block are AST-selector-based `no-restricted-syntax` checks. None of them require type information. `parser: ts.parser` is still present and sufficient for correct `<script lang="ts">` parsing. ## Test plan - [x] `npm run lint` passes locally after the change - [ ] CI lint step completes in under 2 minutes 🤖 Generated with [Claude Code](https://claude.com/claude-code)
marcel added 1 commit 2026-05-15 20:10:03 +02:00
fix(eslint): remove projectService from Svelte parser — restores fast lint
Some checks failed
CI / OCR Service Tests (pull_request) Has been cancelled
CI / Backend Unit Tests (pull_request) Has been cancelled
CI / fail2ban Regex (pull_request) Has been cancelled
CI / Compose Bucket Idempotency (pull_request) Has been cancelled
CI / Unit & Component Tests (pull_request) Has been cancelled
CI / Unit & Component Tests (push) Successful in 3m23s
CI / OCR Service Tests (push) Successful in 17s
CI / Backend Unit Tests (push) Successful in 2m37s
CI / fail2ban Regex (push) Successful in 44s
CI / Compose Bucket Idempotency (push) Successful in 1m1s
nightly / deploy-staging (push) Failing after 2m33s
23515b8542
5646e739 added svelte-kit sync before lint so .svelte-kit/tsconfig.json
always exists. This activated projectService: true for every run, which
builds the full TypeScript language service for all .svelte files and
caused CI lint to take 7+ minutes.

None of the rules in the Svelte-specific block need type information —
they are all AST-selector-based no-restricted-syntax checks. Removing
projectService restores the previous fast path without losing any lint
coverage.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
marcel merged commit 23515b8542 into main 2026-05-15 20:10:09 +02:00
marcel deleted branch fix/eslint-projectservice-slow-lint 2026-05-15 20:10:09 +02:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: marcel/familienarchiv#600