Main updates shipped
- Multi-provider LLM support — added OpenRouter, Gemini, and NVIDIA NIM providers with automatic detection via
LLM_PROVIDERenv var, alongside fixes to make chat nodes (general_node,chat_agent_node) fully provider-aware for OpenAI and Anthropic with provider-keyed caches and lazy imports. - Pydantic config rollout — replaced ad-hoc config handling with a Pydantic-based strict config across the app, touching CLI, integrations, state, and tooling layers.
- Simulation engine overhaul — large rework of the synthetic test engine (+1470/-735) covering root-cause diagnosis nodes, the mock Grafana backend, and RDS Postgres scenario fixtures including new replication-lag and connection-exhaustion scenarios.
- Expanded RDS Postgres metric fixtures — split the
000-healthyCloudWatch metrics pack into per-metric JSON files (CPUUtilization, ReplicaLag, WriteIOPS, etc.) and updated the scenario loader and fixture generator accordingly. - Grafana local demo moved to wizard CLI — Grafana stack seeding and live-demo entrypoints now live under
app/cli/wizard/, Make targets updated, and the obsolete bundled local RCA demo path removed. - CLI improvements — better error message for unknown test IDs (hints
opensre tests list), simplified JSON output handling inargs.py, and a readability refactor ininvestigate.pywith lint fixes. - Tooling hygiene — added
.editorconfig(4-space Python, 100-char line length, matchingruff.toml), added.ruff_cache/to.gitignore, removed unusedmypy.inikubernetes stubs, and disabled PostHog analytics firing in CI environments. - Release workflow & CI — added
release.ymlGitHub Actions workflow and improved the wizard onboarding flow to avoid re-prompting for provider selection.
Source pull requests
- #239 improved simulation engine (author: vincenthus; contributors: vincenthus; labels: none; files:
app/nodes/chat.py,app/nodes/root_cause_diagnosis/claim_validator.py,app/nodes/root_cause_diagnosis/evidence_checker.py,app/nodes/root_cause_diagnosis/prompt_builder.py,app/tools/DataDogLogsTool/__init__.py,app/tools/base.py,mypy.ini,tests/synthetic/mock_grafana_backend/backend.py,tests/synthetic/mock_grafana_backend/formatters.py,tests/synthetic/mock_grafana_backend/selective_backend.py, and 86 more) - #240 improved gating (author: vincenthus; contributors: vincenthus; labels: none; files:
app/tools/TracerFailedRunTool/__init__.py,app/tools/TracerRunTool/__init__.py,app/tools/TracerTasksTool/__init__.py) - #242 chore: release (author: Vaibhav Upreti; contributors: Vaibhav Upreti; labels: none; files:
.github/workflows/release.yml) - #245 push metrics outpack with expanded data for 000 (author: vincenthus; contributors: vincenthus; labels: none; files:
tests/synthetic/rds_postgres/000-healthy/aws_cloudwatch_metrics.json,tests/synthetic/rds_postgres/000-healthy/aws_cloudwatch_metrics_BinLogDiskUsage.json,tests/synthetic/rds_postgres/000-healthy/aws_cloudwatch_metrics_CPUUtilization.json,tests/synthetic/rds_postgres/000-healthy/aws_cloudwatch_metrics_CommitLatency.json,tests/synthetic/rds_postgres/000-healthy/aws_cloudwatch_metrics_CommitThroughput.json,tests/synthetic/rds_postgres/000-healthy/aws_cloudwatch_metrics_DatabaseConnections.json,tests/synthetic/rds_postgres/000-healthy/aws_cloudwatch_metrics_DiskQueueDepth.json,tests/synthetic/rds_postgres/000-healthy/aws_cloudwatch_metrics_FreeStorageSpace.json,tests/synthetic/rds_postgres/000-healthy/aws_cloudwatch_metrics_FreeableMemory.json,tests/synthetic/rds_postgres/000-healthy/aws_cloudwatch_metrics_MaximumUsedTransactionIDs.json, and 14 more) - #247 Improve CLI error message for unknown test id (author: Ceren Camkiran; contributors: Ceren Camkiran; labels: none; files:
app/cli/__main__.py) - #249 simplified JSON output handling in CLI helper (author: Ceren Camkiran; contributors: Ceren Camkiran; labels: none; files:
app/cli/args.py) - #253 remove unused sys import to pass lint (author: Ceren Camkiran; contributors: Ceren Camkiran; labels: none; files:
app/cli/args.py) - #248 Small refactor to improve readability and reduce duplication. No beha… (author: Ceren Camkiran; contributors: Ceren Camkiran; labels: none; files:
app/cli/investigate.py) - #252 resolve lint issue (remove whitespace) (author: Ceren Camkiran; contributors: Ceren Camkiran and Tan Wee Joe; labels: none; files:
app/cli/investigate.py) - #233 feature: Support OpenRouter, Gemini, and NVIDIA LLMs (author: Tan Wee Joe; contributors: Tan Wee Joe; labels:
enhancement; files:.env.example,SETUP.md,app/cli/wizard/config.py,app/cli/wizard/flow_test.py,app/cli/wizard/validation.py,app/config.py,app/integrations/clients/llm_client.py) - #241 fix: use OpenAI in chat when LLM_PROVIDER=openai (author: Kalio; contributors: Kalio; labels: none; files:
app/integrations/clients/aws_sdk_client.py,app/nodes/chat.py,app/nodes/publish_findings/formatters/evidence.py,app/nodes/publish_findings/report_context.py,app/nodes/root_cause_diagnosis/prompt_builder.py,app/tools/utils/data_validation.py,pyproject.toml,tests/nodes/test_chat.py) - #246 Removed outbound_telemetry directory after moving files to utils (author: edgarmb14; contributors: edgarmb14; labels: none; files:
app/outbound_telemetry/__init__.py,app/utils/__init__.py,app/utils/config.py,app/utils/config_test.py) - #255 Fixes #214: Make chat provider-aware for OpenAI and Anthropic (author: Luke Gimza; contributors: Luke Gimza and vincenthus; labels: none; files:
app/nodes/chat.py,app/utils/cfg_helpers.py,app/utils/config_test.py,pyproject.toml,tests/conftest.py,tests/e2e/grafana_validation/env_requirements.py,tests/e2e/grafana_validation/grafana_validation.py,tests/e2e/grafana_validation/test_grafana_cloud_push.py,tests/e2e/upstream_prefect_ecs_fargate/infrastructure_sdk/deploy.py,tests/nodes/test_chat.py, and 4 more) - #276 implemented pydantic config (author: vincenthus; contributors: vincenthus; labels: none; files:
.github/workflows/ci.yml,.github/workflows/issue-comment-to-slack.yml,Makefile,app/cli/investigate.py,app/cli/investigate_test.py,app/cli/wizard/integration_health.py,app/config.py,app/config_test.py,app/integrations/clients/datadog/client.py,app/integrations/clients/grafana/config.py, and 15 more) - #278 fix: clean up chat model caches (author: vincenthus; contributors: vincenthus; labels: none; files:
app/nodes/chat.py,app/sentry.py,tests/nodes/test_chat.py,tests/nodes/test_chat_provider_awareness.py) - #279 Refactor repeated string-list validation in synthetic schemas (author: Ceren Camkiran; contributors: Ceren Camkiran; labels: none; files:
tests/synthetic/schemas.py) - #280 fix: disable analytics in CI pipelines (author: vincenthus; contributors: vincenthus; labels: none; files:
app/analytics/provider.py,app/analytics/provider_test.py) - #281 docs: refresh OpenSRE positioning in README (author: vincenthus; contributors: vincenthus; labels: none; files:
README.md) - #282 Add .editorconfig and clean up tooling config (author: Ebrahim Sameh; contributors: Ebrahim Sameh; labels: none; files:
.editorconfig,.gitignore,mypy.ini) - #251 Bug: Move local Grafana demo to wizard CLI and update makefile (author: Tan Wee Joe; contributors: Tan Wee Joe and Vaibhav Upreti; labels:
bug; files:Makefile,SETUP.md,app/cli/tests/discover.py,app/cli/wizard/flow.py,app/cli/wizard/grafana_seed.py,docs/local-grafana-live.md,docs/local-rca-demo.md) - #283 chore: improve ci remove space select logic (author: Vaibhav Upreti; contributors: Vaibhav Upreti; labels: none; files:
app/cli/wizard/flow.py,app/cli/wizard/flow_test.py,app/cli/wizard/prompts.py,app/cli/wizard/prompts_test.py) - #284 chore: do not ask for provider again in opensre onboard (author: Vaibhav Upreti; contributors: Vaibhav Upreti; labels: none; files:
app/cli/wizard/flow.py,app/cli/wizard/flow_test.py)
Generation metadata
- Generator version:
opensre 0.1.0 - Fallback summary used:
no - UTC window:
2026-04-01T23:00:00+00:00to2026-04-02T23:00:00+00:00