Standards Docs
Changelog

Changelog — 2026-06-14

Daily docs refresh.

Breaking

  • Record-reference writes now require the atomic RPCs. Single-record create and delete each run inside one Postgres transaction, and the old non-atomic per-attribute edge-sync fallback is gone. If the sync_record_reference_edges RPC is missing, a write throws a ConfigurationError instead of silently degrading — apply the 20260613120000_atomic_write_primitives migration before writing records with relations. See the Supabase setup guide.
  • Bulk paths skip lifecycle hooks and need bootstrap tuning. @BeforeCreate / @AfterCreate and their delete counterparts do not run on bulk-create / bulk-delete. Bulk routes are also capped by a new bulk throttle category (10 requests/minute) and exceed NestFactory's default 1 MB body parser — bootstrap with bodyParser: false and a larger explicit limit. See the NestJS backend guide.

Features

  • Agent skills are now records. When agents are enabled, the runtime registers a sealed skill object so a tenant can author its own skills at runtime. Records merge with the built-in skills (alwaysOn skills are injected into the system prompt; the rest stay discoverable via find_skill), and a record sharing a builtin's name overrides it. See Agents.
  • Bulk record operations. A set-based bulk-create endpoint inserts records and their edges in one round trip with per-item validation, returning { created, errors } rather than failing the whole batch — a partial failure is not an HTTP error. Bulk delete rides the same atomic cascade primitive.
  • Durable event delivery. Record and form events now drain from a durable outbox with at-least-once delivery, a dead-letter queue, and trigger idempotency — agent triggers, attribute autofill, and search indexing consume from it instead of inline emission. This applies to single-record writes too, not just bulk.
  • Sharper agent model specs. Model capabilities and pricing now resolve from a bundled models.dev snapshot, and runs emit a live token-usage event during streaming.

Fixes

  • GET /actors no longer requires people:read. The actor listing endpoint dropped the permission requirement that was blocking legitimate callers.

On this page