Datus-agent 0.3.5 is here! 📷
1. 𝗗𝗮𝘁𝗮 𝗔𝗰𝗰𝗲𝘀𝘀 𝗣𝗼𝗹𝗶𝗰𝘆
Enforce row- and column-level access before any read SQL runs. The REST API passes structured caller identity (user, role, team) via `X-Datus-Principal`, and a custom `DataAccessPolicyProvider` can rewrite or reject queries before execution — wire it to OPA or your own auth service, or run the built-in `NoAuthProvider` out of the box.
2. 𝗦𝘁𝗿𝗶𝗰𝘁 𝗢𝗦𝗜 𝘀𝗲𝗺𝗮𝗻𝘁𝗶𝗰 𝗮𝘂𝘁𝗵𝗼𝗿𝗶𝗻𝗴 (Experimental)
`gen_semantic_model` and `gen_metrics` can now author in strict OSI mode: generate OSI-compliant YAML, validate and dry-run it through the adapter, and write the metrics back to your knowledge base so the KB and semantic layer stay in sync.
3. 𝗣𝗲𝗿𝗶𝗼𝗱-𝗼𝘃𝗲𝗿-𝗽𝗲𝗿𝗶𝗼𝗱 𝗺𝗲𝘁𝗿𝗶𝗰𝘀
`gen_metrics` builds `offset_window` derived metrics (day/week/month/quarter/year) straight from your LAG SQL, and `ask_metrics` automatically matches the right time grain — so current, previous-period, and delta values come back together, with no missing first period.
4. 𝗠𝗲𝘁𝗿𝗶𝗰 𝗽𝗿𝗲𝘃𝗶𝗲𝘄 𝗔𝗣𝗜
New endpoints let a metric editor dry-run compile a saved metric into runnable SQL and list its queryable dimensions before saving. Invalid dimensions return structured preflight feedback instead of a raw error.
5. 𝗟𝗶𝗴𝗵𝘁𝗲𝗿 𝗶𝗻𝗶𝘁, 𝗻𝗲𝘄 𝗯𝘂𝗶𝗹𝗱-𝗸𝗯 𝗰𝗼𝗺𝗺𝗮𝗻𝗱
`/init` is now a fast, no-prompt project scan that writes an `AGENTS.md` inventory plus file-based knowledge/memory — no expensive vector store. Heavy KB construction moves to the new `/build-kb` command, scoped to your active datasource.
6. 𝗡𝗼𝗻-𝗶𝗻𝘁𝗲𝗿𝗮𝗰𝘁𝗶𝘃𝗲 𝗽𝗹𝗮𝗻 𝗺𝗼𝗱𝗲
`datus -p --plan-mode` auto-confirms generated plans, unblocking print-mode and benchmark runs that used to hang waiting for input.
Plus: cached system-prompt prefixes cut input-token cost on long sessions, permission locks are now scoped per session so concurrent runs no longer block each other, the Claude subscription path fires permission/compact/lifecycle hooks consistently, and a round of CLI and connection-state fixes — more reliable across the board.
Full release notes:
docs.datus.ai/0.3/release_no…