Repository navigation
Conversation
|
Batch compatibility receipt (2026-08-24) Built the inspectable synthetic branch
No manual merge resolution was required, including the shared Combined validation:
The stale Browserslist notice and authentication-dependent Phase C skips are unchanged environmental disclosures. #2903 remains draft because synthetic compatibility does not replace its declared live host-agent lifecycle gate and independent human review. |
|
Thanks for this contribution. We're closing outside-contributor pull requests that have had no activity for 14 days or more, so the queue reflects work that can still land. This isn't a judgment on the change itself. If it's still needed, please rebase onto |
Why this matters
Extension dependencies determine activation order and the blast radius of disabling a shared service. Reviewers previously had to inspect dozens of manifests by hand, and the lifecycle path could discover a missing node or cycle only when an operator tried to apply it.
This PR provides deterministic human/JSON/DOT inspection and now runs the same complete graph contract through
ods config validate/scripts/validate-manifests.sh. Invalid topology therefore fails in the installed operator command and existing CI manifest lane, not only when somebody remembers to invoke a standalone helper.Overlap check
Searched open and closed upstream PRs for extension dependency graphs, Graphviz,
depends_onvalidation, and every changed production/test file. No other PR changes the validator or graph script. #2853 adds a FalkorDB graph-memory extension and is unrelated. #2495 corrects one workflow dependency value; this tool validates that manifest contract but does not overlap its implementation. The existing #2909 branch was strengthened instead of opening a separate release-gate PR.What changed
scripts/validate-manifests.sh, the path used byods config validateand CIRegression coverage
The graph CLI tests exercise dependency ordering, reverse blast radius, missing nodes, exact cycle paths, and DOT edges. The manifest-validator boundary test now requires the production command to print
Extension dependency graph validated; it failed before wiring because the standalone inspector was never called.Validation
python -m pytest -q tests/test_extension_dependency_graph.py— 4 passed.bash tests/test-validate-manifests.sh— 8 passed.bash tests/test-validate-manifest-schema.sh— full bundled/library schema source-of-truth suite passed.python scripts/extension-dependency-graph.py --format jsonagainst the real catalog — passed.bash -n scripts/validate-manifests.sh tests/test-validate-manifests.sh— passed.git diff --check— passed.Tradeoffs and rollback
Graph validation is strict only when the existing Python/PyYAML/jsonschema capability gate is available; dependency checks are skipped with an explicit warning in the same reduced environments where schema parsing is already skipped. This avoids making installed validation less portable while making CI/release validation authoritative. Rollback removes the inspector/gate without changing manifests or runtime state.