-
The effect intentionally reloads when the memoized load callback's identity changes (i.e. when filter dropdowns/queryValue change), which is the documented use of useCallback-as-dep. The new React 19 lint rule flags any setState inside an effect as cascading-render risk. Adding a directed disable with rationale instead of refactoring, since the current behavior is intended UX (live filter response).
-
Static HTML mockup used as design reference for the frontend scaffold (layout, color tokens, table/form patterns).
-
- scripts/run-backend.sh: source .env.local + start Spring Boot - scripts/seed-dev.sh: load sql/seed/dev-seed.sql into local DB - sql/seed/dev-seed.sql: dev-only seed (admin / 666666 login) Seed data path is local-dev only; not run by Flyway, not part of the test gate. Operator runs after setup-test-db + first Spring Boot start (so V1 schema exists).
-
Initial frontend setup: Vite + React 19 + TypeScript, ESLint, Redux store (auth, tabs), React Router with RequireAuth guard, AppShell layout, TopBar/NavOverlay components, plus first-pass pages (Login, Dashboard, UserList, UserDetail) and API layer (request/types/usr) wired to the user backend module. Establishes the frontend foundation so future module loops can add their own pages under frontend/src/pages/<module>/ per docs/08 path convention.