Skip to content

v0.6.0

@classytic-bot classytic-bot tagged this 11 Jun 06:53
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).
Assets 2
Loading