docs(backlog): record three tooling debt findings from WS-3 lint cleanup

- TECH-PORTAL-ESLINT-DEPS: audit apps/portal/package.json on the
     same missing-direct-deps pattern uncovered in apps/app (commit
     4369806). Cursor's strict ESLint resolution will hit identical
     issues for portal users until fixed.
   - TECH-ESLINT-V9-MIGRATION: ESLint v8.57.1 is EOL since end-2024.
     Migration to v9 + flat config + modern @antfu/eslint-config is a
     dedicated 1-2 day workstream.
   - TECH-VSCODE-STALE-ADMIN-ENTRY: .vscode/settings.json still
     references apps/admin in eslint.workingDirectories; removed in
     April 2026. Trivial cleanup.
This commit is contained in:
2026-04-30 20:40:42 +02:00
parent 436980632a
commit 37dac93da2

View File

@@ -543,6 +543,85 @@ apps/portal om drift te voorkomen.
---
### TECH-PORTAL-ESLINT-DEPS — Audit apps/portal/package.json op missing direct ESLint deps
**Aanleiding:** Tijdens de Cursor ESLint-integratie fix in `apps/app/`
(commit `4369806`, 2026-04-30) bleek dat 15 ESLint plugins, parsers en
configs alleen via pnpm-hoisting werden gevonden, niet als directe
dependencies in `package.json`. Cursor's ESLint extension gebruikt
strict module resolution en crashte op elke missing plugin in de
`@antfu/eslint-config-vue` extends-chain. Aannemelijk dat
`apps/portal/package.json` hetzelfde patroon heeft, want zelfde antfu-
config-keten en zelfde pnpm-monorepo-structuur. Zonder fix breekt het
ESLint-formatter pad voor iedereen die de portal opent in Cursor —
zelfde 3-uur-diagnose die we vandaag hebben doorgemaakt.
**Wat:**
- Run de diagnose-keten van vandaag (`ls node_modules/.pnpm | grep
"^eslint-plugin-"` vs `ls node_modules | grep "^eslint-plugin-"`,
plus de scoped variant en `vue-eslint-parser`/`@antfu/eslint-config-*`
audits) op `apps/portal/`.
- Voeg alle ontbrekende plugins als directe deps toe via `pnpm add -D`
met versies die matchen wat in pnpm store zit (zero version shifts).
- Verifieer in Cursor dat de portal ESLint extension activeert zonder
errors in Output Channel, en dat save-on-format ESLint correct firet.
**Prioriteit:** Middel — moet vóór sessie 2 (Pages migration) waar
portal-files actief in Cursor bewerkt worden. Niet kritisch nu, maar
de eerste developer die portal in Cursor opent stuit op hetzelfde
issue als vandaag.
---
### TECH-ESLINT-V9-MIGRATION — Migreer apps/app + apps/portal naar ESLint v9 + flat config
**Aanleiding:** ESLint v8.57.1 is end-of-life sinds eind 2024
(zie pnpm install warnings: `eslint@8.57.1: This version is no longer
supported`). Daarnaast zijn meerdere config-pakketten in onze chain
deprecated en migreren naar flat config: `@antfu/eslint-config-vue`,
`@antfu/eslint-config-basic`, `@antfu/eslint-config-ts`, en
`eslint-plugin-markdown`. De huidige `.eslintrc.cjs` legacy-config
werkt, maar er komen geen security fixes meer voor v8 en de transitieve
deprecated-warnings groeien per `pnpm install`. Migratie naar v9 + flat
config (`eslint.config.js`) + modern `@antfu/eslint-config` lost in één
klap alle deprecated warnings op én moderniseert de toolchain.
**Wat:**
- Eigen workstream — niet meeliften op andere sprints want config-
rewrite raakt 200+ regels.
- ESLint 8.57.1 → 9.x upgrade.
- `.eslintrc.cjs` (legacy) → `eslint.config.js` (flat config).
- `@antfu/eslint-config@0.43.x` (legacy) → `@antfu/eslint-config@latest`
(flat-config variant).
- Alle plugins meeschalen naar versies die met v9 + flat config werken.
- Test op apps/app + apps/portal — de hele lint-baseline moet groen
blijven (0 problems voor app, baseline voor portal).
- Hoort vóór WS-3 sessie 2 (pages migration) als de portal-eslint
baseline ook op 0 staat, anders na alle WS-3 sessies. Schat 1-2
dagen werk inclusief regression-fixing.
**Prioriteit:** Middel-Hoog — security-EOL is een doorslaggevend
argument; uitstel tot na WS-3 acceptabel maar niet onbeperkt. Eigen
sprint waard, geen meelift-pad.
---
### TECH-VSCODE-STALE-ADMIN-ENTRY — Verwijder apps/admin uit .vscode/settings.json eslint.workingDirectories
**Aanleiding:** `.vscode/settings.json` bevat in
`eslint.workingDirectories` nog een entry voor `apps/admin`, een
directory die in april 2026 volledig is verwijderd (admin SPA gemerged
in apps/app/ onder `/platform/*`). Cursor's ESLint extension skipt
missende directories silently dus is harmless, maar het is dode config
die bij toekomstig debugging voor verwarring kan zorgen.
**Wat:**
- Open `.vscode/settings.json`.
- Verwijder uit `eslint.workingDirectories` de regel:
`{ "directory": "apps/admin", "changeProcessCWD": true },`
- Commit als `chore(tooling): remove stale apps/admin entry from
.vscode/settings.json`.
**Prioriteit:** Laag — triviaal cleanup-item, kan in elke gerelateerde
tooling-sprint meeliften (TECH-PORTAL-ESLINT-DEPS of
TECH-ESLINT-V9-MIGRATION zijn natuurlijke kandidaten).
---
### TECH-08 — Paginated response meta wordt weggegooid in organizer composables
**Aanleiding:** `apps/app/src/composables/api/useSections.ts` en