The Svelte plugin was receiving an incomplete config object, causing Object.values() to fail on undefined in the hot-update plugin. Added compilerOptions.dev to provide a complete plugin configuration.
- Backend: pytest with unit tests (auth, rbac, config) and integration tests (auth flow, docker, files) - Frontend: vitest with unit tests (api client) and component tests (login) - CI: Gitea Actions workflow for automated testing with coverage reports - Documentation: TESTING.md guide with setup, usage, and best practices - Coverage goals: 80%+ backend, 70%+ frontend