Skip to content

This release includes 2 breaking changes for platform teams planning a safe upgrade.

✓ 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 1mo

SLayer v0.7.1 adds SQL Server support and an openCypher filter while breaking the `search()` response format.

Why it matters: The `search()` API now returns a single flat results list, removing per‑bucket caps (severity 70).

Summary

AI summary

SQL Server added as first-class datasource and search API flattened with cypher_filter support.

Changes in this release

Breaking High

Changes `search()` to return a single flat `results` list, removing per‑bucket caps.

Changes `search()` to return a single flat `results` list, removing per‑bucket caps.

Source: llm_adapter@2026-06-08

Confidence: low

Breaking Medium

Changes `search()` response to a single flat `results` list capped by `max_results`, removing separate `memories`, `example_queries`, and `entities` buckets.

Changes `search()` response to a single flat `results` list capped by `max_results`, removing separate `memories`, `example_queries`, and `entities` buckets.

Source: granite4.1:30b@2026-06-08-audit

Confidence: low

Feature Medium

Adds SQL Server (T‑SQL) as a first‑class datasource with auto‑generated date math and type mappings.

Adds SQL Server (T‑SQL) as a first‑class datasource with auto‑generated date math and type mappings.

Source: llm_adapter@2026-06-08

Confidence: high

Feature Medium

Adds `cypher_filter` parameter to `search()` for openCypher graph narrowing.

Adds `cypher_filter` parameter to `search()` for openCypher graph narrowing.

Source: llm_adapter@2026-06-08

Confidence: high

Feature Low

Increases column hit sample values in `search()` results from ~20 to top‑50 and adds distinct count line.

Increases column hit sample values in `search()` results from ~20 to top‑50 and adds distinct count line.

Source: llm_adapter@2026-06-08

Confidence: high

Dependency Low

Renames pip extra from `embedding_search` to `advanced_search`, now includes graph backend.

Renames pip extra from `embedding_search` to `advanced_search`, now includes graph backend.

Source: llm_adapter@2026-06-08

Confidence: high

Bugfix Medium

Corrects parenthesization of filters referencing multi‑term `Column.sql` expressions.

Corrects parenthesization of filters referencing multi‑term `Column.sql` expressions.

Source: llm_adapter@2026-06-08

Confidence: high

Bugfix Medium

Fixes PostgreSQL error when ordering by a `ModelMeasure` name in query.

Fixes PostgreSQL error when ordering by a `ModelMeasure` name in query.

Source: llm_adapter@2026-06-08

Confidence: low

Full changelog
  • SQL Server (T-SQL) is now a first-class datasource: configure with type: mssql (or sqlserver / tsql), and SLayer auto-generates T-SQL flavoured date math, stat aggregations, and full type mappings. A Docker Compose example with SQL Server 2022 ships under examples/sqlserver/.
  • search() accepts a new cypher_filter parameter - an openCypher MATCH ... RETURN n.id AS id query that narrows results to a subset of your semantic graph (e.g. "only columns reachable from the orders model") before any ranking happens.
  • search() now returns a single flat results list capped by max_results, instead of three separate memories/example_queries/entities buckets with per-bucket caps. If you were reading the bucket fields or passing max_memories / max_example_queries / max_entities, update your call sites - you can use the Cypher filter to narrow down the search to a particular set of entities.
  • The pip extra for embedding-based search has been renamed from embedding_search to advanced_search (it now also pulls in the graph backend for cypher_filter). Install with pip install motley-slayer[advanced_search].
  • Column hits from search() now surface the full top-50 sample values (was previously truncated to ~20) plus a Distinct count: N line when the underlying column has more distinct values than the snapshot captured.
  • Fix: ordering a query by a ModelMeasure referenced by name (e.g. order=[{"column": "aov"}]) no longer fails on PostgreSQL with an undefined-column error - the ORDER BY alias now matches the SELECT alias.
  • Fix: filters that reference a multi-term Column.sql (arithmetic composites, AND/OR expressions, NOT, BETWEEN, IN) now emit correctly parenthesised SQL. Previously, a filter like <col> IS NULL against a column defined as archived AND deleted could parse as archived AND (deleted IS NULL) instead of the intended (archived AND deleted) IS NULL.

Breaking Changes

  • `search()` now returns a single flat `results` list; previous separate `memories`, `example_queries`, and `entities` buckets are removed. Update call sites accordingly.
  • The pip extra for embedding-based search renamed from `embedding_search` to `advanced_search`. Install with `pip install motley-slayer[advanced_search]`.

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]