Standardization release, coordinated with mongokit 3.16 + sqlitekit 0.6.
- Capabilities contract: required StandardRepo.capabilities (RepoCapabilities)
for runtime feature detection; ConformanceFeatures is now an alias of the
same type so runtime declaration and conformance gating cannot drift.
- Resilience: shared withRetry()/throwIfAborted() + one RetryPolicy shape
across QueryOptions.retryPolicy and TenantPurgeOptions.retry
(PurgeRetryPolicy renamed, clean break). Purge retries are signal-aware:
runChunkedPurge now threads options.signal into withRetry so an abort
fired during retry backoff stops before the next attempt, not just
between chunks (pre-ship fix, with unit test).
- watch() change feed: optional StandardRepo.watch?() returning
AsyncIterable<ChangeEvent<TDoc>>, gated by capabilities.changeStreams.
- /events domain-event bridge: events: { transport } publishes
<resource>.created/.updated/.deleted through any arc/primitives-compatible
transport; publish failures route to error:events, never fail the op.
Documented caveat: same event names as arc eventStrategy:'auto' — wiring
both layers double-publishes silently (arc's dual-publish dev-warn cannot
see the repo layer); pick one layer per resource.
- Standard Schema validation: schema/updateSchema accept any Zod / Valibot /
ArkType / Effect schema at HOOK_PRIORITY.VALIDATION; failures throw
HttpError 400 with validationErrors. Vendored StandardSchemaV1 types
(one type-identical deviation: readonly Issue[] shorthand for biome).
- recordToFilter() promoted to /filter from per-kit copies.
- STANDARD_REPO_OPTION_KEYS gains 'traceId' as a canonical option key.
Pre-ship fixes: biome formatter canonicalization (events/emit.ts,
repository/purge.ts), import organization (repository/base.ts, index.ts),
useConsistentArrayType in schema/standard-schema.ts, and corrected the
0.5.0 changelog entry to describe the single-method PurgePort.purgeChunk
actually shipped (not the two-method selectChunkIds/applyStrategy draft).