chore: remainder — backend test infra, agent config, docker, i18n, frontend ui

- Backend: alembic env, config manager/models, dependencies, translate plugin
- Backend tests: async_sync_regression, integration tests, git services, test_agent
- Docker: docker-compose.yml updates
- Agent: qa-tester.md update, semantics-testing SKILL.md update
- Frontend: TopNavbar, sidebarNavigation, FeaturesSettings, FeatureGate
- i18n: assistant.json en/ru locale updates
- New: frontend/src/lib/components/agent/ directory
This commit is contained in:
2026-06-10 15:06:36 +03:00
parent 2b303f92b3
commit 143f14d516
34 changed files with 5693 additions and 178 deletions

View File

@@ -168,7 +168,12 @@ For Svelte frontend contracts, tests SHALL be split by execution layer:
5. Mock only `[EXT:...]` boundaries. Never mock the System Under Test (per `semantics-testing` §V).
6. For `@REJECTED` paths: add a test that proves the forbidden path throws or is unreachable (per `semantics-testing` §IV).
7. **Edge-case floor:** Cover at least 3 edge cases per production contract: `missing_field`, `invalid_type`, `external_fail` (per `semantics-testing` §III).
8. Prefer RTK-compressed commands for test execution: `rtk pytest ...`, `rtk npm run test`.
8. **Maximum test file size:** A single test file MUST NOT exceed **600 lines** (800 for integration tests with Testcontainers). If the file exceeds this limit:
- Split into multiple files by domain (e.g., `test_auth_lifecycle.py` + `test_auth_ws.py` instead of `test_auth.py`).
- Extract shared fixtures into a `conftest.py`.
- Each test class tests ONE production contract. If >3 classes, split.
- **RATIONALE:** Files >600 lines degrade sliding-window attention — the model loses context from the top of the file when processing the bottom.
9. Prefer RTK-compressed commands for test execution: `rtk pytest ...`, `rtk npm run test`.
### Phase 4: Execution
```bash