Skip to content

This release adds 2 notable features for engineering teams evaluating rollout.

✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

semantic-layer

ReleasePort's take

Light signal
editorial:auto 13d

v0.6.5 adds sibling column references and detects circular dependencies via ColumnCycleError exception, preventing runtime failures from reference cycles.

Why it matters: If your semantic layer uses sibling column references, test v0.6.5 in dev. Circular dependency detection now catches issues at save time rather than runtime.

Summary

AI summary

Circular column reference detection prevents runtime failures and adds ColumnCycleError.

Changes in this release

Feature Medium

Columns can reference sibling columns by short name in SQL expressions.

Columns can reference sibling columns by short name in SQL expressions.

Source: llm_adapter@2026-05-21

Confidence: high

Feature Medium

Model save detects circular column dependencies and reports exact cycle.

Model save detects circular column dependencies and reports exact cycle.

Source: llm_adapter@2026-05-21

Confidence: high

Feature Medium

New ColumnCycleError exception for circular column reference detection.

New ColumnCycleError exception for circular column reference detection.

Source: llm_adapter@2026-05-21

Confidence: high

Feature Low

New ColumnCycleError exception added, inherits SlayerError and ValueError.

New ColumnCycleError exception added, inherits SlayerError and ValueError.

Source: granite4.1:30b@2026-05-22-audit

Confidence: low

Refactor Low

StorageBackend.save_model now a template method running cycle validator before saving.

StorageBackend.save_model now a template method running cycle validator before saving.

Source: granite4.1:30b@2026-05-22-audit

Confidence: high

Full changelog

SLayer 0.6.5

A small quality-of-life release for people writing model SQL.

What's new

You can now use a sibling column's short name inside another column's SQL on the same model. Previously you had to write the fully qualified <model>.<col> form; both forms now work the same way. So if bucket is a derived column on orders, you can write either orders.bucket or just bucket in another column's SQL and it will inline correctly. Bare names inside sub-queries, UNION branches, CTEs, and VALUES are left alone, since those refer to the inner rowset rather than your model.

If you accidentally write circular references between columns (column A depends on B, B depends on A), SLayer now catches this when you save the model instead of letting it fail later at query time. The error tells you the exact cycle path. Existing data with cycles still loads fine, so you can clean it up at your own pace.

For maintainers
  • New exception slayer.core.errors.ColumnCycleError (multi-inherits SlayerError and ValueError so except ValueError call sites keep working).
  • StorageBackend.save_model is now a template method that runs the cycle validator before delegating to a backend-specific _save_model_impl.
  • Migration write-back skips cycle validation, so legacy cyclic models remain loadable.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track SLayer, a semantic layer maintained by your agent

Get notified when new releases ship.

Sign up free

About SLayer, a semantic layer maintained by your agent

All releases →

Related context

Earlier breaking changes

  • v0.6.3 Datasource names now reject dots, slashes, nulls, empty/whitespace; existing names containing '.' will fail validation on upgrade.
  • v0.6.0 recall_memories surface entirely removed with no deprecation shim.
  • v0.5.1 Two-mode reference semantics enforced: SQL mode accepts arbitrary SQL; DSL mode strictly resolves identifiers.
  • v0.5.1 RecallHit.match_count renamed to RecallHit.score across MCP, REST, CLI, and SlayerClient.

Beta — feedback welcome: [email protected]