New Features
- [Experimental] Optional Metadata Full-Text Search - Set
kb.search.mode: ftsto use LanceDB 0.34 native FTS with Chinese n-gram indexing for metadata retrieval. Vector search remains the default; FTS validates index compatibility strictly and supports incremental updates. #1112 #1141 docs - Semantic SQL History Profiler -
gen_semantic_modelcan use historical SQL and success-story SQL to collect column-usage evidence, data distributions, date spans, join coverage, and common filters for MetricFlow and OSI semantic authoring. The deeper profiling path is enabled for explicit profiling requests and can also be disabled explicitly. #1082 #1108 docs - Project-Level, Spec-Aligned OSI Semantic Layer - Semantic-model generation, metric generation, AskMetrics, querying, and BI bootstrap now use the project's active semantic adapter. OSI authoring uses the datasource's real SQL dialect, can sync a complete OSI document into the Knowledge Base in one call, and follows structural field roles: only fields with a
dimensionblock are queryable dimensions, while primary and unique keys are transcribed from database constraints surfaced bydescribe_table. Metric authoring is isolated from semantic-model writes to prevent structural rewrites and concurrent overwrite. Projects without an explicit adapter still default to MetricFlow. #1107 #1120 #1128 #1131 #1148 #1160 #1161 datus-semantic-adapter#41 #42 #43 #50 semantic-layer docs OSI adapter docs
Enhancements
- First-Class Advanced Time Metrics - Metric generation now authors cumulative, rolling-window, and fixed period-over-period variants as independent metrics instead of treating them as covered by a base metric. Semantic adapters add required
metric_timegrouping and return structured validation guidance, while generated OSI metrics receive the same business-domainsubject_pathbehavior as MetricFlow metrics. #1104 #1111 #1113 #1124 datus-semantic-adapter#38 #39 #40 - Safer, Observable Bash Tooling -
execute_commandis renamed tobashand now supports real shell pipelines, command-level allow/deny/ask rules, project allowlists, per-call timeouts, and process-group cleanup. Long output is archived with a recoverable preview, elapsed time remains visible while commands run, and commands that read stdin no longer hang the TUI. #1092 #1094 #1103 - Consistent Semantic Artifact Refresh - MetricFlow and OSI YAML can refresh
Observed profiledescriptions from stored table semantic profiles. Semantic models, table profiles, vector rows, and metrics are synchronized within the current artifact scope, and metric sync is now upsert-only so unrelated metrics in the same datasource are preserved. #1090 Knowledge Base API docs semantic-model docs - Inline PEM Content for
ssl_verify- Model configuration can store CA certificate content directly instead of depending on a certificate file inside the runtime container. Native httpx paths use an in-memorySSLContext, while LiteLLM uses automatically cleaned, content-deduplicated temporary CA bundles. #1102 docs - Server-Side Web File Tools - Web sessions under the
autoanddangerousprofiles runwrite_file,edit_file, anddelete_fileon the server, avoiding proxy timeouts when a browser tab is hidden, disconnected, or closed. SSE tool events now expose an explicitproxiedstate, while VS Code continues to use client-side proxy execution. #1123 - Independent English and Chinese Documentation Sites - English and Chinese docs now build as separate MkDocs sites with independent search indexes, version metadata, and canonical URLs. Chinese pages move to
/zh/<version>/, preventing search results from mixing both languages. #1152 #1154 docs
Bug Fixes
- Database-Scoped Semantic Storage - Semantic models now use full catalog/database/schema/table identities so same-named tables no longer overwrite each other; stale simple-id rows are cleaned up safely during later syncs.
datus-agent run --task_db_namealso preserves the physical database selected by the caller. #1115 #1127 - Recoverable Agent and Gateway Failures - LLM stream failures return stable error codes and readable messages, missing required tool arguments produce retryable results instead of terminating the turn, and missing custom
gen_sqlprompts fall back to the latest built-in template. Slack and Feishu skip startup when credentials are absent, while invalid Slack credentials fail fast instead of reconnecting forever. #1116 #1117 #1122 #1134 #1135 #1137 - Runtime Dependency Compatibility - Capped
openaibelow 2.45.0 to avoid anopenai-agents==0.7.0Usage-schema failure before every model call, and pinned pandas to 2.1.4 for compatibility with the Snowflake adapter while retaining LanceDB 0.34. #1130 #1136