v0.6.3 #120
benoitcayladbx
announced in
Announcements
v0.6.3
#120
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
OntoBricks — Release Notes V0.6.2
Release date: 2026-07-14
Type: Patch release (v0.6.1 → v0.6.2)
Test status: 3007 passed, 275 skipped, 5 deselected (
uv run pytest -q -m "not scenario").Summary
v0.6.2 is a focused patch on top of v0.6.1. It hardens Lakebase Knowledge Graph
sync for long literal values and Lakeflow-managed tables, fixes Claude serving
endpoint responses that broke Ontology Wizard and Auto-Map, speeds up Graph
Explorer / Graph Chat alias lookups on large graphs, and polishes the edit-lock
idle UX (resume control moves into the L2 subnav). Developer ergonomics improve
with hermetic unit tests (
.envLakebase vars no longer leak into pytest) andPAT-based deploy when the CLI profile is intentionally left empty.
No breaking API changes. One operational note for existing Lakebase graphs: run a
full Knowledge Graph rebuild after upgrading so companion tables migrate to the
object_hashlayout (automatic on build — see Upgrade Notes).Highlights
object_hashKG build fixes — interactive managed_synced builds openthe graph store before VIEW creation, refresh the Lakeflow source VIEW with
object_hash, and auto-migrate legacy__appcompanion tables that still keyedon full
objecttext (fixescolumn "object_hash" does not existon rebuild).composite keys and Lakeflow sync use a generated
object_hashso literal valueslonger than the Postgres btree index limit no longer abort triple-store sync.
ensure_synced_union_viewre-appliesobject_hashlookup indexes idempotently whenLakeflow recreates
_synctables without secondary indexes.flatten list-style
message.contentblocks fromdatabricks-claude-*endpoints soOntology Wizard → Generate and Mapping → Auto-Map no longer crash on
.strip().group hundreds of
%/<local-id>LIKE predicates intoRIGHT(subject, k) = ANY(...)clauses for fast Graph Chat /
describe_entityalias resolution.Resume editing button sits left of Save in the L2 subnav; the full expiry
message is a hover tooltip (replaces the top-of-page banner).
LAKEBASE_*/PG*env vars;make deployhonours an explicitly emptyDEFAULT_DATABRICKS_PROFILEfor PAT auth.Bug Fixes
Lakebase sync for long literal objects (#108)
Knowledge Graph sync to Lakebase Postgres aborted when any mapped literal
objectexceeded the btree index limit (~2704 bytes). The composite primary key and secondary
indexes on
objectcould not index long text columns.src/back/core/graphdb/lakebase/_companion_ddl.py—object_hashgenerated column(
digest(object, 'sha256')); uniqueness on(subject, predicate, object_hash);pgcrypto; Lakeflow view wrapper andLAKEFLOW_SYNC_PRIMARY_KEY.src/back/core/graphdb/lakebase/LakebaseFlatStore.py— actionable errors on btreelimit failures; warn on legacy tables missing
object_hash.src/back/objects/digitaltwin/_build_pipeline.py— wrap managed-synced warehouse VIEWwith
object_hash; hash PK for Lakeflow.src/back/objects/registry/scheduler.py— Lakeflowprimary_key_columnsincludeobject_hash.docs/lakebase-graphdb.md— document long-literal support and rebuild requirement.Interactive managed_synced KG build (
object_hash)KG builds on existing domains could fail with
Could not register Lakebase synced table: column "object_hash" does not existeven when Lakeflow registration succeeded.Two root causes:
opening the graph store, so sync-mode resolution could skip the Lakeflow wrapper
that adds
object_hashto the source VIEW.__apptables were left in place byCREATE TABLE IF NOT EXISTS; index DDL then referencedobject_hashon a tablethat still had primary key
(subject, predicate, object).src/back/objects/digitaltwin/_build_pipeline.py— open graph store before VIEWcreation; treat
store.is_syncedas source of truth for wrapping; refresh sourceVIEW with
object_hashbeforeSyncedTableManager.ensure; split companion vssynced-table error messages.
src/back/core/graphdb/lakebase/_companion_ddl.py—upgrade_legacy_triple_table_to_object_hash()migrates existing companions(add generated column, drop legacy PK, re-key on
object_hash) before indexes.tests/units/dtwin/test_build_pipeline_streaming.py,tests/units/core/test_lakebase_flat_store.py— regression coverage.Scheduled managed_synced VIEW builds (#108)
Scheduled registry builds created the warehouse VIEW without
object_hashwhile Lakeflowkeyed the synced table on that column.
src/back/objects/registry/scheduler.py— resolve graph store before VIEW creation;wrap SQL for
managed_syncedvia_view_sql_for_graph_store().Lakeflow
_synctable indexes (#112)When Lakeflow recreates a
_synctable, secondary indexes onobject_hashwere lost,degrading BFS / graph traversal performance.
src/back/core/graphdb/lakebase/_companion_ddl.py/ensure_synced_union_view—idempotently re-apply graph lookup indexes after managed-synced rebuilds.
Claude serving endpoint content blocks (#107)
Databricks Claude serving endpoints return
choices[0].message.contentas a list ofcontent blocks instead of a plain string.
src/agents/engine_base.py—extract_message_contentflattens list blocks to asingle string (OpenAI/Gemini string responses unchanged).
(Andreas Niehaus).
Enhancements
Lakebase alias expansion for large local-id sets (PR #115)
describe_entity/ Graph Chat alias expansion previously generated SQL with 1000+OR LIKE '%/<local-id>'predicates, causing long-running statements and timeouts onLakebase.
src/back/core/graphdb/lakebase/LakebaseFlatStore.py—find_subjects_by_patterns()groups patterns by suffix length intoRIGHT(subject, k) = ANY(ARRAY[...])clauses (single round-trip).Edit-lock — resume control in L2 subnav
When an editing session expired through inactivity, a yellow top banner consumed
vertical space above the navbar.
src/front/static/global/js/edit-lock.js—renderResumeEditingButton()injects ayellow Resume editing button left of Save; expiry text is a Bootstrap tooltip.
src/front/static/global/css/main.css—.ob-subnav-resume-btnstyles.The "another user is editing" viewer banner is unchanged.
Deploy & Operations
PAT-based deploy (
deploy.config.sh)DEFAULT_DATABRICKS_PROFILE="${DEFAULT_DATABRICKS_PROFILE:-DEFAULT}"treated anexplicitly empty profile the same as unset, forcing the expired
DEFAULTCLI profileeven when
DATABRICKS_TOKENwas exported.scripts/deploy.config.sh— use${DEFAULT_DATABRICKS_PROFILE-DEFAULT}soDEFAULT_DATABRICKS_PROFILE= make deployuses PAT auth when the token is in theenvironment.
Hermetic unit tests (
tests/conftest.py)A developer's
.envcould exportLAKEBASE_*/PG*coordinates while pytest'sautouse fixture forced a fake
DATABRICKS_HOST, causing Registry triplet probes toblock the suite (~1% hang) and two graph-engine config tests to fail.
tests/conftest.py— clearLAKEBASE_PROJECT,LAKEBASE_BRANCH,LAKEBASE_DATABASE,PGHOST, andPGDATABASEinsetup_test_env.Upgrade Notes
Upgrading from v0.6.1
Deploy the new app bundle as usual (
make deploy). No new Lakebase registry schematables are required for this release.
Knowledge Graph graphs on Lakebase: if your companion triple-store tables were
created before the
object_hashlayout, run a full Knowledge Graph rebuild on eachaffected domain version. v0.6.2 migrates legacy
__appcompanions automatically duringthe build (adds
object_hash, re-keys the PK, recreates indexes). No manual Postgres DDLis required. See
docs/lakebase-graphdb.md§6.4.If you deploy with a Personal Access Token instead of a CLI OAuth profile, you can run:
export DATABRICKS_HOST=… DATABRICKS_TOKEN=… DEFAULT_DATABRICKS_PROFILE= make deployOptionally set
LAKEBASE_DATABASE_RESOURCE_SEGMENT=db-…when the deploy preflightcannot auto-resolve the Lakebase database resource id.
Upgrading from v0.5.x or v0.6.0
Upgrade through v0.6.1 first (see
releases/ReleaseNotes_V0.6.1.md), then apply v0.6.2.Changes Summary
_companion_ddl.py,LakebaseFlatStore.py,_build_pipeline.py,scheduler.pyobject_hashKG build (VIEW + companion migration)_build_pipeline.py,_companion_ddl.py_syncindexes_companion_ddl.py,ensure_synced_union_viewagents/engine_base.pyLakebaseFlatStore.pyedit-lock.js,main.cssdeploy.config.shtests/conftest.pypyproject.toml0.6.2What is NOT changed
/api/v1/endpoints are backward-compatible.audit trail, Switch modal fix, and all other capabilities remain intact.
This discussion was created from the release v0.6.3.
All reactions