Steps 7/8 of the live-server runbook (npm run lint / tsc --noEmit)
surfaced two unrelated pre-existing issues:
- node_modules/eslint was 10.1.0 despite package.json declaring
^8.57.1 and package-lock.json correctly recording 8.57.1 - a
legacy .eslintrc.cjs config can't run under ESLint v9+, which
dropped the old config format by default. Root cause: @vitest/browser
and @vitest/coverage-v8 were still pinned to ^3.2.4 while vitest
itself had been bumped to ^4.1.1, an internal peer-dependency
conflict that forced node_modules into an inconsistent state
whenever anyone ran npm install without --legacy-peer-deps. Bumped
both to ^4.1.4 to resolve the conflict at its source, then a clean
npm install correctly restored eslint@8.57.1.
- ExploreServicesPage.tsx's RoleCard.Icon field was typed as
"(props) => unknown", which TypeScript correctly refuses to accept
as a JSX component ('card.Icon' cannot be used as a JSX component).
lucide-solid's actual icon components return solid-js's JSX.Element
(confirmed via node_modules/lucide-solid's own .d.ts) - fixed the
annotation to match reality instead of loosening it.
lint: 0 errors (293 pre-existing warnings elsewhere in src/, untouched
by this session, left as tracked debt per the runbook's own bar).
tsc --noEmit --skipLibCheck: exits 0.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The captcha on login and all four signup forms was generated and
checked entirely in the browser (answer readable via window global),
so it provided no real bot/brute-force protection. Wire up the new
server-side captcha endpoint instead: fetch a challenge on mount,
submit captcha_id + captcha_answer with login/register, and refresh
the challenge on CAPTCHA_FAILED.
Also bump patchable dependency vulnerabilities via npm audit fix
(all criticals resolved; remainder needs an upstream SolidStart/vinxi
bump not yet available).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Add vitest, Playwright, ESLint, Prettier configs
- Add unit tests and e2e accessibility/visual tests
- Add MSW mocks and test setup
- Update scripts and .gitignore
- Install required dev dependencies
Note: GitHub Actions workflow will be added after token scope is granted.
- Update solid-markdown from ^0.5.0 to ^2.1.1 (old version no longer exists)
- Replace Markdown component with innerHTML rendering for help center articles
- Build now succeeds without errors