Skip to content

Releases: tamasmrtn/duckhaven

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 14 Sep 12:48
ee1f340

[0.8.0] - 2026-09-14

Bug Fixes

  • Make the judged eval measure the assistant, not the harness (#269)
  • Make every fixture statement answer in its own terms (#270)
  • Repair the install path and pull MinIO from quay.io (#280)
  • Reuse object-store connections so concurrent reads stop exhausting ports (#292)

Documentation

  • Split the codebase map out of the architecture page (#267)
  • Verify and dedupe concepts, reposition DuckHaven as a lakehouse (#279)

Features

  • Add self-service token endpoints and CLI documentation (#254)
  • Make the assistant aware of the product (phase 1) (#256)
  • Give the assistant a documentation index and a read tool (phase 2) (#257)
  • Add documentation search and the eval harness (phase 3) (#258)
  • Add the judged eval tier, with both-orders pairwise judging (phase 4) (#259)
  • Cite the documentation pages behind an answer (phase 5) (#260)
  • Mine the assistant's audit trail for bad answers (phase 6) (#261)
  • Add a governed MCP server at /mcp (#277)
  • Wait for a statement to finish before answering the submit call (#293)
  • Add pass^k sampling to the judged eval (#296)

Maintenance

  • Upgrade Postgres/Polaris and track Docker images with Dependabot (#250)
  • (deps) Bump haproxy from 2.9-alpine to 3.4-alpine in /deploy (#252)
  • (deps) Bump etcd-development/etcd (#251)
  • (deps) Update pydantic-ai-slim[anthropic,mistral,openai] requirement (#248)
  • (deps) Bump the python-minor-patch group across 1 directory with 2 updates (#247)
  • (deps) Bump github/codeql-action (#246)
  • (deps) Bump the npm-minor-patch group across 1 directory with 12 updates (#253)
  • (deps) Bump the npm-minor-patch group in /web with 6 updates (#262)
  • (deps) Bump the python-minor-patch group across 1 directory with 3 updates (#268)
  • (deps) Bump @tanstack/react-table from 8.21.3 to 9.2.4 in /web (#263)
  • (deps) Bump node from 24-alpine to 26-alpine in /api (#272)
  • (deps) Bump the npm-minor-patch group in /web with 5 updates (#273)
  • (deps) Update pydantic-ai-slim[anthropic,mistral,openai] requirement (#276)
  • (deps-dev) Bump vitest from 4.1.11 to 5.0.0 in /web (#274)
  • Replace the bundled MinIO object store with RustFS (#281)
  • (deps) Bump chainguard/python from de66934 to b0bc807 in /api (#282)
  • (deps) Bump chainguard/python in /agent (#283)
  • (deps) Bump github/codeql-action in the actions group (#285)
  • (deps) Bump boto3 in the python-minor-patch group (#286)
  • (deps) Update pydantic-ai-slim[anthropic,mistral,openai] requirement (#287)
  • (deps) Bump the npm-minor-patch group across 1 directory with 8 updates (#288)

Performance

  • Serve a statement's first page inline and cut a round trip from auth (#294)
  • Fix the concurrency tail in admission control (#295)

Refactoring

  • Switch api and agent images to Chainguard (#271)

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 23 Aug 10:14

[0.7.0] - 2026-08-23

Semantic layer

DuckHaven can now record what your business terms mean and how they are
calculated — datasets, dimensions, metrics, and relationships — and the AI
assistant grounds its SQL in those definitions instead of guessing from column
names.

  • Give business definitions somewhere to live (datasets, dimensions, metrics, relationships)
  • Expose the semantic layer over the API and accept definitions from outside DuckHaven
  • Compile metric queries instead of describing them, so a metric is machine-actionable
  • Author definitions in the UI, with a readable metric SQL preview showing what a definition compiles to
  • Let people save a worksheet expression as a metric
  • Import semantic definitions from a dbt manifest; imported models' metrics become usable immediately
  • Let the assistant answer from agreed definitions, and record a bypassed metric definition on the audit row
  • Let a definition be removed without deleting its model
  • Say a definition is broken instead of saying it is missing
  • Refuse malformed authoring input with a refusal, not a 500; refuse a time query whose axis no longer exists

Data lineage

  • Ship lineage: a Lineage tab on any catalog table showing where its data came from and what breaks if it changes
  • Derive lineage from the SQL DuckHaven executes — no configuration, no instrumentation
  • Import lineage from external producers, dbt first
  • Add column-level lineage: name the columns a node holds, and work out which source columns a target column came from
  • Persist a relationship's column mappings, carry a table's lineage across a rename
  • Show incompleteness and staleness on the lineage tab; say which producer went quiet and which direction is empty
  • Keep a node's column count when opening it, and let a table on the graph open to show its columns
  • Serve a table's lineage graph over the API; prove column lineage against a live agent and catalog

Query history

  • Add server-side paging, filters, and sorting — keyset cursor paging, so history pages stay stable under load
  • Filter by agent, user, status, statement type, session, statement text, and time; sort by start time or duration
  • Allow non-admins to filter query history by agent; cross-principal filters stay admin-only
  • Classify statement types (select / insert / update / delete / merge / copy / create / alter / drop / describe)
  • Rebuild the History page on the server-side filters and paging, with agent/user filter pickers and a refresh button
  • Add an expandable SQL panel to history and profile pages; keep the History table's SQL cell single-line

Query profiles

  • Surface blocked time, admission wait, and operator identity in profiles
  • Judge a scan blow-up by the scan's own output, not the query's; show rows a scan actually read, not DuckDB's per-thread sum
  • Center the operator graph and add zoom controls and click-drag panning
  • Expand the profile page's SQL panel in place instead of in a dialog
  • Fix a snapshot-age crash when timestamp_ms is a real TIMESTAMP

Worksheet and SQL editing

  • Drag a table from the catalog tree into the worksheet to insert its qualified name
  • Add cross-catalog, table-function, and snippet completions; fix cross-catalog completion for 3-part FROM references
  • Surface a free row-count estimate from the current snapshot in table completions and the tree
  • Render AI-proposed edits as a real inline diff with pure line-diff hunk computation
  • Add a hover-preview card for catalog tree tables
  • Add column type badges and client-side sorting to the results grid; surface the column type schema on query row pages
  • Sort results before copying or exporting to CSV
  • Stop catalog table clicks from overwriting the worksheet; stop dragged names from being inserted twice

Memory and admission control

  • Size statements by CPU and cache need, not one memory bucket; size session statements from their own EXPLAIN estimate, with a fallback bucket for unestimable ones
  • Read the estimated row width off the relation instead of a second DESCRIBE
  • Cache EXPLAIN estimates agent-wide, keyed on the SQL and the catalog set, with a TTL
  • Survive a DuckDB planner that spins and ignores interrupts; bound the estimate on the session statement path too
  • Let a live admission reservation be resized; give elastic agents the same elastic cache grant as sessions
  • Let a caller bound its own admission queue wait; report how long a statement waited for memory
  • Surface parked statements as a Prometheus gauge
  • Stop starved statements deadlocking on each other; fix fairness bugs in the growth-waiter queue
  • Report peak memory and spill per statement, not per connection; fix peak_memory_bytes/spill_bytes always reading as None
  • Release admission slots for opens closed mid-flight; drop a session the agent opened after the API gave up
  • Give static ladder slots the full core count too; fix the elastic tier's three regressions

Command palette and search

  • Add a cross-catalog search endpoint for the command palette — grant-redacted, matching schemas, tables, and saved queries
  • Rebuild the command palette as real cross-catalog search; harden it against a bad catalog and ILIKE wildcards

Catalog and navigation

  • Show recently-viewed objects on the Catalog landing page
  • Make worksheet tabs URL-addressable and close worksheet-to-object-detail discoverability dead ends
  • Add catalog deep links to assistant SQL responses
  • Match the Catalog tree width to the worksheet sidebar; harden object-detail navigation against bad params and stale types
  • Rename Sessions to Connections in user-facing copy

Settings and workspaces

  • Add a Settings destination for workspace and account preferences
  • Add workspace rename, description, and delete endpoints; PATCH can now clear the description

Assistant

  • Add "Fix with Assistant" to the failed-query error banner, with the failed SQL included in the seed message
  • Persist assistant tool calls; ground answers in semantic definitions and the lineage graph

Maintenance scanner

  • Couple scan cadence to the preset; improve the maintenance scanner and the agent health probe
  • Fix maintenance scoring correctness

Elastic compute

  • Let elastic agents receive a raised query timeout

UI foundations

  • Promote EmptyState to the shared ui/ primitives and use it on every empty page; extract a shared PageHeader
  • Add on-brand scrollbar tokens and style the Radix scrollbar thumb; match the Catalog tree width to the sidebar
  • Add a segmented control, a hover card, and a shared top-bar nav registry; start a theme context

Documentation

  • Add the semantic layer concept and define-metrics guide; import dbt semantics and lineage guides
  • Document lineage, the maintenance scanner's new behavior, and the elastic agent's raised timeout
  • Expand query-execution, run-queries, query-profiles, and the REST API reference (150+ lines)

Bug Fixes

  • Fix peak_memory_bytes/spill_bytes always reading as None
  • Fix a snapshot age crash when timestamp_ms is a real TIMESTAMP
  • Stop a bad statement taking a lineage backfill batch down with it
  • Fix the search auth integration test's shared-client contamination
  • Fix a nested-button accessibility bug in worksheet tabs

Maintenance

  • (deps-dev) Bump postcss in /web in the npm-minor-patch group (#194)
  • (deps-dev) Bump @testing-library/jest-dom in /web
  • (deps) Bump the actions group with 2 updates
  • (deps) Bump the python-minor-patch group with 2 updates
  • (deps) Update pydantic-ai-slim[anthropic,mistral,openai] requirement
  • (deps) Bump the npm-minor-patch group in /web with 11 updates
  • (deps) Bump the python-minor-patch group with 3 updates (#208)
  • (deps) Update uvicorn[standard] requirement
  • (deps) Bump github/codeql-action in the actions group
  • (deps-dev) Bump jsdom from 29.1.1 to 30.0.1 in /web
  • (deps) Update pydantic-ai-slim[anthropic,mistral,openai] requirement
  • (deps) Bump websockets from 16.1.1 to 17.0.1
  • (deps) Update pydantic-ai-slim[anthropic,mistral,openai] requirement
  • (deps) Update sqlalchemy[asyncio] requirement
  • (deps) Bump diff from 8.0.4 to 9.0.0 in /web
  • (deps) Bump the npm-minor-patch group across 1 directory with 11 updates (#218)
  • (deps) Bump the python-minor-patch group across 1 directory with 4 updates (#221)
  • (deps) Update pydantic-ai-slim[anthropic,mistral,openai] requirement
  • (deps) Bump the npm-minor-patch group in /web with 5 updates (#230)
  • (deps) Update uvicorn[standard] requirement (#233)
  • (deps) Bump github/codeql-action in the actions group (#231)
  • (deps) Bump the python-minor-patch group across 1 directory with 3 updates (#232)

v0.6.0

Choose a tag to compare

@github-actions github-actions released this 01 Aug 06:56

[0.6.0] - 2026-08-01

Bug Fixes

  • Pass DuckDB memory limits in GiB, not GB
  • Point the admin-agents E2E suite at /compute
  • Only post coverage comments on pull requests

Cold-start admission

  • Add columns for parking work while compute starts
  • Bind parked sessions and targeted runs when an agent registers
  • Start compute when a SQL session finds none
  • Queue a run for a terminated agent instead of failing it
  • Show pending sessions in the session audit UI
  • Document cold-start admission for sessions and runs
  • Cover the elastic compute flow end to end
  • Bind a session whose agent has not reported capabilities yet

Documentation

  • Correct SQL session client attribution contract (#183)
  • Document per-agent monitoring and elastic metrics
  • Explain per-agent access control

Features

  • Elastic agents on Azure Container Instances, with Terraform (#184)
  • Record when a query starts running
  • Persist agent lifecycle and utilization telemetry
  • Instrument elastic compute and share failure reasons
  • Add per-agent detail and monitoring endpoints
  • Add a monitoring page for each agent
  • Add per-agent access grant data model
  • Add per-agent access tier evaluation
  • Enforce per-agent tiers on the agent endpoints
  • Enforce agent access on dispatch and schedules
  • Add agent access types and client to the web app
  • Gate agent UI on the caller's per-agent tier
  • Choose an agent's access mode when creating compute
  • Move Compute out of Admin into the main nav
  • Choose a catalog's access mode when creating it
  • Start a terminated elastic agent for a scheduled run

Maintenance

  • (deps) Bump the npm-minor-patch group across 1 directory with 32 updates (#185)
  • (deps) Bump the actions group across 1 directory with 2 updates (#182)
  • (deps) Update pydantic-ai-slim[anthropic,mistral,openai] requirement (#167)
  • (deps) Bump the python-minor-patch group across 1 directory with 3 updates (#166)

Refactoring

  • Drop the legacy /admin/agents redirects

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 22 Jul 17:14
85ae2c2

[0.5.0] - 2026-07-22

Bug Fixes

  • Reclaim leaked SQL session admission slots under churn (#153)
  • Close SQL session admission slot leak under churn (#155)
  • Bound and resolve lost SQL-session EXEC_STATEMENT frames (#157)
  • Stop session close from blocking the agent event loop (#159)
  • Materialize DESCRIBE and every SELECT-shaped meta statement (#171)
  • Scope enumeration denial message and correct its docs (#180)

Features

  • Assistant chat UX — catalog context, scoped edits, history, recovery, personality (#141)
  • Add OpenTelemetry distributed tracing (#142)
  • SQL session layer, statement policy, sandbox, and credential seam (#150)
  • Allow DESCRIBE in the SQL session statement policy (#151)
  • SQL session staging via presigned URLs (#161)
  • Presign staging PUT for a client-facing endpoint (#169)
  • Allow TRUNCATE TABLE in the SQL session statement policy (#172)
  • Make relation introspection reliable for attached Iceberg catalogs (#173)
  • Return typed result columns from the query API (#175)
  • Surface SQL sessions and statement attribution in the UI (#176)
  • Add GET /api/version endpoint (#181)

Maintenance

  • (deps) Bump the python-minor-patch group across 1 directory with 2 updates (#133)
  • (deps) Update sqlalchemy[asyncio] requirement (#134)
  • (deps) Bump the npm-minor-patch group across 1 directory with 29 updates (#137)
  • (deps) Bump the npm-minor-patch group in /web with 5 updates (#143)
  • (deps) Bump the python-minor-patch group across 1 directory with 2 updates (#145)
  • (deps) Update uvicorn[standard] requirement (#147)
  • Four UI polish fixes in web (#149)
  • Finish agent sandbox hardening and make egress real (#170)

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 01 Jul 12:16
672a350

[0.4.0] - 2026-07-01

Bug Fixes

  • Statement-aware worksheet Run with Ctrl+Enter (#93)
  • (api) Scope the storage health probe under a unique prefix
  • (agent) Give the azure/httpfs extensions a CA bundle for cloud TLS
  • (api) Tolerate a blank OIDC_GROUP_ROLE_MAP env value
  • (web) Resolve the index route instead of always bouncing to login
  • (api) Make agent bootstrap-token seeding race-safe
  • (api) Record agent result host from X-Forwarded-For behind a proxy

Documentation

  • Add MkDocs Material documentation site (#100)
  • Document identity, RBAC, and SSO/LDAP
  • Document admin-managed workspace membership
  • Document external S3/ADLS storage setup and maintenance
  • ADLS vending needs a Polaris service principal
  • Document the highly-available control plane
  • Note the opt-in HA control plane in the README

Features

  • Page query results by row window instead of whole file (#92)
  • Iceberg snapshot history browsing and query-at-snapshot (#95)
  • Cgroup-aware agent memory + query queueing (#96)
  • ESTIMATE-based query cost estimation and post-execution profile UI (#99)
  • Autonomous lakehouse maintenance advisor (#101)
  • (api) First-class RBAC and admin user management
  • (api) Add OIDC SSO and LDAP federated login
  • (web) Add SSO sign-in and user management UI
  • (api) Admin endpoints to manage workspace membership
  • (web) Manage workspace access from the Users admin page
  • (api) Store external backend credential config
  • (api) Build Polaris storageConfigInfo for external S3/ADLS
  • (api) Validate external storage access with a health check
  • (web) Register external backend config and test storage access
  • (deploy) Enable Azure storage type and document external backends
  • (deploy) Pass Azure service-principal creds to Polaris for ADLS
  • (api) Expose storage backend name and root URI on CatalogOut
  • (web) Show storage backend on the catalog tree + info panel
  • (deploy) Pass OIDC settings to the API and document Entra
  • (api) Support multiple OIDC providers + fix identity claim
  • (web) Render a login button per configured SSO provider
  • (deploy) OIDC_PROVIDERS passthrough + multi-provider docs
  • (deploy) Allow a custom STS endpoint for external S3 backends
  • (api) Cross-replica agent dispatch, presence, and readiness
  • (api) Coordinate maintenance scanner and migrations for HA
  • (deploy) Add opt-in HA Compose topology

Maintenance

  • (deps) Bump the actions group with 4 updates
  • (deps) Bump the npm-minor-patch group across 1 directory with 23 updates (#108)
  • (deps) Bump the python-minor-patch group across 1 directory with 6 updates (#107)
  • (deps) Bump actions/cache from 5 to 6 in the actions group
  • Lock boto3 and azure-storage-blob for storage health check
  • (deps) Bump the python-minor-patch group across 1 directory with 4 updates (#120)
  • (deps) Update sqlalchemy[asyncio] requirement (#119)

Refactoring

  • Scope agent WebSocket DB sessions per frame (#94)

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 09 Jun 11:21
a02889d

[0.3.0] - 2026-06-09

Bug Fixes

  • Idempotent Polaris grants and descriptive PolarisError responses (#66)
  • Resolve QA round 2 defects (admin users, worksheet, a11y, UX) (#68)

Documentation

  • Add release guide and markdownlint hook (#90)

Features

  • Advertise agent CPU and add live utilization page (#73)
  • Readable utilization x-axis and agent display names (#83)

Maintenance

  • Simplify the deploy stack to six services (#69)
  • (deps) Bump @radix-ui/react-tooltip from 1.2.8 to 1.2.9 in /web (#82)
  • (deps-dev) Bump @typescript-eslint/eslint-plugin in /web (#80)
  • (deps-dev) Bump vitest from 4.1.7 to 4.1.8 in /web (#78)
  • (deps) Bump docker/setup-qemu-action from 3 to 4 (#76)
  • (deps) Bump @radix-ui/react-tabs from 1.1.13 to 1.1.14 in /web (#81)
  • (deps-dev) Update ruff requirement from >=0.15.15 to >=0.15.16 (#77)
  • (deps) Bump the npm-minor-patch group in /web with 19 updates (#89)
  • (deps) Bump the python-minor-patch group with 5 updates (#86)
  • (deps) Bump the actions group with 2 updates (#85)
  • (deps) Update sqlalchemy[asyncio] requirement (#87)

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 31 May 20:34
c8b0c5a

[0.2.0] - 2026-05-31

Features

  • Serve the web UI from the API in the deploy stack (#45)
  • Publish duckhaven images to GHCR; compose pulls instead of builds (#55)
  • Auto-generate persistent secrets on first boot (#56)
  • In-entrypoint migrations + browser-driven first-admin onboarding (#57)
  • Add-agent compose snippet, /healthz endpoint, task-organised docs (#58)

Maintenance

  • (deps) Bump @tanstack/react-router in /web
  • (deps) Bump dependabot/fetch-metadata from 2 to 3
  • (deps) Bump astral-sh/setup-uv from 6 to 7
  • (deps-dev) Update ruff requirement from >=0.15.14 to >=0.15.15 (#48)
  • (deps-dev) Update pytest-asyncio requirement (#50)
  • (deps) Bump lucide-react from 1.16.0 to 1.17.0 in /web (#54)
  • (deps-dev) Bump eslint from 10.4.0 to 10.4.1 in /web (#51)
  • (deps-dev) Bump @typescript-eslint/parser in /web (#53)
  • (deps-dev) Bump @typescript-eslint/eslint-plugin in /web (#52)

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 26 May 09:20
dfb73c0

[0.1.0] - 2026-05-26

Documentation

  • Update architecture to v0.3 and migrate Tailwind v4 PostCSS (#20)
  • Product-first README, real screenshots, working quickstart (#43)

Features

  • Add M1 frontend milestone and wire brand assets (#18)
  • Wire M2 backend — models, API, agent, and unit tests (#19)
  • Authenticate agent result reads with the session token (#35)
  • Interrupt DuckDB on timeout and clamp resource ceilings (#36)
  • Enforce backend compatibility and re-advertise on heartbeat (#38)
  • Drop tables via UC from the catalog UI (#41)

Maintenance

  • Fix pre-existing ruff lint violations
  • Add pre-commit hooks and commitlint config
  • Add git-cliff changelog config
  • (deps-dev) Update pytest-asyncio requirement (#3)
  • (deps-dev) Bump @vitejs/plugin-react from 4.7.0 to 6.0.2 in /web (#4)
  • (deps-dev) Update pytest requirement from >=8.0 to >=9.0.3 (#5)
  • (deps-dev) Update ruff requirement from >=0.7 to >=0.15.13 (#6)
  • (deps-dev) Update httpx requirement from >=0.27 to >=0.28.1 (#7)
  • (deps-dev) Update mypy requirement from >=1.13 to >=2.1.0 (#8)
  • (deps-dev) Bump typescript from 5.9.3 to 6.0.3 in /web (#9)
  • (deps-dev) Bump eslint from 9.39.4 to 10.4.0 in /web (#10)
  • (deps) Bump docker/build-push-action from 6 to 7 (#15)
  • (deps) Bump docker/login-action from 3 to 4 (#17)
  • (deps) Bump github/codeql-action from 3 to 4 (#14)
  • (deps) Bump softprops/action-gh-release from 2 to 3 (#13)
  • (deps-dev) Bump tailwindcss from 3.4.19 to 4.3.0 in /web (#11)
  • (deps) Bump react-router-dom from 6.30.3 to 7.15.1 in /web (#12)
  • (deps) Bump actions/checkout from 4 to 6 (#16)
  • (deps) Bump react-hook-form from 7.76.0 to 7.76.1 in /web (#32)
  • (deps) Bump @tanstack/react-query in /web (#31)
  • (deps) Bump actions/upload-artifact from 4 to 7 (#24)
  • (deps-dev) Update pytest-cov requirement from >=6.0 to >=7.1.0 (#22)
  • (deps) Bump @tanstack/react-router from 1.170.4 to 1.170.8 in /web (#30)
  • (deps-dev) Update aiosqlite requirement from >=0.20 to >=0.22.1 (#28)
  • (deps) Bump aquasecurity/trivy-action from 0.31.0 to 0.36.0 (#25)
  • (deps) Bump actions/setup-node from 4 to 6 (#23)
  • Pin api image, schedule backups, add DR banner and runbook (#42)
  • (deps) Bump docker/metadata-action from 5 to 6 (#21)
  • (deps) Bump docker/setup-buildx-action from 3 to 4 (#26)
  • (deps-dev) Update ruff requirement from >=0.15.13 to >=0.15.14 (#27)
  • (deps-dev) Bump vite from 8.0.13 to 8.0.14 in /web (#29)
  • Simplify deploy stack, restyle README, optimize Dockerfiles (#44)