Goal\n----\nEnsure observability code paths don’t break the application when optional deps or endpoints are absent.\n\nAcceptance criteria\n-------------------\n1. Parametrised pytest that runs app startup twice: a) OBSERVABILITY_ENABLED=false b) true but OTEL/Loki endpoints unset.\n2. Test asserts FastAPI openapi json loads and /metrics returns 200 when Instrumentator present.\n3. CI passes in both scenarios.\n