@reventlessdev/reventless-spec 3.0.0-alpha.102 → 3.0.0-alpha.103

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,13 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # 3.0.0-alpha.103 (2026-08-09)
7
+
8
+ ### Bug Fixes
9
+
10
+ * **aws:** heal a persisted structure that predates a required list field ([dc4c42c](https://github.com/ReventlessDev/reventless-core/commit/dc4c42cab5a7db538d90edbce6d13b949830aad6))
11
+
12
+
6
13
  # 3.0.0-alpha.102 (2026-08-08)
7
14
 
8
15
  ### Features
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reventlessdev/reventless-spec",
3
- "version": "3.0.0-alpha.102",
3
+ "version": "3.0.0-alpha.103",
4
4
  "description": "Specifications for Reventless",
5
5
  "license": "Apache-2.0",
6
6
  "bin": {
@@ -314,16 +314,23 @@ type writableDef = {
314
314
  consumedEventTypes: array<string>,
315
315
  linkedViews: array<string>,
316
316
  consistencyRead: @s.matches(stringOptionSchema) option<string>,
317
- /** Emitted-event field schemas (Phase 6.3). Required like the other write-side
318
- arrays; `[]` when there are none. The structure is re-derived on every build/
319
- deploy, so no persisted-data back-compat shim is needed. */
317
+ /** Emitted-event field schemas. Required like the other write-side arrays; `[]`
318
+ when there are none. */
320
319
  events: array<eventDef>,
321
320
  /** Declared-error field schemas — what this component can refuse a command with.
322
- Required, on the same reasoning as `events`: a structure is re-derived on every
323
- build and re-registered on every deploy, and the persisted copy is never decoded
321
+ Required, on the same reasoning as `events`: the persisted copy is never decoded
324
322
  through this schema (the event log carries it as an offload reference, and the
325
323
  serving path reads it as raw JSON), so `[]` honestly means "declares no errors"
326
- rather than "an older deploy could not say". */
324
+ rather than "an older deploy could not say".
325
+
326
+ Being required does NOT make it safe to add such a field without a read-path
327
+ shim. A structure is re-derived on every build, but it is only RE-REGISTERED
328
+ when a plugin re-runs the connect handshake — which a plugin whose version never
329
+ changes may not do for a long time. Until then the serving path reads a
330
+ persisted structure that has no key for the new field, and against a `[T!]!` SDL
331
+ field that null propagates to the root and answers the whole query with `data:
332
+ null`. Both admin resolvers therefore heal absent required lists to `[]` on
333
+ read; a new one has to be added to that list too. */
327
334
  errors: array<errorDef>,
328
335
  /** Chapter grouping band — see `queryableDef.chapter`. */
329
336
  chapter: @s.matches(stringOptionSchema) option<string>,