Architecture-review release (minor). No MCP tool surface changes — still 26 tools, same signatures.
Added
- Driver/dialect registry — single source of truth for
db_type→ driver + sqlglot dialect - Parser-based SQL safety gate (
analyze_sql_statement) as the primary read-only/single-statement check - Typed HandlerContext for handlers
- CI enforcing ruff/black/isort/pytest (mypy advisory)
Changed
- OBQC dialect parity — bigquery/duckdb/databricks/mysql now validated with their own dialect instead of the Postgres fallback
- SQL validation catches DML hidden after a CTE and no longer mis-flags
;-in-strings as multiple statements - Internal refactor: split
main.py; decomposedhandlers/ontology.py; repo formatted with black + isort
Fixed
- AUTO_ONTOLOGY background generation (was silently producing nothing)
- Artifact downloads honor an explicit
schema_name(per-schema state) - RDF-store auto-restore no longer AttributeErrors on RDF-enabled workspaces
- Startup banner reports the real tool count
PyPI: https://pypi.org/project/orionbelt-analytics/1.7.0/
Full details in CHANGELOG.md.