Release notes¶
0.3¶
0.3.7¶
New Features
- Unified Web Search and Fetch Tools - Added
web_tool.web_search/web_tool.web_fetchso the agent can search the web and fetch page content. The backend is selected automatically by the current model provider (Claude nativeweb_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 -pevent 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_sqlDatabase Tool - The previously separateread_query/execute_ddl/execute_writetools are merged into a singleexecute_sqlthat 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 isdangerous). The previous restriction on DDL statement types is also lifted, so statements likeCREATE DATABASE/TRUNCATE/MERGEcan run once confirmed. #1062 list_tablesReturns Qualified Names - List items changed from baretable_nametoqualified_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_tablenow syncs and displays a table-level semantic profile, andask_metricsgains stronger metric discovery, cross-table join control, and cumulative/rolling metric querying. #1061 #1055 docs - build-kb / init Scan All Text Files -
/build-kband/initno 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_fileExtensions - Fixed failed tool executions still showing a green ✓ under the Claude native / Codex backends (now correctly shown as ✗); also removed thewrite_fileextension whitelist so files like.sh/.tfcan be written. #1077 - catalog/list Scoped to the Datasource's Configured Databases -
GET /api/v1/catalog/listno 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_writeare no longer exposed as separate agent/MCP tools; they are unified into a singleexecute_sql. Custom subagent tool whitelists or scripts referencing the old tool names must migrate toexecute_sql. #1062
Internal
- Web Frontend Proxies
delete_file-delete_filein web sessions is now proxied to the browser side for execution, consistent withwrite_file/edit_file, instead of running on the server filesystem. #1080 - Metric Retrieval Hook and uid Column -
tb_metricsgains auidcolumn 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
/initand/build-kbRuns -/initnow accepts optional scope text, and/build-kbcan 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_verifytotrue,false, or a CA bundle path for private CA and self-signed LLM endpoints; the model-level setting takes precedence overSSL_VERIFYandSSL_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.lockbefore 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 legacyskill_execute_commandpath andallowed_commandsin skill config have been removed. #1033 - Database Schema Tools -
get_table_ddlis no longer exposed as an agent/MCP tool. Usedescribe_tableandread_queryfor 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_modelandgen_metricscan 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-/initis now a fast project scan that writes anAGENTS.mdinventory plus file-based knowledge/memory stores, while expensive vector-indexed KB construction moves to/build-kbwith optional file, table, datasource, or business-domain scope. The new built-instorage-classifyskill routes semantic models, metrics, reference SQL, knowledge, memory, skills, andAGENTS.mdupdates 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_metricsnow supports optional final metric-result selection, fullquery_metricsresult 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_metricscan generateoffset_windowderived metrics from LAG SQL, andask_metricsuses offset metadata to select the matching time-grain dimension, reducing missing first-period results from grain mismatches. #989 - Non-Interactive Plan Mode -
datus -padds--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 -
DatusServiceCachenow keeps a busy service instance alive when theAgentConfigfingerprint changes, preventing/chat/user_interactionreplies from hitting a fresh empty task manager and returningSESSION_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_timeevidence 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
Authorizationheaders when Anthropic SDK credentials fall back to environment variables. #991 - Readable Python 3.12 CLI Help - Migrated
DBType,LLMProvider,EmbeddingProvider, andSQLTypetoStrEnumso 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_reportandskill_creatorstill 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 -
DBManagernow tolerates nulled_conn_dictentries and logslist_databasestracebacks, 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_KEYat the full vendor/model catalog; the/modelpicker now has search filtering and hides the non-canonical-fastClaude aliases. #973 #936 docs - Self-Update Commands -
datus upgrade/datus updatecheck for and install new versions of yourdatus-*packages from the CLI; interactive sessions flag new versions on startup, and--checklooks without installing. #949 - Orchestrator Tools in Print Mode -
--orchestrator-toolslets 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.mdthat is write-only throughadd_memory/edit_memory; sub-agents inherit it read-only. #975 docs - Built-in Knowledge Extraction - External knowledge generation moved off the old
ext_knowledgevector subsystem to the built-inextract-knowledgeskill, 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_sqlNaming - The SQL-generation node, workflow, config, CLI command (/gen_sql), prompt templates, and sub-agent name now share one consistentgen_sqlnaming; projects on the oldgenerate_sql/sql_systemconfig should migrate. #935 docs - Configurable Metrics Batch Size -
bootstrap-kb --components metricsadds--metrics-batch-size; set it to1when you need per-success-story provenance, or keep the default of5for the original throughput. #976
Bug Fixes
- Datasource-Isolated Metrics Bootstrap - Metrics bootstrap now isolates rows per datasource in multi-datasource projects, so
overwriteno 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_nodesUNIQUE 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,
/databaseswitching, 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
/compactcommand 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, optionalprivate_key_file_pwd, androle; 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 -pand--resume- Print mode can now restore and continue a specific session. Usedatus -p '...' --resume <session_id>to continue from the command line; REPL and API chat also support--resumefor existing sessions. #914
Bug Fixes
- Custom Ask Subagents Honor Tool Whitelists -
ask_report/ask_dashboardnow only see tools allowed by the subagent'stoolswhitelist. 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.tracingto 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_dashboardgenerates dashboard-style HTML (multi-chart card layouts) right from Chat, just likegen_visual_report, with local interactive preview served bydatus --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/bootstrapand 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_reportsubagent 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.mdto 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
/permissionCommand - Renamed/profileto/permission, withnormal/auto/dangerousmodes 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/dangerousper 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
temperatureandtop_pare 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_pathwas 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-clawrenamed todatus-gateway. #559 #562 #565 #616 #623 #593 docs
Project & Workspace Configuration
- Project-aware Configure/Init Flow - Split
setupinto project-awareconfigure/initflows with project-level.datus/config.yml, project memory, automatic datasource/service setup, and a redesigned.datusdirectory. #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 | shinstall 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/bootstrapTUI. #621 #635 #650 #655 #656 #659 #683 docs /languageand/effortCommands - 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/dangerouspermission 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-creatorsubagent 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-adaptersadded Greenplum, improved metadata robustness, thread-safe connector isolation, dialect-specific identifier quoting, and aMigrationTargetMixinfor migration workflows. datus-db-adapters#40 #43 #45 #46 #47 #48 docs - BI Adapters: Superset & Grafana - New
datus-bi-corewith 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-coreand Airflow adapter with DuckDB DAG execution, multi-tenant DAG folder, job/run list result envelope, and inactive DAG deletion semantics; published asdatus-scheduler-airflow0.1.2. datus-scheduler-adapters#2 #3 #4 #8 #9 docs - Semantic Adapter Split -
datus-semantic-adaptersplit outdatus-semantic-coreand 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 viadatus-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 /--datasourceflows. 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_usertool 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.interruptcommands 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
--subagentCLI 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_datedirectly into system prompts, removing the separateget_current_datetool. #473 - Data Compression - Added response compression for
query_metricsand fixedDataCompressormodel_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_hooksto use correctwhereexpression condition. #482 - Ctrl+O Toggle - Fixed missing response display for previous turns when toggling with Ctrl+O. #477
- Missing Tabulate Dependency - Added missing
tabulatedependency to pyproject.toml and requirements.txt. #476 - Skill Scan Paths - Removed
~/.claude/skillsfrom 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_adapterandsdk_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
/subjectscreen. 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 initworkflow 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_summarysubagents 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-kbandgen_semantic_modelto 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=trueparameter for embedding. docs - Context Generation Commands - New
/gen_semantic_model,/gen_metrics, and/gen_sql_summarycommands in subagents for dynamic knowledge base enrichment. #192 docs - Interactive Context Editing - Visual editing support for
/catalogand/subjectcommands 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 initcommand with better error handling and setup flow. #194
Dependency Changes
openai-agentsupgraded to 0.3.2 (requires manual update:pip install -U openai-agents)datus-metricflowupdated 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_historycommands. #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
/catalogto 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
!fixto 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.