fix: drop the 25 settings nothing reads and the admin Monitoring section
Summary
Fixes #293
25 Settings keys and the four Monitoring fields of the admin system settings were never read, so changing them did nothing. An admin could pick DEBUG logs and 0.0 sampling, see "Settings saved successfully" and get no change.
Changes
All of them go: from Settings, both config TOMLs, the system settings model, the schema, the admin page and the docs. Behavior stays the same, since the hardcoded values already won. The issue asked to wire the Kafka timeouts, the event TTL and the DLQ policy instead, but wiring the TOML values would change production. The consumers have run on aiokafka's defaults since #134, so they'd get a 45 s session timeout instead of 10 s, and a new saga-orchestrator group would replay 7 days of requests from earliest. DLQ rows would get a slower policy than the AGGRESSIVE_RETRY every row gets now. The e2e settings tests now change lockout_duration_minutes, since no other test depends on it.
[!WARNING]
Settings forbids unknown keys, so a config.toml that still sets one of these keys stops the process at startup. The deploy checks out the release's own config, so prod is fine. Stored system settings keep the four old keys until the next save; loading ignores them.
Type of Change
- Bug fix (non-breaking change that fixes an issue)
- New feature (non-breaking change that adds functionality)
- Breaking change (fix or feature that would cause existing functionality to change)
- Documentation update
- Refactoring (no functional changes)
- CI/CD or tooling changes
Test Plan
- Backend unit tests pass (
cd backend && uv run pytest tests/unit) - Frontend unit tests pass (
cd frontend && npm run test) - Backend E2E tests pass (
docker compose exec -T backend sh -c 'uv sync --group test --no-dev --frozen --no-install-project --no-build && pytest tests/e2e') - Frontend E2E tests pass (
cd frontend && npm run test:e2e) - API spec and client regenerated if routes or schemas changed (
./deploy.sh openapi, then./deploy.sh types), never edited by hand - Manual testing performed
Validation: ruff, mypy strict, the orphan check, 537 backend unit tests, svelte-check, ESLint, Vitest with coverage and mkdocs build --strict pass. I didn't run the backend or Playwright e2e locally; CI runs both.
Checklist
- My code follows the project's style guidelines
- I have run
pre-commit run --all-filesand all checks pass - I have added tests that prove my fix/feature works
- I have updated documentation if needed
- My changes don't introduce new warnings
Summary by cubic
Removes 25 Settings keys and the four admin Monitoring fields that no code ever read, so changing them in the admin page did nothing. The hardcoded values already won, so behavior is unchanged.
Wiring the TOML values instead would have changed production: aiokafka's defaults (45 s session timeout) would replace the current 10 s, a new consumer group would replay 7 days of requests, and the DLQ would get a slower retry policy than every row gets now.
Migration
Settingsforbids unknown keys, so aconfig.tomlthat still sets any removed key stops the process at startup. The deploy checks out the release's own config, so production is unaffected.- Stored system settings keep the four removed keys until the next save; loading ignores them.