Skip to content

This release includes 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 13d

ReleasePort Layer 1 v0.6.1 adds an opt‑in `--ingest-on-startup` flag that auto‑ingests data at server launch, and updates documentation for embedding_search setup.

Why it matters: If you run long‑running servers and use the embedding_search extra, enable `--ingest-on-startup` to have embeddings refreshed automatically on startup; consult the updated docs for configuration details.

Summary

AI summary

Added opt-in boot-time auto-ingest flag --ingest-on-startup for long-running servers.

Changes in this release

Security Low

Prints drift entries discovered during ingest to stderr but never auto‑applies them, keeping destructive cleanup gated behind `slayer validate-models --force-clean`

Prints drift entries discovered during ingest to stderr but never auto‑applies them, keeping destructive cleanup gated behind `slayer validate-models --force-clean`

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

Confidence: low

Feature Medium

Startup ingest refreshes embeddings when embedding_search extra installed

Startup ingest refreshes embeddings when embedding_search extra installed

Source: llm_adapter@2026-05-21

Confidence: high

Feature Medium

Auto-ingest on startup via CLI flag, env var, or API

Auto-ingest on startup via CLI flag, env var, or API

Source: llm_adapter@2026-05-21

Confidence: low

Feature Medium

Performs idempotent auto-ingestion across all configured datasources before the server begins listening

Performs idempotent auto-ingestion across all configured datasources before the server begins listening

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

Confidence: low

Feature Medium

Updates MCP getting‑started documentation to include `embedding_search` in extras list and document provider‑key contract

Updates MCP getting‑started documentation to include `embedding_search` in extras list and document provider‑key contract

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

Confidence: low

Feature Medium

Ensures server does not start listening until synchronous startup ingestion completes

Ensures server does not start listening until synchronous startup ingestion completes

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

Confidence: low

Feature Low

Adds `--ingest-on-startup` flag to `slayer serve` and `slayer mcp`

Adds `--ingest-on-startup` flag to `slayer serve` and `slayer mcp`

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

Confidence: low

Feature Low

Supports `SLAYER_INGEST_ON_STARTUP` environment variable as alternative to CLI flag

Supports `SLAYER_INGEST_ON_STARTUP` environment variable as alternative to CLI flag

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

Confidence: low

Feature Low

Provides `ingest_on_startup=True` keyword argument for programmatic server creation

Provides `ingest_on_startup=True` keyword argument for programmatic server creation

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

Confidence: low

Feature Low

Continues ingestion on failure per datasource, preventing a single bad connection from blocking others

Continues ingestion on failure per datasource, preventing a single bad connection from blocking others

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

Confidence: low

Feature Low

Directs all ingest‑related progress output to stderr to keep stdio JSON‑RPC protocol‑safe

Directs all ingest‑related progress output to stderr to keep stdio JSON‑RPC protocol‑safe

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

Confidence: low

Performance Low

Hash‑skips entity embedding refresh when content has not changed during startup ingest

Hash‑skips entity embedding refresh when content has not changed during startup ingest

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

Confidence: low

Refactor Medium

MCP documentation updated with embedding_search setup examples

MCP documentation updated with embedding_search setup examples

Source: llm_adapter@2026-05-21

Confidence: low

Refactor Low

Moves `_friendly_db_error` from `slayer/mcp/server.py` to `slayer/engine/ingestion.py`

Moves `_friendly_db_error` from `slayer/mcp/server.py` to `slayer/engine/ingestion.py`

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

Confidence: low

Refactor Low

Relocates `_print_ingest_addition` and `_print_ingest_drift_and_errors` to `slayer/engine/ingestion.py` and adds a `file=` argument

Relocates `_print_ingest_addition` and `_print_ingest_drift_and_errors` to `slayer/engine/ingestion.py` and adds a `file=` argument

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

Confidence: low

Other Low

Adds 46 tests in `tests/test_startup_ingest.py` covering ingestion behavior and integration paths

Adds 46 tests in `tests/test_startup_ingest.py` covering ingestion behavior and integration paths

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

Confidence: low

Full changelog

SLayer 0.6.1 Release Notes

A maintenance release: one PR since 0.6.0 adds an opt-in boot-time auto-ingest path for long-running servers. No schema changes; no breaking changes.

--ingest-on-startup for slayer serve and slayer mcp (DEV-1392)

A new opt-in flag on slayer serve and slayer mcp runs idempotent auto-ingestion across every configured datasource before the server starts listening, so an agent that connects immediately after boot finds the catalog already populated instead of racing the first ingest.

Three equivalent entry points: the --ingest-on-startup CLI flag, the SLAYER_INGEST_ON_STARTUP env var (truthy values 1 / true / yes; flag wins over env), and the ingest_on_startup=True kwarg on create_app / create_mcp_server for programmatic embedders.

Sequential, sync-before-listen ? uvicorn / mcp.run don't start until ingestion finishes ? and continue-on-failure per datasource so one broken connection string can't block the rest. Only storage.list_datasources() raising prevents server startup. Drift entries discovered during ingest are printed to stderr but never auto-applied; destructive cleanup stays gated behind slayer validate-models --force-clean.

All progress output goes to stderr so slayer mcp stdio JSON-RPC stays protocol-safe.

When the embedding-search third channel is active (embedding_search extra installed + provider key in the environment), startup ingest also refreshes per-datasource embeddings through the existing _refresh_datasource_embeddings hook, which hash-skips entities whose content hasn't changed.

The recommended MCP setup snippets in docs/getting-started/mcp.md now include embedding_search in the uvx --from 'motley-slayer[...]' extras list and document the provider-key contract (OPENAI_API_KEY by default; override the model with SLAYER_EMBEDDING_MODEL=voyage/... plus the matching provider key).

Implementation refactors: _friendly_db_error moved from slayer/mcp/server.py to slayer/engine/ingestion.py; _print_ingest_addition / _print_ingest_drift_and_errors moved from slayer/cli.py to slayer/engine/ingestion.py and gained a file= kwarg (resolved at call time, not import time, so contextlib.redirect_stdout callers are honoured).

46 tests in tests/test_startup_ingest.py cover orchestrator behaviour, CLI flag plumbing, env-var precedence, demo-then-ingest ordering, programmatic kwarg paths, and propagation of list_datasources errors.

Schema versions

SlayerModel remains version 6, SlayerQuery remains version 3, DatasourceConfig remains version 1. No storage migrations were needed for this release.

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]