v0.2.6
DuckLake hardening + observability surface.
Backend
- DuckLake end-to-end fix: DDL rewriting, cursor catalog tagging, UDF GC pinning, single-attach safety across every route, parallel-write serialization on local-file catalogs.
- ATTACH passes
AUTOMATIC_MIGRATION TRUEso projects survive DuckLake extension upgrades. - Narrower DDL strip — function-call DEFAULTs and boolean DEFAULTs are now kept (DuckLake supports them); only PK/UNIQUE/CHECK/
nextval(...)are stripped. _havn.model_statewrites are idempotent (INSERT OR REPLACE on DuckDB, transactional DELETE+INSERT on DuckLake).- Job orchestration logs transform steps to
_havn.run_logwith the pipelinerun_id, so the History panel populates from job runs.
Observability surface
- ResourceManager +
@governeddecorator +/api/resourcesendpoints. /v1/sqlDatabricks-style API (sync + async + NDJSON / Arrow IPC).- Embedded Arrow Flight SQL server.
/v1/export/duckdbsingle-file export.- Webhook staging + flush worker, Postgres CDC, API poll consumer.
- DuckLake
MaintenanceScheduler. /metricsPrometheus endpoint,/healthprobe, JSON log format.@table_macro, macro hot-reload, Monaco autocomplete + hover.- TPC-H DuckDB-vs-DuckLake benchmark harness in
benchmarks/.
UI
information_schemais browseable in the table tree on both backends.- DuckLake internal catalog tables are filtered out of the table browser.
- System schemas (
information_schema,_havn,main,__*) are dimmed and collapsed by default. - VARCHAR columns with numeric content (IDs, phone numbers, ZIP codes) no longer get thousands-separator formatting; the result grid respects the database column type.
- Result-grid header / body alignment fixed for virtualized rendering (>200 rows) when column names are wider than data.
- Resources tab hidden until the panel is rebuilt.