- core/telemetry.py is now a no-op (no opentelemetry imports); entrypoints
no longer call setup/shutdown telemetry
- Remove all opentelemetry-* deps from pyproject groups; regenerate uv.lock
- Drop otel_exporter_otlp_endpoint/otel_service_name settings; sentry and
auth use "contract-check" instead
- Stop publishing worker metrics ports; bind API metrics to 127.0.0.1 by
default via API_METRICS_BIND_HOST
- Replace otel-collector with Vector in observer profile (docker_logs +
prometheus_scrape -> OpenObserve); add deploy/observability/vector-config.yaml
- Update .env.example, docs (ARCHITECTURE, DEPLOY), README, Makefile
- Rewrite tests/unit/test_telemetry.py for the no-op implementation
- Fix RabbitMQ purge_queue to report the pre-purge message count instead of
the post-purge depth (which was always 0).
- Add shared attach_toast helper in admin templating; remove duplicated inline
_attach_toast implementations in review.py and mq.py.
- Keep purge confirmation case-sensitive so the typed safeguard works as intended.
- Fix test imports to use known-first-party 'contract_check' per isort config.