Standards Docs
Changelog

Changelog — 2026-05-26

Daily docs refresh.

Breaking

  • Legacy async tables dropped. The Supabase migration removes document_processing_jobs, agent_run_contexts, agent_trigger_fires, agent_context_entries, agent_questions, view_transforms, and migration_errors. In-flight document_processing_jobs rows are migrated into the new background_jobs ledger automatically; anything reading the dropped tables directly must move to background_jobs. The view-transforms and migration-errors Supabase repository stubs are also gone from @stndrds/adapter-supabase.

Features

  • .sealed() and .tolerate() on ObjectBuilder. Mark a system object .sealed() to forbid user-created attributes, and use .tolerate(["legacy_ref", ...]) to allow-list known custom names that should not trigger a drift error. See the updated Extensibility and Schema pages.
  • standards schema diff and standards schema pull CLI commands. diff reports runtime drift between DB and code schema (exit code reflects unexpected drift, JSON output via --format json); pull fetches the same drift and writes an AI-ready prompt to .standards/pulls/<date>-<hash>.md for an LLM to resolve. Both accept --object <name> and --tenant <id> flags.
  • GET /schema/drift endpoint. @stndrds/adapter-nestjs exposes SchemaDriftController (registered in SchemaCoreModule) returning SchemaDriftResult. Guarded by workspace:read; supports the same ?object=<name> filter as the CLI.
  • Background-jobs foundation. New BackgroundJobService, BackgroundJobProcessor, BackgroundJobRegistry, and BackgroundJobRecoveryService in @stndrds/runtime, with a background_jobs Postgres ledger in @stndrds/adapter-supabase and a BullMQBackgroundJobTransport in @stndrds/adapter-bullmq. Jobs are persisted before dispatch, claims are atomic, and stalled workers are recovered. Agent runs and document OCR are now routed through this ledger — see the updated Redis & BullMQ guide.
  • SchemaAsyncModule in @stndrds/adapter-nestjs. Single NestJS module that wires the background-job processor, registry, and recovery worker. Exports BACKGROUND_JOB_SERVICE, BACKGROUND_JOB_PROCESSOR, and BACKGROUND_JOB_REGISTRY injection tokens.
  • Durable event outbox wired through BullMQ. events.outboxSignal on SchemaModule.forRoot now drives a real outbox processor end-to-end, so async event handlers survive process restarts when wired.

Fixes

  • standards schema diff shows both unexpected and tolerated drift. When a sealed object had both unexpected and tolerated custom attributes, the diff output silently hid the tolerated ones. Both groups are now reported (#652).
  • CLI resolveStandardsDir no longer loops at the filesystem root on non-POSIX systems. Pulling drift from a working directory without an ancestor .standards/ now exits cleanly instead of spinning.
  • Agent and document-OCR background jobs survive worker restarts. Recovery is bounded and idempotent: claims expire, stale rows are re-published, and exhausted jobs no longer loop forever.

Other

  • Refactor: BaseService.invalidateRecordCaches drops its unused _objectId parameter; the dead view-transforms and migration-errors repository stubs in @stndrds/adapter-supabase are deleted.

On this page