Changelog
Changelog — 2026-06-17
Daily docs refresh.
Features
- Semantic search via Meilisearch embeddings. Objects can declare an optional
.embeddingExpression()that builds the text vectorized for search, and the Meilisearch adapter accepts anembedderconfig (OpenAI today). PasssemanticRatioto any search hook to blend keyword and vector relevance; objects without an embedding expression stay keyword-only at no embedding cost. See Search, Schema, and the Meilisearch guide. - System bundles engine (SP-1).
defineBundlegroups system objects into versioned packs that can be assigned per tenant and applied as a full vertical slice (objects + relations + views), with an always-on implicitcorebundle. Exported from@stndrds/runtime. - Default roles are
system: true. Roles created byinitializeDefaultRoles()are now system roles out of the box, so consumers no longer flip the flag after seeding and the member auto-assign gate oninviteUserworks immediately. A new opt-inbootstrapflag onassignRole/assignActorRolelets you provision the firstownerbefore any owner exists. See RBAC.
Fixes
- Agent sandbox uploads attach to records. Wired
attachDocumentso files an agent uploads from its sandbox land on the intended record. - Per-session access on agent live streams. Agent-session realtime streams now enforce access per session.
- Filtered list totals are scoped correctly. The Supabase adapter scopes the total count to the active filter and survives empty pages instead of miscounting.
- AI usage pricing reads the shared model catalog. Usage is now priced from the same model catalog as the rest of the stack.