Skip to content

Release notes

0.3

0.3.7

New Features

  • Unified Web Search and Fetch Tools - Added web_tool.web_search / web_tool.web_fetch so the agent can search the web and fetch page content. The backend is selected automatically by the current model provider (Claude native web_search/web_fetch, OpenAI hosted search, or local Tavily), and results are normalized into one shared structure, so CLI/TUI rendering and the API / datus -p event payloads stay consistent regardless of the model. For example, Claude and GPT models prefer their own built-in search tools, models without a built-in search tool fall back to the local Tavily configuration, and without that configuration search is unavailable. #1050 #1068 #1070 #1081 docs

Enhancements

  • Unified execute_sql Database Tool - The previously separate read_query / execute_ddl / execute_write tools are merged into a single execute_sql that classifies each statement type and authorizes accordingly: read-only queries (SELECT/SHOW/EXPLAIN) pass automatically, while writes and DDL go through permission confirmation (auto-executed only when the permission mode is dangerous). The previous restriction on DDL statement types is also lifted, so statements like CREATE DATABASE / TRUNCATE / MERGE can run once confirmed. #1062
  • list_tables Returns Qualified Names - List items changed from bare table_name to qualified_name ([db.][schema.]table), completing only the namespace levels the caller did not specify, which makes it easier to build valid follow-up query references across databases/schemas. #1078
  • Improved OSI Metric Generation and the AskMetrics Semantic Pipeline - OSI semantic models are consolidated at the business-domain level, describe_table now syncs and displays a table-level semantic profile, and ask_metrics gains stronger metric discovery, cross-table join control, and cumulative/rolling metric querying. #1061 #1055 docs
  • build-kb / init Scan All Text Files - /build-kb and /init no longer scan by a fixed extension whitelist; text files are detected by content, so extension-less or uncommon-suffix text files are included, while binaries and oversized files (>~1MB) are skipped automatically. #1059
  • Readable Permission Prompts - Tool arguments in permission confirmations are now rendered as markdown blocks (SQL as highlighted code blocks, nested structures as JSON blocks), making it much clearer what you are being asked to approve. #1069

Bug Fixes

  • Tool Failure Display and write_file Extensions - Fixed failed tool executions still showing a green ✓ under the Claude native / Codex backends (now correctly shown as ✗); also removed the write_file extension whitelist so files like .sh / .tf can be written. #1077
  • catalog/list Scoped to the Datasource's Configured Databases - GET /api/v1/catalog/list no longer lists every database on the server instance; it returns only the databases actually bound to the datasource. #1064
  • Runtime DB Context for Semantic Adapters - The selected catalog/database/schema now travels through the API and agent as runtime DB context, and semantic adapter configuration plus SemanticTools are rebuilt automatically when the context switches. #1066
  • CLI Suppresses LiteLLM Console Logs - LiteLLM INFO logs are now written to the Datus log file instead of leaking into the TUI. #1071

Upgrade Notes

  • Database SQL Tool Consolidation - read_query / execute_ddl / execute_write are no longer exposed as separate agent/MCP tools; they are unified into a single execute_sql. Custom subagent tool whitelists or scripts referencing the old tool names must migrate to execute_sql. #1062

Internal

  • Web Frontend Proxies delete_file - delete_file in web sessions is now proxied to the browser side for execution, consistent with write_file / edit_file, instead of running on the server filesystem. #1080
  • Metric Retrieval Hook and uid Column - tb_metrics gains a uid column and a new metric retrieval hook so the SaaS Semantic Hub can track metric consumption; no end-user impact. #1072
  • Benchmark Provenance - The Claude native execution loop now preserves structured tool results for benchmark provenance. #1056
  • Testing and Release - Added a MetricFlow nightly integration test, fixed nightly/UT issues, and completed 0.3.6 release-note doc and link fixes plus release preparation. #1076 #1067 #1065 #1057 #1054

0.3.6

Enhancements

  • Scoped /init and /build-kb Runs - /init now accepts optional scope text, and /build-kb can skip confirmation for clearly scoped or automated knowledge-base builds. #1033 init docs build-kb docs
  • Model-Level SSL Verification - Model providers can set ssl_verify to true, false, or a CA bundle path for private CA and self-signed LLM endpoints; the model-level setting takes precedence over SSL_VERIFY and SSL_CERT_FILE. #1043 docs
  • Runtime Stack Dumps for API Diagnostics - The API server can dump live async task stacks to logs with SIGUSR1, making production hangs easier to diagnose without stopping the process. #1037

Bug Fixes

  • Responsive Session and Catalog APIs - Slow blocking filesystem or datasource calls in session and catalog endpoints now run off the event loop with bounded timeouts, so one slow request no longer stalls the API process. #1036
  • Datasource Overrides Preserve Database Context - Fixed datasource names being treated as physical database names; chat requests now carry datasource overrides and database context separately through connection, gateway, subagent, and validation paths. #1048
  • Release and Test Stability - The Prepare Release workflow now regenerates uv.lock before locked sync, and BIRD SQLite fixtures are isolated in temporary directories so tests no longer contaminate each other. #1039 #1047

Upgrade Notes

  • Skill Execution - Skills now execute through load_skill; the legacy skill_execute_command path and allowed_commands in skill config have been removed. #1033
  • Database Schema Tools - get_table_ddl is no longer exposed as an agent/MCP tool. Use describe_table and read_query for schema and sample-data inspection. #1031

0.3.5

New Features

  • SQL Policy Framework - Added a request-level SQL read policy framework. API callers can pass structured principal data through X-Datus-Principal, and custom providers can rewrite or reject read SQL before execution; rewritten SQL is revalidated as read-only before it reaches the datasource. #1020 #1028 docs
  • Strict OSI Semantic Authoring - gen_semantic_model and gen_metrics can now enter strict OSI authoring mode based on the configured OSI adapter, generate OSI core YAML, validate and dry-run through the adapter, and sync queryable metrics back into the Knowledge Base without leaking MetricFlow-only fields into the source semantic model. #1007 docs
  • Metric Preview API - Added endpoints for saved-metric dimension discovery and SQL preview, so the metric editor can list queryable dimensions, dry-run compile metric SQL, and return structured preflight feedback for incompatible dimension selections. #992
  • Lightweight /init + new /build-kb - /init is now a fast project scan that writes an AGENTS.md inventory plus file-based knowledge/memory stores, while expensive vector-indexed KB construction moves to /build-kb with optional file, table, datasource, or business-domain scope. The new built-in storage-classify skill routes semantic models, metrics, reference SQL, knowledge, memory, skills, and AGENTS.md updates to the right stores. #997 #1022 docs

Enhancements

  • System Prompt Prefix Caching - AgenticNode snapshots the system prompt on the first LLM call in a session and reuses that prefix on later turns to preserve Anthropic ephemeral cache / OpenAI prompt cache hits; runtime datasource context now travels through the user-turn <system_reminder>, and switching models rebuilds the snapshot. #996
  • AskMetrics Query Flow Upgrade - ask_metrics now supports optional final metric-result selection, full query_metrics result caching with compressed previews, and automatic expansion of current, previous-period, and delta metrics for period-over-period questions. #1005 docs
  • Period-Offset Metric Generation and Querying - gen_metrics can generate offset_window derived metrics from LAG SQL, and ask_metrics uses offset metadata to select the matching time-grain dimension, reducing missing first-period results from grain mismatches. #989
  • Non-Interactive Plan Mode - datus -p adds --plan-mode, allowing print mode and benchmark runs to auto-confirm generated plans instead of blocking on manual confirmation. #993

Bug Fixes

  • Concurrent Permission Prompts No Longer Block Each Other - Permission prompt locks are now scoped per interaction broker instead of per event loop, so independent sessions and sub-agents sharing one API worker no longer hang behind another session's unanswered prompt while preserving one-prompt-at-a-time behavior within a run. #1035
  • Interactive API Sessions Stay Reachable During Config Churn - DatusServiceCache now keeps a busy service instance alive when the AgentConfig fingerprint changes, preventing /chat/user_interaction replies from hitting a fresh empty task manager and returning SESSION_NOT_FOUND. #1032
  • Claude Native SDK Path Runs the Full Hook Lifecycle - The Claude subscription OAuth token path now triggers permission, compact, generation, and lifecycle hooks consistently with the OpenAI Agents SDK Runner path. #980
  • More Stable Metric Queryability and Preview - Fixed metric preview returning datasource ids instead of physical databases, canonical metric_time evidence handling in the queryability publish gate, period-offset metric discovery instability, and authoring-format coupling in offset-derived metric bootstrap. #1019 #1018 #1017 #1011
  • Anthropic SDK Auth Header Conflict - Fixed duplicate Authorization headers when Anthropic SDK credentials fall back to environment variables. #991
  • Readable Python 3.12 CLI Help - Migrated DBType, LLMProvider, EmbeddingProvider, and SQLType to StrEnum so argparse help displays usable enum values instead of raw class names. #1001
  • Current Date for Non-DB Nodes - Date injection is now separated from datasource catalog injection, so nodes without database tools such as gen_visual_report and skill_creator still receive current-date context in their system prompts. #1026
  • Legacy JSON Array User Messages Parse Correctly - extract_user_input() now recognizes old JSON-array message content and no longer shows raw JSON strings in the Web sidebar. #888
  • Background Tasks Drain on API Shutdown - Fire-and-forget tasks are now registered and drained during FastAPI lifespan shutdown, with exceptions logged and DatusServiceCache.shutdown() called. #1003
  • Clean CLI Teardown - Fixed a prompt_toolkit teardown race where run_in_terminal_sync() could leave an unawaited coroutine behind during loop shutdown. #952
  • More Robust DBManager Connection State - DBManager now tolerates nulled _conn_dict entries and logs list_databases tracebacks, reducing connection-state failures in long-running sessions. #994

0.3.4

New Features

  • AskMetrics Subagent - A dedicated metric QA agent for KPI, trend, group-by, and attribution questions that reaches for metric-specific tools and prompts instead of raw SQL, with customizable routing, templates, and tools. #954 docs
  • OpenRouter Provider - Point a single OPENROUTER_API_KEY at the full vendor/model catalog; the /model picker now has search filtering and hides the non-canonical -fast Claude aliases. #973 #936 docs
  • Self-Update Commands - datus upgrade / datus update check for and install new versions of your datus-* packages from the CLI; interactive sessions flag new versions on startup, and --check looks without installing. #949
  • Orchestrator Tools in Print Mode - --orchestrator-tools lets an external orchestrator request issue comments, status updates, human input, blocked flags, and mission completion through proxy tools, with each tool's strict JSON schema preserved. #950

Enhancements

  • Queryable Metrics by Default - Metric generation now extracts a queryability contract and validates it with query_metrics(dry_run=True), so you no longer get metrics that are structurally valid but cannot actually be queried at the original grain. #943 #962
  • Scoped Agent Memory - Each agent gets a per-agent 2000-byte MEMORY.md that is write-only through add_memory / edit_memory; sub-agents inherit it read-only. #975 docs
  • Built-in Knowledge Extraction - External knowledge generation moved off the old ext_knowledge vector subsystem to the built-in extract-knowledge skill, trimming legacy storage and tooling while keeping the knowledge-base API. #932
  • Stronger Snowflake Support - Snowflake setups now accept inline PEM private keys, reject unsupported catalog params, and normalize time-grain queries across the DB and MetricFlow adapters; docs clarify that password and private key are mutually exclusive, warehouse is required, and catalog usually should not be set. #937 datus-db-adapters#70 datus-db-adapters#72 datus-semantic-adapter#27 datus-semantic-adapter#28 datus-semantic-adapter#29 docs
  • Unified gen_sql Naming - The SQL-generation node, workflow, config, CLI command (/gen_sql), prompt templates, and sub-agent name now share one consistent gen_sql naming; projects on the old generate_sql / sql_system config should migrate. #935 docs
  • Configurable Metrics Batch Size - bootstrap-kb --components metrics adds --metrics-batch-size; set it to 1 when you need per-success-story provenance, or keep the default of 5 for the original throughput. #976

Bug Fixes

  • Datasource-Isolated Metrics Bootstrap - Metrics bootstrap now isolates rows per datasource in multi-datasource projects, so overwrite no longer deletes another datasource's KB data, with hardened MetricFlow YAML merge, batch refresh, final metric de-duplication, and CLI long-output truncation. #974
  • Robust Semantic Metric Query & Validation - Snowflake table coordinates now reach semantic-model generation prompts, multi-metric dimension compatibility gets a preflight with split suggestions, temporary YAML validation no longer scans unrelated parent directories, and non-string / nullable PyArrow results display safely. #941 #946
  • Cross-Datasource Subject Node Migration - Upgrading older SQLite storage migrates the stale subject_nodes UNIQUE constraint so same-named subject nodes can coexist across datasources while staying de-duplicated within one. #964
  • One Datasource, Multiple Databases - A single datasource can now route to multiple databases — file-glob datasources, benchmark tasks, /database switching, DB tools, and node execution all select the connection by (datasource, database), and benchmark SQL tasks can name their datasource explicitly. #961 #934 datus-db-adapters#71

0.3.3

New Features

  • Automatic Session Compaction - Long conversations now clean up context automatically, reducing interruptions when the context fills up. As a conversation grows, older tool-call records are archived to disk while the active task stays in context; near the limit (about 90%), Datus summarizes the session and keeps the run moving. The /compact command also shows progress and a summary panel, with full history persisted for restore and review. #871 #919 #933 docs
  • Live Token Usage - Model responses now show newly used and cumulative tokens as they stream, while the status bar tracks current context usage and total capacity. Usage history is saved with the session for restore, cost review, and context audits. #920

Enhancements

  • Snowflake Key-Pair Authentication - Snowflake setups with MFA can now use RSA key-pair authentication instead of passwords. Configure private_key_file, optional private_key_file_pwd, and role; the same credentials are used for SQL execution and MetricFlow metric generation, validation, and querying, with credentials redacted from logs. #926 datus-db-adapters#66 datus-db-adapters#67 datus-semantic-adapter#25 docs
  • Offline Embedding Fallback - Datus no longer stalls on embedding model downloads in offline, intranet, or Hugging Face-blocked environments. Context search and @ reference autocomplete temporarily degrade with diagnostics for the model name, cache path, environment variables, and fix steps; database tools and normal chat continue to work. The docs also cover pre-caching models or using an OpenAI-compatible embedding service for offline deployments. #870
  • Codex Prompt Cache Optimization - When using the ChatGPT subscription-backed Codex backend, multi-step runs can now reuse prompt cache like the official client, reducing wait time and token cost. #918
  • Multi-Turn datus -p and --resume - Print mode can now restore and continue a specific session. Use datus -p '...' --resume <session_id> to continue from the command line; REPL and API chat also support --resume for existing sessions. #914

Bug Fixes

  • Custom Ask Subagents Honor Tool Whitelists - ask_report / ask_dashboard now only see tools allowed by the subagent's tools whitelist. Unauthorized database, bash, and skill tools are no longer exposed to the model, and prompts no longer include the full chat tool directory, reducing unauthorized-tool and context-pollution risk. #877 #878 #881

0.3.2

New Features

  • Agent Observability (Configurable Tracing) - Turn on agent.observability.tracing to export run traces to Langfuse, LangSmith, Datadog, Braintrust, or a generic OTLP collector. Optionally capture run content and redact sensitive data, and get stable trace references plus runtime trace grouping that tie benchmark, bootstrap, CLI, and chat runs into a single trace for easy correlation and debugging. #833 #864 docs
  • Visual Artifacts: Dashboard Support - The new gen_visual_dashboard generates dashboard-style HTML (multi-chart card layouts) right from Chat, just like gen_visual_report, with local interactive preview served by datus --web — filters re-run live against your database, no SaaS backend required. Report and dashboard generation is also noticeably better: cleaner layouts, more reliable chart rendering (concurrent multi-chart queries to DuckDB no longer race), consistent use of the runtime ChartCard primitive, more accurate underlying data queries, support for more complex reports, and multi-round refinement. The compiled HTML's absolute path is now surfaced in the CLI message stream, so you can reopen the artifact after closing the browser tab. #829 #835 #842 #847 #848 #849 #853 #855 #863 #866 #867 #869 #894 #895 #901 #905 #907 docs
  • Mid-Run User Input - Send additional instructions while an agent run is still streaming — type in the CLI/TUI or POST to the API; the text is picked up on the model's next step, saved to the session, and shown live as it is inserted, without interrupting the run. #824

Enhancements

  • Semantic SQL Metric Extraction - When mining metrics from historical SQL, Datus tells apart brand-new metrics, metrics derived from existing ones, and plain references to existing metrics, so it won't create duplicates; it also keeps time grain, filters, and literal values. Supported metric types include count, distinct count, sum, average, min/max, conditional (filtered), ratio, expression, cumulative, and derived; for multi-table cases (cross-table calculations, non-equi joins, unions) it first combines the data into a single source and then defines metrics on top. End-to-end verified on a real warehouse (StarRocks): the generated metrics return the same values as the original SQL. #811
  • Smoother CLI Chat & Streaming - Fixes a duplicated last paragraph in the terminal when streaming through Claude's native API (plus a related session-resume parsing fix); chat history now renders through one unified path, so history, resume/rewind, and mid-run user inserts all display consistently, with user messages shown in a bordered panel for clearer separation. #837 #852

Bug Fixes

  • Phased Semantic-Model Validation - A semantic model can be validated before any metrics exist: the expected "no metrics yet" issue no longer aborts the flow, while genuine model errors still fail validation. #827 #850
  • Reliable Bootstrap Result Handling - Bootstrap flows now correctly recognize each step's generation result (including failures), so successful output is no longer dropped and failures are no longer silently swallowed. #831
  • Reference SQL Summary Path Resolution - Generated reference-SQL summary paths now resolve correctly across the different path forms; out-of-sandbox paths are safely skipped instead of crashing. #840
  • Print Mode No Longer Hangs on Permission Prompts - datus -p (the non-interactive print mode, used in CI and scripting) now runs under the workflow execution mode and dangerous profile — consistent with /bootstrap and other non-interactive flows — so ASK/EXTERNAL permission prompts that previously blocked waiting for a human responder short-circuit cleanly. #891

0.3.1

New Features

  • HTML Report Generation - New gen_visual_report subagent turns a question, a metric reference, or your own SQL into a self-contained HTML report (KPI cards, charts, tables, narrative) with section-by-section editing so you can refine a single chart without rewriting the whole report. #783 #821 docs
  • Persistent Plan Mode - Plan Mode now writes plan.md to disk and restores it on session resume, so closing the CLI mid-plan no longer loses your work. #772 docs
  • CLI / TUI Polish - Live todo sidebar tracks task progress at a glance, plus an inline command wizard, scroll-back search, mouse-drag selection copy, and a draggable scrollbar for a more native terminal feel. #772

Enhancements

  • /permission Command - Renamed /profile to /permission, with normal / auto / dangerous modes for matching different development workflows. #769 docs
  • Custom Subagent Management - Custom subagents can now be deleted via API or TUI, and the available-tools list per agent type is returned by a single backend source so SaaS and standalone UIs build and edit subagents consistently. #807 #812 docs
  • Per-Request Permission Mode - Chat requests can pick normal / auto / dangerous per call, so multi-tenant SaaS deployments stop polluting a shared default. #822 docs

Bug Fixes

  • Claude / Anthropic Parameter Conflict - Requests on the Claude / Anthropic route no longer fail when both temperature and top_p are sent in the same call. #817
  • Metric ID Collision Under Missing Subject Path - Same-named metrics across different subject trees now stay distinct when subject_path was previously absent from the metric id. #819

0.3.0

New Features

Datus API

  • FastAPI REST API - Layered service/model REST API with CLI entry, streaming Chat, task tracking, SQL execution stop, multi-select ask_user, success story persistence, knowledge base bootstrap, and request-side proxy source / interactive mode controls. #520 #538 #539 #551 #553 #555 #606 #610 docs
  • Model Discovery API - Model discovery, per-request model override, current model metadata, and ISO-8601 UTC timestamps. #643 #649 #700 docs
  • Chart Recommendation & Visualization API - Generate dashboard-ready visualizations from Datus Chat and external applications. #545 docs

Datus Chat & IM Gateways

  • Datus Chat (FastAPI Chatbot) - Replaced the legacy Streamlit chatbot with FastAPI + @datus/web-chatbot, adding the Datus Chat module. #543 #554 docs
  • Slack & Feishu/Lark Gateways - New IM gateways with channel configuration, daemon mode, streaming replies, and feedback actions; datus-claw renamed to datus-gateway. #559 #562 #565 #616 #623 #593 docs

Project & Workspace Configuration

  • Project-aware Configure/Init Flow - Split setup into project-aware configure/init flows with project-level .datus/config.yml, project memory, automatic datasource/service setup, and a redesigned .datus directory. #542 #578 #592 #608 docs
  • Unified Runtime Services Config - Unified configuration around services.datasources, services.bi_platforms, semantic layer, and scheduler; CLI now uses --datasource. #614 #633 #636 #642 docs
  • One-line Installer - New Linux/macOS curl | sh install script with refreshed quickstart and service docs. #613 #611 #667 docs

CLI Experience

  • Unified / Command Prefix - All interactive commands moved to / prefix; added /model, /skill, /mcp, /agent, /subagent, interactive input, and a streaming /bootstrap TUI. #621 #635 #650 #655 #656 #659 #683 docs
  • /language and /effort Commands - Pin response language with /language, control reasoning effort with /effort, plus /<service>.<method> dispatch for read-only service calls. #641 #653 #631 docs
  • CLI Print Mode & UX Polish - Print mode, proxy tools, reworked bottom status bar, fixed streaming/tool status line, improved markdown streaming, and restored @ reference auto-completion. #489 #501 #583 #586 #654 #664 #661 #662 docs
  • New Model & Plan Providers - Codex OAuth, Claude Subscription, Coding Plan, OpenRouter, MiniMax, GLM, BigModel, Z.AI support, with rebuilt provider-based model configuration and provider catalog. #487 #635 #687 #693 docs
  • Permission Profiles - New normal / auto / dangerous permission profiles with subagent-aware permission hooks; safe discovery tools relaxed in normal mode. #646 #652 docs

Data Engineering Subagents & Skills

  • Data Engineering Agents & Skills - Built-in agents and skills for cross-database migration, ETL/job generation, scheduler workflows, table generation, dashboard generation, and BI/scheduler orchestration. #494 #525 #564 #575 #580 #639 docs
  • Deliverable Validation Hooks - Table deliverable validation hook, shared deliverable node, validation skills, and a publish gate for semantic/metric generation. #657 #663 #665 docs
  • Natural-language Metrics & Skill Creator - Natural-language metric creation, wheel-bundled built-in skills, skill frontmatter scope, and a skill-creator subagent for interactive skill authoring. #504 #526 #627 #645 #676 docs

Memory & Reference Template

  • Auto Memory - New MEMORY.md-based Auto Memory with an emergent topic tree, empty-memory prompt, and project/session isolation. #498 #620 #595 #523 #594 docs
  • Reference Template - New Reference Template mechanism, with bootstrap reference template parsing fixes. #508 #574 #677 docs

Ecosystem & Adapters

  • Datus Studio (VSCode Extension) - Official VSCode extension that brings Datus into the IDE: Object Explorer (Catalog/Context trees), SubAgent wizard, Datus Chat panel with @-references, plan mode, datasource/subagent switching, SQL Result & AI Chart panel (ECharts), and workspace-scoped FileSystem tools. Connects to any Datus-agent Web Server (datus-cli --web) via a single Endpoint. #713 #717 docs
  • Database Adapters: Greenplum & Migration Mixin - datus-db-adapters added Greenplum, improved metadata robustness, thread-safe connector isolation, dialect-specific identifier quoting, and a MigrationTargetMixin for migration workflows. datus-db-adapters#40 #43 #45 #46 #47 #48 docs
  • BI Adapters: Superset & Grafana - New datus-bi-core with Superset and Grafana adapters, list API, chart data retrieval, dashboard/chart write validation, paginated envelope, datasource metadata fixes, and dashboard layout improvements. datus-bi-adapters#1 #2 #3 #7 #8 #9 docs
  • Scheduler Adapters: Airflow - New datus-scheduler-core and Airflow adapter with DuckDB DAG execution, multi-tenant DAG folder, job/run list result envelope, and inactive DAG deletion semantics; published as datus-scheduler-airflow 0.1.2. datus-scheduler-adapters#2 #3 #4 #8 #9 docs
  • Semantic Adapter Split - datus-semantic-adapter split out datus-semantic-core and migrated the MetricFlow adapter, with dict config injection, adapter contract tests, datasource terminology, configurable semantic model paths, and stricter MetricFlow validation. datus-semantic-adapter#6 #7 #9 #10 docs

Enhancements

  • Streaming & Session Stability - Fixed and enhanced web/chat/gateway streaming, compact/resume, group chat thread handling, Feishu permissions, Slack replies, API node creation, session persistence, and timestamp formats. #531 #548 #567 #568 #638 #674 #680 #689 #700 docs
  • Generation Stability - Improved semantic, metric, reference-template, dashboard, SQL prompt, and query-metric generation. #596 #604 #690 #691 #692 #697 docs
  • Filesystem & Data Isolation - Strengthened via filesystem_strict, project-root zone policy, safe search, credential redaction, and strict FuncTool result handling. #588 #597 #603 #681 #694 docs
  • Storage Refactor - Unified datus_db, datasource isolation, singleton registry, pluggable RDB/vector backends, and PostgreSQL support via datus-storage-postgresql. #493 #499 docs
  • CI Restructure - Split PR acceptance and nightly pipelines, added docker-backed adapter integration tests and a test-quality audit workflow, and resolved multiple nightly/unit/integration regressions. #589 #600 #601 #634

Documentation

  • REST API, IM Gateway & CLI Docs - New docs for REST API deployment / chat / KB / models, Slack & Feishu IM gateways, and /model / /language / /effort / /init / /bootstrap / service / --datasource flows. docs
  • Configuration Docs - Added datasources, semantic layer, BI platforms, schedulers, and PostgreSQL-backed storage configuration docs. docs
  • Subagent Docs - Dashboard generation, table generation, scheduler workflow, data pipeline, metrics, semantic model, and SQL summary subagent docs. docs
  • Adapter, Memory & Reference Template Docs - Refreshed adapter, memory, reference template, quickstart, benchmark, and docs-deployment documentation. #530 #536 #549 #556 #611 #622 #667 docs

0.2

0.2.6

New Features

  • Ask User Tool - Introduced an interactive ask_user tool with inline free-text support and batch question capabilities, integrated into GenSQL and GenReport nodes for human-in-the-loop workflows. #457 #460 #481
  • Skill Marketplace CLI - Built-in marketplace for discovering, installing, and managing community skills directly from the CLI. #416 docs
  • General Chat Agent - A general-purpose chat agent for flexible conversational workflows beyond SQL generation. #452
  • Explore Task Tool - New exploration tool for navigating and managing tasks within the agent. #455
  • Storage Adapter - Pluggable storage adapter layer for flexible backend integration. #446
  • 4 New Database Adapters - Added ClickHouse, Hive, Spark, and Trino adapters in the datus-db-adapters repository, all installable as independent packages via pip install datus-<database>. docs

Enhancements

  • Session Resume/Rewind - Added /resume, /rewind, and .interrupt commands with interactive arrow-key selector for navigating conversation history. #438 #470 docs
  • Scoped Context Filter - Filter-based scoped context for more precise knowledge retrieval during SQL generation. #441
  • Direct Subagent Web Access - New --subagent CLI parameter for launching subagents directly via the web interface. #447
  • CLI Interaction UX - Improved multiline input support and ellipsis truncation for better readability. #468
  • Simplified Subagent Guidance - Streamlined subagent usage instructions for clearer onboarding workflows. #469
  • Hardened Function Tools - Enforced read-only SQL execution, deduplicated tool registration, and improved docstrings. #474
  • Current Date Injection - Injected current_date directly into system prompts, removing the separate get_current_date tool. #473
  • Data Compression - Added response compression for query_metrics and fixed DataCompressor model_name handling to reduce token consumption. #435 #472

Bug Fixes

  • Kimi-K2.5 & Qwen3-Coder-Plus Init - Fixed temperature/top_p support for these models during interactive initialization. #483
  • Generation Hooks Condition - Fixed generation_hooks to use correct where expression condition. #482
  • Ctrl+O Toggle - Fixed missing response display for previous turns when toggling with Ctrl+O. #477
  • Missing Tabulate Dependency - Added missing tabulate dependency to pyproject.toml and requirements.txt. #476
  • Skill Scan Paths - Removed ~/.claude/skills from default scan paths and improved config passing for ChatAgenticNode. #475

Documentation

  • Added Hive, Spark, ClickHouse, Trino database adapter docs. #464 docs
  • Added resume/rewind command documentation. #465

0.2.5

New Features

  • OpenAI Agent SDK 0.7.0 Upgrade with Kimi-2.5 & Gemini-3 Support - Rebuilt the model layer with litellm_adapter and sdk_patches, enabling seamless integration with the latest Kimi-2.5 and Gemini-3 series models.
  • AgentSkills Support - Introduced a complete Skill system with skill configuration, registration, management, and permission control, supporting both bash and function-based skill tools. docs
  • Tools as MCP Server - Expose Datus database tools and context search as an MCP server, enabling integration with Claude Desktop, Claude Code, and other MCP-compatible clients. docs

Enhancements

  • Semantic Tools Optimization - Optimized semantic tools and context search for faster, more relevant results in the CLI.
  • Generation Prompt String Validation - Strengthened string validation across multiple prompt templates for more reliable generation output.
  • Action-Based User Interaction Model - Redesigned the CLI interaction layer to use a unified action-based model for execution, generation, and planning.
  • Reference SQL Parallelization & Date Support - Parallelized reference SQL initialization for faster bootstrap, and enhanced date expression parsing. docs
  • Bootstrap Markdown Summary - Displays a formatted Markdown summary after bootstrap completion for quick review of generated results. docs
  • Subject Entry Deletion - Added the ability to delete semantic models, metrics, and SQL summaries directly from the /subject screen. docs

Bug Fixes

  • Subject Node Race Condition - Fixed a race condition when creating multiple subject nodes in parallel, improving concurrency safety.
  • Multi-Round Benchmark Evaluation - Resolved issues in agent state, workflow runner, and configuration handling during multi-round evaluations. docs
  • Attribution Analysis - Simplified attribution analysis logic for clearer and more reliable results.

0.2.4

Dashboard Copilot (Auto-generation)

  • Dashboard to Sub-Agent: Automatically generate sub-agents from BI dashboard configurations #339
  • Automatic semantic model generation during BI dashboard bootstrap #368
  • Generate metrics definitions directly from Dashboard components #363

Better Semantic Layer Integration

  • Semantic Adapter: Pluggable adapter for external metric layer integration #355
  • External Knowledge Storage: Vector-based knowledge retrieval for enhanced SQL generation context #359
  • Added SQL field to metrics schema definition #364

Enhancements

  • Optimized reference SQL search with deduplication and simplified format #348 #358 #375
  • Enhanced ContextSearch methods and display #347
  • Improved Plan Mode: Chat node inherits from GenSQL agentic node #334
  • Catalog screen improvements: column comments and nested table row styles #345 #378
  • Tool execution feedback with context and start events #340 #341
  • Enhanced prompt version handling #367 #379
  • Clean deprecated metric metadata and YAML directory on overwrite #362 #365

Refactoring

  • Semantic model and metrics architecture refactor #350
  • Unified subject tree management #349
  • Pluggable DB adapter architecture #353
  • Namespace config refactor #346

Bug Fixes

  • Fixed empty query_context in Superset charts #372
  • Skip render processing for tool calls in chatbot #360 #380
  • Fixed semantic model and metrics deduplication #369
  • Fixed subject_path parsing in context_search #357
  • Improved sample row error handling #354

0.2.3

New Features

  • Embedded Tutorial Dataset - California Schools dataset now bundled with installation and integrated into datus-agent init workflow for hands-on learning of contextual data engineering. #277 tutorial
  • Enhanced Evaluation Framework - New evaluation command with expanded categories: Exact Match, Same Result Count (different values), Schema/Table Usage Match, and Semantic/Metric Layer Correctness. #264
  • Plugin-Based Database Connector - Refactored database connector to plugin-based architecture for easier extensibility and custom adapter development. #284

Enhancements

  • Simplified Installation - Removed legacy transformers dependency from default installation for faster setup and reduced package size. #247
  • Streamlined MetricFlow Configuration - Simplified configuration as MetricFlow now natively supports Datus config format. #243
  • Built-in Generation Commands - /gen_semantic_model, /gen_metrics, and /gen_sql_summary subagents now work out of the box without additional setup. #250
  • Agentic Node Integration - Workflow-based evaluations now support agentic nodes for more sophisticated testing scenarios. #262
  • Code Quality Improvements - Refactored tool modules and enhanced node logic. Unified bootstrap-kb and gen_semantic_model to use the same implementation. #245 #250
  • Optimized Embedding Storage - Refactored embedding model storage and updated dependencies for better performance. #247

Bug Fixes

  • Schema Metadata Handling - Fixed empty definition field in schema_linking command to ensure proper schema metadata is passed to downstream nodes. #327
  • Initialization Issues - Resolved multiple initialization bugs and corrected configuration file validation for tutorial mode. #304 #303
  • Environment Variable Compatibility - Fixed environment variable handling across different platforms for improved deployment compatibility. #294
  • Evaluation Summary Generation - Fixed summary generation in benchmark evaluation for more accurate evaluation reports. #314
  • FastEmbed Cache Directory - Fixed cache directory path for fastembed to resolve caching issues on different platforms. #251

0.2.2

skipped

0.2.1

New Features

  • Web Chatbot Upgrade - Added feedback collection, issue reporting, stream output, and &hide_sidebar=true parameter for embedding. docs
  • Context Generation Commands - New /gen_semantic_model, /gen_metrics, and /gen_sql_summary commands in subagents for dynamic knowledge base enrichment. #192 docs
  • Interactive Context Editing - Visual editing support for /catalog and /subject commands to modify semantic models, metrics, and SQL summaries. #219 #199 #175 docs
  • Scoped Knowledge Base - Subagents now support scoped KB initialization for better context isolation and management. #217

Enhancements

  • MetricFlow Integration - Load configuration from env_settings.yml, improved project detection, and cleaner output formatting. #214 #216 docs
  • Flexible Model Configuration - Support for multiple model providers and specifications in agent configuration. #195
  • CLI Display Improvements - Enhanced table width rendering for better SQL query readability. #200
  • Improved Initialization - Enhanced datus-agent init command with better error handling and setup flow. #194

Dependency Changes

  • openai-agents upgraded to 0.3.2 (requires manual update: pip install -U openai-agents)
  • datus-metricflow updated to 0.1.2

0.2.0

Enhanced Chat Functionality

  • Advanced multi-turn conversations for seamless interactions. #91
  • Agentic execution of database tools, file system operations, and automatic to-do list generation.
  • Support for both automatic and manual compaction (/compact). #125
  • Session management with /resume and /clear commands.
  • Provide dedicated context by introducing it with the @table, @file, @metrics, @sql_history commands. #134 #152
  • Token consumption tracking and estimation for better resource visibility. #119
  • Write-capability confirmations before executing sensitive tool actions.
  • Plan Mode: An AI-assisted planning feature that generates and manages a to-do list. #147

Automatic Knowledge Base Building

  • Automatic generation of Metric YAML files in MetricFlow format from historical success stories. #10
  • Automatic summary and labeling SQL history files from *.sql files in workspace. #132
  • Improves SQL accuracy and generation speed using metrics & SQL history.

MCP Extension

  • New /mcp commands to add, remove, list, and call MCP servers and tools. #54

Flexible Workflow Configuration

  • Fully customizable workflow definitions via agent.yml.
  • Configurable nodes, models, and database connections.
  • Support for sub-workflows and result selection to improve accuracy. #88

Context Exploration

  • Improve /catalog to display all databases, schemas, and tables across multiple databases.
  • New /subject to show all metrics built with MetricFlow. #165
  • Context search tools integration to enhance recall of metadata and metrics. #138

User Behavior Logging

  • Automatic collection of user behavior logs.
  • Transforms human–computer interaction data into trainable datasets for future improvements.

0.1

0.1.0

Datus-cli

  • Supports connecting to SQLite, DuckDB, StarRocks, and Snowflake, and performing common command-line operations.
  • Supports three types of command extensions: !run_command, @context, and /chat to enhance development efficiency.

Datus-agent

  • Supports automatic NL2SQL generation using the React paradigm.
  • Supports retrieving database metadata and building vector-based search on metadata.
  • Supports deep reasoning via the MCP server.
  • Supports integration with bird-dev and spider2-snow benchmarks.
  • Supports saving and restoring workflows, allowing execution context and node inputs/outputs to be recorded.
  • Offers flexible configuration: you can define multiple models, databases, and node execution strategies in Agent.yaml.

0.1.2

Datus-cli

  • Added a fix node: use !fix to quickly fix the last SQL error, with a focused template for the LLM.

Datus-agent

  • Performance improvement for bootstrap-kb with multi-threading.
  • Other minor bug fixes.

0.1.3

Datus-cli

  • Added datus-init to initialize the ~/.datus/ directory.
  • Included a sample DuckDB database in ~/.datus/sample.

Datus-agent

  • Added the check_result option to the output node (default: False).

0.1.4

Datus-agent

  • Added the check-mcp command to confirm the MCP server configuration and availability.
  • Added support for both DuckDB and SQLite MCP servers.
  • Implemented automatic installation of the MCP server into the datus-mcp directory.

0.1.5

Datus-agent

  • Automated semantic layer generation.
  • Introduced a new internal workflow: metrics2SQL.
  • Added save_llm_trace to facilitate training dataset collection.

Datus-cli

  • Enhanced !reason and !gen_semantic_model commands for a more agentic and intuitive experience.