Skip to content

0.3.8 release

Latest

Choose a tag to compare

@stukid stukid released this 21 Jul 07:37

New Features

  • [Experimental] Optional Metadata Full-Text Search - Set kb.search.mode: fts to 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_model can 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 dimension block are queryable dimensions, while primary and unique keys are transcribed from database constraints surfaced by describe_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_time grouping and return structured validation guidance, while generated OSI metrics receive the same business-domain subject_path behavior as MetricFlow metrics. #1104 #1111 #1113 #1124 datus-semantic-adapter#38 #39 #40
  • Safer, Observable Bash Tooling - execute_command is renamed to bash and 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 profile descriptions 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-memory SSLContext, while LiteLLM uses automatically cleaned, content-deduplicated temporary CA bundles. #1102 docs
  • Server-Side Web File Tools - Web sessions under the auto and dangerous profiles run write_file, edit_file, and delete_file on the server, avoiding proxy timeouts when a browser tab is hidden, disconnected, or closed. SSE tool events now expose an explicit proxied state, 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_name also 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_sql prompts 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 openai below 2.45.0 to avoid an openai-agents==0.7.0 Usage-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