@reventlessdev/reventless-spec 3.0.0-alpha.100

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.
Files changed (139) hide show
  1. package/CHANGELOG.md +931 -0
  2. package/LICENSE +202 -0
  3. package/README.md +109 -0
  4. package/package.json +49 -0
  5. package/rescript.json +32 -0
  6. package/run-generator.mjs +2 -0
  7. package/run-platform-generator.mjs +2 -0
  8. package/scripts/generate-currency.mjs +215 -0
  9. package/scripts/iso-4217-list-one.xml +1956 -0
  10. package/src/AnsiStyle.res +40 -0
  11. package/src/AnsiStyle.res.mjs +54 -0
  12. package/src/LogPrefix.res +192 -0
  13. package/src/LogPrefix.res.mjs +159 -0
  14. package/src/PackageVersion.res +67 -0
  15. package/src/PackageVersion.res.mjs +81 -0
  16. package/src/components/Aggregate.res +64 -0
  17. package/src/components/Aggregate.res.mjs +2 -0
  18. package/src/components/AutomationSlice.res +279 -0
  19. package/src/components/AutomationSlice.res.mjs +30 -0
  20. package/src/components/CapabilityManifest.res +74 -0
  21. package/src/components/CapabilityManifest.res.mjs +61 -0
  22. package/src/components/ComponentKind.res +99 -0
  23. package/src/components/ComponentKind.res.mjs +125 -0
  24. package/src/components/Counter.res +24 -0
  25. package/src/components/Counter.res.mjs +2 -0
  26. package/src/components/DcbDecode.res +118 -0
  27. package/src/components/DcbDecode.res.mjs +100 -0
  28. package/src/components/DcbScopeInference.res +244 -0
  29. package/src/components/DcbScopeInference.res.mjs +177 -0
  30. package/src/components/DcbTag.res +1335 -0
  31. package/src/components/DcbTag.res.mjs +898 -0
  32. package/src/components/DcbValidation.res +427 -0
  33. package/src/components/DcbValidation.res.mjs +423 -0
  34. package/src/components/DisplayName.res +40 -0
  35. package/src/components/DisplayName.res.mjs +26 -0
  36. package/src/components/ExtensionPoint.res +27 -0
  37. package/src/components/ExtensionPoint.res.mjs +2 -0
  38. package/src/components/InboundTranslationSlice.res +85 -0
  39. package/src/components/InboundTranslationSlice.res.mjs +2 -0
  40. package/src/components/OutboundTranslationSlice.res +153 -0
  41. package/src/components/OutboundTranslationSlice.res.mjs +2 -0
  42. package/src/components/Plugin.res +538 -0
  43. package/src/components/Plugin.res.mjs +264 -0
  44. package/src/components/PluginName.res +39 -0
  45. package/src/components/PluginName.res.mjs +45 -0
  46. package/src/components/ReadModel.res +199 -0
  47. package/src/components/ReadModel.res.mjs +18 -0
  48. package/src/components/Reference.res +55 -0
  49. package/src/components/Reference.res.mjs +50 -0
  50. package/src/components/Snapshot.res +26 -0
  51. package/src/components/Snapshot.res.mjs +2 -0
  52. package/src/components/StateAnnotations.res +97 -0
  53. package/src/components/StateAnnotations.res.mjs +15 -0
  54. package/src/components/StateChangeSlice.res +131 -0
  55. package/src/components/StateChangeSlice.res.mjs +2 -0
  56. package/src/components/StateViewSlice.res +123 -0
  57. package/src/components/StateViewSlice.res.mjs +2 -0
  58. package/src/components/Task.res +62 -0
  59. package/src/components/Task.res.mjs +2 -0
  60. package/src/generator/Codegen.res +842 -0
  61. package/src/generator/Codegen.res.mjs +565 -0
  62. package/src/generator/Config.res +106 -0
  63. package/src/generator/Config.res.mjs +69 -0
  64. package/src/generator/Discovery.res +230 -0
  65. package/src/generator/Discovery.res.mjs +198 -0
  66. package/src/generator/Generator_Node.res +14 -0
  67. package/src/generator/Generator_Node.res.mjs +18 -0
  68. package/src/generator/Pairing.res +460 -0
  69. package/src/generator/Pairing.res.mjs +415 -0
  70. package/src/generator/PlatformCodegen.res +207 -0
  71. package/src/generator/PlatformCodegen.res.mjs +154 -0
  72. package/src/generator/PlatformGenerator.res +126 -0
  73. package/src/generator/PlatformGenerator.res.mjs +114 -0
  74. package/src/generator/PlatformManifests.res +203 -0
  75. package/src/generator/PlatformManifests.res.mjs +212 -0
  76. package/src/generator/PluginGenerator.res +57 -0
  77. package/src/generator/PluginGenerator.res.mjs +73 -0
  78. package/src/semantic/Bytes.res +54 -0
  79. package/src/semantic/Bytes.res.mjs +38 -0
  80. package/src/semantic/Capabilities.res +43 -0
  81. package/src/semantic/Capabilities.res.mjs +17 -0
  82. package/src/semantic/Color.res +51 -0
  83. package/src/semantic/Color.res.mjs +29 -0
  84. package/src/semantic/Currency.res +598 -0
  85. package/src/semantic/Currency.res.mjs +743 -0
  86. package/src/semantic/DateRange.res +148 -0
  87. package/src/semantic/DateRange.res.mjs +74 -0
  88. package/src/semantic/Duration.res +53 -0
  89. package/src/semantic/Duration.res.mjs +26 -0
  90. package/src/semantic/Email.res +51 -0
  91. package/src/semantic/Email.res.mjs +31 -0
  92. package/src/semantic/GeoPoint.res +226 -0
  93. package/src/semantic/GeoPoint.res.mjs +190 -0
  94. package/src/semantic/Geocoding.res +127 -0
  95. package/src/semantic/Geocoding.res.mjs +36 -0
  96. package/src/semantic/Money.res +196 -0
  97. package/src/semantic/Money.res.mjs +138 -0
  98. package/src/semantic/Offload.res +294 -0
  99. package/src/semantic/Offload.res.mjs +191 -0
  100. package/src/semantic/Percent.res +53 -0
  101. package/src/semantic/Percent.res.mjs +33 -0
  102. package/src/semantic/Phone.res +55 -0
  103. package/src/semantic/Phone.res.mjs +29 -0
  104. package/src/semantic/Semantic.res +162 -0
  105. package/src/semantic/Semantic.res.mjs +95 -0
  106. package/src/semantic/StorageRef.res +164 -0
  107. package/src/semantic/StorageRef.res.mjs +111 -0
  108. package/src/semantic/Url.res +66 -0
  109. package/src/semantic/Url.res.mjs +48 -0
  110. package/src/types/Authorization.res +23 -0
  111. package/src/types/Authorization.res.mjs +33 -0
  112. package/src/types/Behavior.res +86 -0
  113. package/src/types/Behavior.res.mjs +2 -0
  114. package/src/types/DateTime.res +29 -0
  115. package/src/types/DateTime.res.mjs +16 -0
  116. package/src/types/EventMapping.res +100 -0
  117. package/src/types/EventMapping.res.mjs +15 -0
  118. package/src/types/Handler.res +30 -0
  119. package/src/types/Handler.res.mjs +2 -0
  120. package/src/types/Id.res +75 -0
  121. package/src/types/Id.res.mjs +37 -0
  122. package/src/types/Identity.res +46 -0
  123. package/src/types/Identity.res.mjs +51 -0
  124. package/src/types/Message.res +326 -0
  125. package/src/types/Message.res.mjs +186 -0
  126. package/src/types/Projection.res +220 -0
  127. package/src/types/Projection.res.mjs +44 -0
  128. package/src/types/QueryEngine.res +123 -0
  129. package/src/types/QueryEngine.res.mjs +12 -0
  130. package/src/types/ReadConsistency.res +38 -0
  131. package/src/types/ReadConsistency.res.mjs +29 -0
  132. package/src/types/Schedule.res +65 -0
  133. package/src/types/Schedule.res.mjs +68 -0
  134. package/src/types/SideEffect.res +45 -0
  135. package/src/types/SideEffect.res.mjs +2 -0
  136. package/src/types/StoredEvent.res +46 -0
  137. package/src/types/StoredEvent.res.mjs +32 -0
  138. package/src/types/Visibility.res +24 -0
  139. package/src/types/Visibility.res.mjs +25 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,931 @@
1
+ # Change Log
2
+
3
+ All notable changes to this project will be documented in this file.
4
+ See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
+
6
+ # 3.0.0-alpha.100 (2026-08-04)
7
+
8
+ ### Features
9
+
10
+ * **outbound:** hand translate its geocoder instead of making it fetch one ([fb18312](https://github.com/ReventlessDev/reventless-core/commit/fb1831216b37c9562868c46e1a09054e69418c67))
11
+
12
+
13
+ # 3.0.0-alpha.99 (2026-08-03)
14
+
15
+ ### Bug Fixes
16
+
17
+ * **geocoding:** calibrate the confidence rule against a real index ([cd72b27](https://github.com/ReventlessDev/reventless-core/commit/cd72b2741460c871db2915a8603f7837b8191187))
18
+
19
+
20
+ # 3.0.0-alpha.98 (2026-08-03)
21
+
22
+ ### Features
23
+
24
+ * **aws:** let a deployment hand its plugins a geocoder ([143bf41](https://github.com/ReventlessDev/reventless-core/commit/143bf4137765362ce07dd42db0f4a57057da9f13))
25
+ * **outbound:** let an outbound slice read an aggregate, and geocode addresses with it ([867e63e](https://github.com/ReventlessDev/reventless-core/commit/867e63e774ebc8b78b2b19c78645c8a12a8d06f6))
26
+
27
+
28
+ # 3.0.0-alpha.97 (2026-08-02)
29
+
30
+ ### Features
31
+
32
+ * **ppx:** add [@offload](https://github.com/offload) field shorthand with per-field threshold ([3d5e3b5](https://github.com/ReventlessDev/reventless-core/commit/3d5e3b5da5010547ce0eaf7d94d660daec67feed))
33
+
34
+
35
+ # 3.0.0-alpha.96 (2026-08-02)
36
+
37
+ ### Bug Fixes
38
+
39
+ * **spec:** add Offload.toJson to serialize a payload as untagged wire JSON ([6a4c60f](https://github.com/ReventlessDev/reventless-core/commit/6a4c60f606dd6657082981acf75a90070099bf29))
40
+
41
+
42
+ # 3.0.0-alpha.95 (2026-08-02)
43
+
44
+ **Note:** Version bump only for package @reventlessdev/reventless-spec
45
+
46
+
47
+
48
+
49
+
50
+ # 3.0.0-alpha.94 (2026-08-02)
51
+
52
+ ### Features
53
+
54
+ * **spec:** add [@offload](https://github.com/offload) inline-or-reference field primitive ([a54c39c](https://github.com/ReventlessDev/reventless-core/commit/a54c39ceb45b2c0b63caffd8ad039e732a5eb95d))
55
+ * **spec:** add Offload prepare/resolve/cachedFetch client helpers ([2855990](https://github.com/ReventlessDev/reventless-core/commit/2855990ba5cc56bd691460d3614ac666382c7fac))
56
+ * **spec:** make plugin structure/apiSchemaFragment offloadable payloads ([a0391bf](https://github.com/ReventlessDev/reventless-core/commit/a0391bf26f91035460cbf90f52d105a1003414c3))
57
+
58
+
59
+ # 3.0.0-alpha.93 (2026-08-02)
60
+
61
+ ### Features
62
+
63
+ * **aws,core,spec,seed-aws:** expire uploads nobody committed a reference to ([f63e84c](https://github.com/ReventlessDev/reventless-core/commit/f63e84c1a11cc350b799a6f69a2e7427cf1ea6e9))
64
+
65
+
66
+ # 3.0.0-alpha.92 (2026-08-01)
67
+
68
+ * feat(aws,core,spec)!: qualify store prefixes by plugin and refuse name collisions ([da39405](https://github.com/ReventlessDev/reventless-core/commit/da394059d9f8f981bf7adc79e2c1ce2b429e0267))
69
+ ### Features
70
+
71
+ * **spec:** a coordinate is one declared point, not two fields and a name guess ([bfe2f90](https://github.com/ReventlessDev/reventless-core/commit/bfe2f90241492422d6c242e3f50e31b81ed2a010))
72
+
73
+ ### BREAKING CHANGES
74
+
75
+ * objects minted under the old bare prefix are orphaned and their
76
+ refs unresolvable. The migration is `seed:reset` for the owning plugin, then
77
+ re-seed. Legacy-prefix grandfathering was considered and deliberately dropped —
78
+ it would have added a permanent prefix SET across the deploy argument, both store
79
+ configs, the presign IAM fan-out, the release scope check and the stack output,
80
+ to spare a disposable stack one wipe.
81
+
82
+
83
+
84
+ # 3.0.0-alpha.91 (2026-08-01)
85
+
86
+ ### Bug Fixes
87
+
88
+ * **spec,core:** heal a missing scalar on read ([de9a98e](https://github.com/ReventlessDev/reventless-core/commit/de9a98ec5fe11ec19bef80626e99244d9c30a6b1))
89
+ * **spec,core:** make the storageRef annotation optional, as its readers already are ([c8477c5](https://github.com/ReventlessDev/reventless-core/commit/c8477c5c34384b864c06716dc5896310629dc349))
90
+
91
+
92
+ # 3.0.0-alpha.90 (2026-08-01)
93
+
94
+ ### Features
95
+
96
+ * **spec:** add DateRange semantic type ([d85b6cc](https://github.com/ReventlessDev/reventless-core/commit/d85b6cc18241644905241df2abd99949dd758059))
97
+
98
+
99
+ # 3.0.0-alpha.89 (2026-07-31)
100
+
101
+ ### Features
102
+
103
+ * **spec:** add Money and a closed ISO 4217 Currency ([d4852ab](https://github.com/ReventlessDev/reventless-core/commit/d4852ab63e823e39fac793c4fa5ac31470db9655))
104
+
105
+
106
+ # 3.0.0-alpha.88 (2026-07-30)
107
+
108
+ ### Bug Fixes
109
+
110
+ * **core:** a command's field markers reach the wire, and its optional fields stay optional ([f1c1112](https://github.com/ReventlessDev/reventless-core/commit/f1c1112e9baa6b06e50097a5a618f49c9301cd0a))
111
+
112
+
113
+ # 3.0.0-alpha.87 (2026-07-30)
114
+
115
+ ### Bug Fixes
116
+
117
+ * **spec,core:** record the storageRef annotation instead of inferring it ([06fb5d6](https://github.com/ReventlessDev/reventless-core/commit/06fb5d671db91fb536acefd0c2db69d98671da39))
118
+ * **spec:** read a semantic marker through an optional field's wrapper ([abebaa9](https://github.com/ReventlessDev/reventless-core/commit/abebaa9e6c73986765bb3de589ba0414eb0d85da))
119
+
120
+
121
+ # 3.0.0-alpha.86 (2026-07-30)
122
+
123
+ ### Features
124
+
125
+ * **spec,local:** resolve capability manifests beyond the example topology ([8bfadd5](https://github.com/ReventlessDev/reventless-core/commit/8bfadd5beef90c0c9f6f6f3fbb753c8b789469ed))
126
+ * **spec:** semantic branded scalars — Email, Url, Phone, Percent, Color, Bytes, Duration ([2e64ff9](https://github.com/ReventlessDev/reventless-core/commit/2e64ff992e913c038a71659c731c25a104e3c5a9))
127
+
128
+
129
+ # 3.0.0-alpha.85 (2026-07-30)
130
+
131
+ ### Features
132
+
133
+ * **spec,core,local:** emit capabilities.json from the plugin build ([57a3276](https://github.com/ReventlessDev/reventless-core/commit/57a3276a6b02af93490a8b460e3aa158b7e0e0f8))
134
+ * **spec,core:** derive the platform capability list — inference and generation (stage 3) ([8ab4d25](https://github.com/ReventlessDev/reventless-core/commit/8ab4d2504bd717487fbc87a0f5a053024c8258f9))
135
+
136
+
137
+ # 3.0.0-alpha.84 (2026-07-29)
138
+
139
+ ### Features
140
+
141
+ * **plugin:** why a read model is named by that field ([699ef8e](https://github.com/ReventlessDev/reventless-core/commit/699ef8e72f1b1d82fb04672739e5e4a8db61ae9a))
142
+
143
+
144
+ # 3.0.0-alpha.83 (2026-07-28)
145
+
146
+ ### Features
147
+
148
+ * **platform:** provision object stores from the fields that declare them ([b5e2a1e](https://github.com/ReventlessDev/reventless-core/commit/b5e2a1ec88099941c113e4963f9c4b346b96b0d6))
149
+
150
+
151
+ # 3.0.0-alpha.82 (2026-07-28)
152
+
153
+ ### Features
154
+
155
+ * **spec:** one semantic marker every typed semantic marks itself with ([aa18afc](https://github.com/ReventlessDev/reventless-core/commit/aa18afcf04c8edad9afe27e6fa4261d01e184da7))
156
+ * **spec:** StorageRef — the first semantic type, declared on the field's type ([44f15c3](https://github.com/ReventlessDev/reventless-core/commit/44f15c37de71261d701d18a9f1ada6f481c4a8dc))
157
+
158
+
159
+ # 3.0.0-alpha.81 (2026-07-26)
160
+
161
+ ### Features
162
+
163
+ * **auto-ui:** declare command target state via [@target](https://github.com/target)State ([5fc0374](https://github.com/ReventlessDev/reventless-core/commit/5fc03741a8816c57085b86a4ad7d595e3b690193)), closes [#5](https://github.com/ReventlessDev/reventless-core/issues/5)
164
+ * **auto-ui:** declare field semantics + dashboard metrics ([@semantic](https://github.com/semantic), [@metric](https://github.com/metric)) ([d74ff77](https://github.com/ReventlessDev/reventless-core/commit/d74ff7721e18e8638a82931a370a549b304dac94)), closes [#4](https://github.com/ReventlessDev/reventless-core/issues/4)
165
+
166
+
167
+ # 3.0.0-alpha.80 (2026-07-22)
168
+
169
+ ### Features
170
+
171
+ * **core:** annotate event-collector logs with the element's comp ([eda413a](https://github.com/ReventlessDev/reventless-core/commit/eda413ab00eb8bb02b30e029af2d6221e3e9ba75)), closes [#1](https://github.com/ReventlessDev/reventless-core/issues/1)
172
+
173
+
174
+ # 3.0.0-alpha.79 (2026-07-17)
175
+
176
+ **Note:** Version bump only for package @reventlessdev/reventless-spec
177
+
178
+
179
+
180
+
181
+
182
+ # 3.0.0-alpha.78 (2026-07-16)
183
+
184
+ ### Features
185
+
186
+ * **aws:** consume per-component runtime hints; fold into shared command Lambdas ([7ba2485](https://github.com/ReventlessDev/reventless-core/commit/7ba248579f2472f2fc847b26033927199353f3e6))
187
+ * **core:** thread per-component runtime hints from plugin.json (spec/infra/core/local) ([a94f419](https://github.com/ReventlessDev/reventless-core/commit/a94f4199c4ac7eeeb24dd0a71d58fb73c1e514e6))
188
+
189
+
190
+ # 3.0.0-alpha.77 (2026-07-15)
191
+
192
+ ### Performance Improvements
193
+
194
+ * **spec:** reverse-convert DcbTag extraction instead of stringify round-trip ([4311c7b](https://github.com/ReventlessDev/reventless-core/commit/4311c7b863f99e582911ced529d77dca7cc36381))
195
+
196
+
197
+ # 3.0.0-alpha.76 (2026-07-12)
198
+
199
+ ### Features
200
+
201
+ * **admin:** make the API fragment registry per-target (Domain | Platform) ([30491a9](https://github.com/ReventlessDev/reventless-core/commit/30491a9e14b4236c98cc756efb6de68ede1e77d7))
202
+ * **admin:** retire the Plugin-aggregate UI-fragment path in favour of the registry slices ([1dbc708](https://github.com/ReventlessDev/reventless-core/commit/1dbc708e7439b34ff970cc3d963d7835a8c6fd48))
203
+
204
+
205
+ # 3.0.0-alpha.75 (2026-07-11)
206
+
207
+ ### Features
208
+
209
+ * **infra:** add DeployBootstrap seam for generated deploy programs ([f0dc868](https://github.com/ReventlessDev/reventless-core/commit/f0dc8686396d21e7b39667eb0825b2e57fe4dabf))
210
+
211
+
212
+ # 3.0.0-alpha.74 (2026-07-11)
213
+
214
+ ### Bug Fixes
215
+
216
+ * **build:** mark tests as dev-only sources so dependents don't compile them ([28b3b1c](https://github.com/ReventlessDev/reventless-core/commit/28b3b1ccfeaafc1d7050a86ce2362f32e4299187))
217
+
218
+
219
+ # 3.0.0-alpha.73 (2026-07-11)
220
+
221
+ ### Bug Fixes
222
+
223
+ * **plugin-lifecycle:** heal message decode of definitions persisted before a schema field existed ([6bb3e72](https://github.com/ReventlessDev/reventless-core/commit/6bb3e7259ad606a0f77fb670bcfc680256592003))
224
+
225
+
226
+ # 3.0.0-alpha.72 (2026-07-10)
227
+
228
+ ### Features
229
+
230
+ * **plugin-structure:** capture per-component chapter grouping for the deployed graph ([f9c88a9](https://github.com/ReventlessDev/reventless-core/commit/f9c88a9a48d8c032ffe23f9e5277caf12c29e85c))
231
+
232
+
233
+ # 3.0.0-alpha.71 (2026-07-10)
234
+
235
+ **Note:** Version bump only for package @reventlessdev/reventless-spec
236
+
237
+
238
+
239
+
240
+
241
+ # 3.0.0-alpha.70 (2026-07-10)
242
+
243
+ ### Features
244
+
245
+ * **reventless-ppx:** add [@group](https://github.com/group)By state-field annotation → x-reventless-group-by ([9e7a7b2](https://github.com/ReventlessDev/reventless-core/commit/9e7a7b29e54fb4eda1c6a145c0e7b6dcf26940ee))
246
+
247
+
248
+ # 3.0.0-alpha.69 (2026-07-08)
249
+
250
+ ### Features
251
+
252
+ * **reventless-core:** classify plugins by kind in the lifecycle read model ([64e3f22](https://github.com/ReventlessDev/reventless-core/commit/64e3f22b8114a771886b7c8ec023e95971413c0b))
253
+
254
+
255
+ # 3.0.0-alpha.68 (2026-07-07)
256
+
257
+ ### Bug Fixes
258
+
259
+ * **reventless-aws:** thread inferred DCB scope into the deployed command handler ([4d8327f](https://github.com/ReventlessDev/reventless-core/commit/4d8327fad8659a1cde8c36098c72392737437af1))
260
+
261
+
262
+ # 3.0.0-alpha.67 (2026-07-06)
263
+
264
+ **Note:** Version bump only for package @reventlessdev/reventless-spec
265
+
266
+
267
+
268
+
269
+
270
+ # 3.0.0-alpha.66 (2026-07-05)
271
+
272
+ ### Bug Fixes
273
+
274
+ * **spec:** republish DcbTag to ship [@schema-generated](https://github.com/schema-generated) derivedPartitionTagSchema ([c110c26](https://github.com/ReventlessDev/reventless-core/commit/c110c26ba54617a8455e205ed77aeba5212f6170))
275
+
276
+
277
+ # 3.0.0-alpha.65 (2026-07-05)
278
+
279
+ ### Features
280
+
281
+ * @[@reventless](https://github.com/reventless).systemCallable slice opt-in for deploy-time system callers ([c5ed537](https://github.com/ReventlessDev/reventless-core/commit/c5ed537309f8e4b7d4a4d4af1ed1ec83d060aea3))
282
+ * **reventless-aws:** Postgres change-feed relay auto-wiring (B2.3d) ([62b430f](https://github.com/ReventlessDev/reventless-core/commit/62b430f1e6d8ec1f172de0cca324f7f26aaf5fcb))
283
+
284
+
285
+ # 3.0.0-alpha.64 (2026-07-03)
286
+
287
+ **Note:** Version bump only for package @reventlessdev/reventless-spec
288
+
289
+
290
+
291
+
292
+
293
+ # 3.0.0-alpha.63 (2026-07-02)
294
+
295
+ ### Bug Fixes
296
+
297
+ * **spec,interop,layer-builder:** generator/protocol/build failure modes (plan A8,A9) ([66d7a54](https://github.com/ReventlessDev/reventless-core/commit/66d7a54e3a0afdbfe3ea2975f517d1d64d52c180))
298
+
299
+
300
+ # 3.0.0-alpha.62 (2026-06-29)
301
+
302
+ ### Features
303
+
304
+ * external-system boxes for translation slices (Event Graph data) ([3f8ad39](https://github.com/ReventlessDev/reventless-core/commit/3f8ad39b78a3cb1182d59a0e1fb203b7dcb7379b))
305
+
306
+
307
+ # 3.0.0-alpha.61 (2026-06-27)
308
+
309
+ ### Bug Fixes
310
+
311
+ * **dcb:** harden scope inference against real catalog (partitionHint + rule 3) ([acea3f8](https://github.com/ReventlessDev/reventless-core/commit/acea3f8bb0e96a0993d81fd1aa521e9456982a13))
312
+ * **dcb:** only infer cross-partition for SCALAR foreign references ([57416bf](https://github.com/ReventlessDev/reventless-core/commit/57416bf150df4c801577a60bf72f69abe9c701a8))
313
+ ### Features
314
+
315
+ * **dcb:** add tag-scope inference core + runtime diff logging (Phase 1) ([5e17560](https://github.com/ReventlessDev/reventless-core/commit/5e17560fefc4272deb8b501dcb8ecef11c3a7c23))
316
+ * **dcb:** thread inferred tag scope into the decision-query wiring (Phase 2) ([63445b2](https://github.com/ReventlessDev/reventless-core/commit/63445b239bc368932b043872ca16b6c35f723566))
317
+ * **dcb:** validate [@cross](https://github.com/cross)Partition annotations against inferred scope ([acbb387](https://github.com/ReventlessDev/reventless-core/commit/acbb3870d32bbd4ef7e61ed52795800b87660e93))
318
+
319
+
320
+ # 3.0.0-alpha.60 (2026-06-22)
321
+
322
+ ### Bug Fixes
323
+
324
+ * **domain-graph:** route EP commands only with a real inbound protocol ([647d1fa](https://github.com/ReventlessDev/reventless-core/commit/647d1fa0194189f4d53cf5fca0f2ef4045b983f9))
325
+ * **ppx:** compose [@ref](https://github.com/ref) with the DCB tag key for plural *Ids fields ([cba2193](https://github.com/ReventlessDev/reventless-core/commit/cba2193d1c377c1bf91dee1f01da2a91a82ab488))
326
+ ### Features
327
+
328
+ * **structure:** mark API-exposed commands for the event-graph badge ([8cd6faa](https://github.com/ReventlessDev/reventless-core/commit/8cd6faa0a66c6cf1b4b5eea26df6f70c540b67a4))
329
+
330
+
331
+ # 3.0.0-alpha.59 (2026-06-21)
332
+
333
+ ### Features
334
+
335
+ * **dcb:** cross-partition secondary-tag reads (Phase 7) ([9e1f8b3](https://github.com/ReventlessDev/reventless-core/commit/9e1f8b3595004b92148dd053aae380078baa42a3))
336
+ * **dcb:** per-slice readConsistency override for StateChangeSlice decision reads ([65516f7](https://github.com/ReventlessDev/reventless-core/commit/65516f7fc62daaad51edef2c668cc7b362506364))
337
+
338
+
339
+ # 3.0.0-alpha.58 (2026-06-21)
340
+
341
+ ### Features
342
+
343
+ * **dcb:** warn on composite reads that silently miss extra-tagged events (Issue 5) ([9e14f68](https://github.com/ReventlessDev/reventless-core/commit/9e14f68c76b0e5acf95878d89693eec26e0e1760))
344
+
345
+
346
+ # 3.0.0-alpha.57 (2026-06-20)
347
+
348
+ ### Features
349
+
350
+ * **dcb:** narrow query clauses to types that can carry each tag (Issue 14) ([6bceae6](https://github.com/ReventlessDev/reventless-core/commit/6bceae675b91154b5a1abf73a6aaca56533cbbe8))
351
+
352
+
353
+ # 3.0.0-alpha.56 (2026-06-17)
354
+
355
+ * feat!: harmonize plugin make() across aggregate/DCB/hybrid; AutoUI default-on ([6f3b95e](https://github.com/ReventlessDev/reventless-core/commit/6f3b95e6aa8a136c6e837346c41a3a4dff0f9405))
356
+ ### Features
357
+
358
+ * **core:** carry emitted-event field schemas in pluginStructure (Phase 6.3) ([693d452](https://github.com/ReventlessDev/reventless-core/commit/693d4529ee4c66a2a4a4b0d4d7efb104cf94bcab))
359
+
360
+ ### BREAKING CHANGES
361
+
362
+ * makeAutoUIManifest signature dropped ~aggregates and
363
+ ~readModels; replaced with ~pluginStructure. Hand-written Plugin.res files
364
+ that pass ~uiBundleUrl to plugin.make must drop the arg and rely on the
365
+ generator-emitted env var read.
366
+
367
+
368
+
369
+ # 3.0.0-alpha.55 (2026-06-12)
370
+
371
+ ### Features
372
+
373
+ * **vscode:** jump from event-graph nodes to source + show Internal components in the dev graph ([6a6e5e4](https://github.com/ReventlessDev/reventless-core/commit/6a6e5e466c6ea5c0c7315ccc37a538e0b496c99a))
374
+
375
+
376
+ # 3.0.0-alpha.54 (2026-06-10)
377
+
378
+ * refactor(reventless-local)!: rename reventless-in-memory to reventless-local ([f36e17c](https://github.com/ReventlessDev/reventless-core/commit/f36e17c407714ab9740393fac96865d6a5c143c9))
379
+ ### Features
380
+
381
+ * **logging:** sink-aware ANSI formatting — clean JSON in non-TTY sinks (Tier 1) ([32ae533](https://github.com/ReventlessDev/reventless-core/commit/32ae5337a45ff9cbd26754b5b1c71c5c7070507b))
382
+ * **reventless-core:** extension-point source events in pluginStructure ([9c47a0e](https://github.com/ReventlessDev/reventless-core/commit/9c47a0ea9a1643ac12fbe8dc1c43244e580de024))
383
+
384
+ ### BREAKING CHANGES
385
+
386
+ * @reventlessdev/reventless-in-memory -> @reventlessdev/reventless-local;
387
+ namespace ReventlessInMemory -> ReventlessLocal.
388
+
389
+
390
+
391
+ # 3.0.0-alpha.53 (2026-06-08)
392
+
393
+ ### Features
394
+
395
+ * **logging:** sink-aware ANSI formatting — clean JSON in non-TTY sinks (Tier 1) ([7da6256](https://github.com/ReventlessDev/reventless-core/commit/7da62568eaa06c2bedf5d7ad6d10b1ec006a6b75))
396
+
397
+
398
+ # 3.0.0-alpha.52 (2026-06-08)
399
+
400
+ ### Features
401
+
402
+ * **reventless-core:** extension-point source events in pluginStructure ([1e1d925](https://github.com/ReventlessDev/reventless-core/commit/1e1d9258b5a228b9fdfa003348a5367281573b3c))
403
+
404
+
405
+ # 3.0.0-alpha.51 (2026-06-06)
406
+
407
+ * refactor(reventless-local)!: rename reventless-in-memory to reventless-local ([966855f](https://github.com/ReventlessDev/reventless-core/commit/966855fd31e518d56a381bf40204735809cead15))
408
+
409
+ ### BREAKING CHANGES
410
+
411
+ * @reventlessdev/reventless-in-memory -> @reventlessdev/reventless-local;
412
+ namespace ReventlessInMemory -> ReventlessLocal.
413
+
414
+
415
+
416
+ # 3.0.0-alpha.50 (2026-06-04)
417
+
418
+ **Note:** Version bump only for package @reventlessdev/reventless-spec
419
+
420
+
421
+
422
+
423
+
424
+ # 3.0.0-alpha.49 (2026-05-25)
425
+
426
+ **Note:** Version bump only for package @reventlessdev/reventless-spec
427
+
428
+
429
+
430
+
431
+
432
+ # 3.0.0-alpha.48 (2026-05-25)
433
+
434
+ ### Features
435
+
436
+ * **readmodel:** add ReadModelStream variant for live-updating read models ([3d816fb](https://github.com/ReventlessDev/reventless-core/commit/3d816fb50e0e66693ae4a0a626f4d5b4e496c3b1))
437
+
438
+
439
+ # 3.0.0-alpha.47 (2026-05-21)
440
+
441
+ * feat(admin)!: replace direct DynamoDB retire write with Retire/Retired event flow ([7f5f018](https://github.com/ReventlessDev/reventless-core/commit/7f5f018e714e247331d143c304c0d671c2ac7c84))
442
+
443
+ ### BREAKING CHANGES
444
+
445
+ * Platform.deployPlugin no longer accepts ~version. Generated
446
+ Main.res files are regenerated; any direct caller must drop the arg.
447
+
448
+
449
+
450
+ # 3.0.0-alpha.46 (2026-05-20)
451
+
452
+ ### Features
453
+
454
+ * **plugin:** wire dcbEventLog into pluginDefinition for cross-plugin DCB routing (Phase 4) ([07b78f3](https://github.com/ReventlessDev/reventless-core/commit/07b78f359f8f039992ec0ce7922085b165695537))
455
+
456
+
457
+ # 3.0.0-alpha.45 (2026-05-19)
458
+
459
+ ### Features
460
+
461
+ * @[@reventless](https://github.com/reventless).async opt-in; sync command dispatch as default ([85885c8](https://github.com/ReventlessDev/reventless-core/commit/85885c80a70cfcbf4e1ac068c7115e6b6cfa8400))
462
+
463
+
464
+ # 3.0.0-alpha.44 (2026-05-18)
465
+
466
+ ### Bug Fixes
467
+
468
+ * **admin:** unblock admin → plugin SNS publish chain (3 bugs) ([e3418bb](https://github.com/ReventlessDev/reventless-core/commit/e3418bbf2e08575f28e0a9cc193f373a30dbb036))
469
+ * **spec:** restore payload-less filter in extractVariantNames; route acceptedTags through extractAllVariantNames ([208f644](https://github.com/ReventlessDev/reventless-core/commit/208f644cc0e21cb7c2ad3cf7bf43b5e7a99732f7))
470
+
471
+
472
+ # 3.0.0-alpha.43 (2026-05-17)
473
+
474
+ ### Bug Fixes
475
+
476
+ * **deps:** pin sury-ppx to 11.0.0-alpha.2 to prevent prerelease drift ([c9d05fe](https://github.com/ReventlessDev/reventless-core/commit/c9d05fe5118a9c0442ca3e071f2606b3a139fc81))
477
+
478
+
479
+ # 3.0.0-alpha.42 (2026-05-17)
480
+
481
+ ### Bug Fixes
482
+
483
+ * **aws:** wire schedulerRoleArn through admin registers; default heartbeat to 5 min ([f9580a2](https://github.com/ReventlessDev/reventless-core/commit/f9580a2fc7f85a67747ccaab87358f303bd90ab9))
484
+
485
+
486
+ # 3.0.0-alpha.41 (2026-05-17)
487
+
488
+ ### Bug Fixes
489
+
490
+ * **deps:** pin sury to 11.0.0-alpha.4 to unblock Lambda Layer deploys ([643d925](https://github.com/ReventlessDev/reventless-core/commit/643d92527fa9d092da9bef8547591e39a4c609dd))
491
+
492
+
493
+ # 3.0.0-alpha.40 (2026-05-16)
494
+
495
+ ### Features
496
+
497
+ * **ppx:** add @[@reventless](https://github.com/reventless).visibility to hide components from AutoUI ([bd302cf](https://github.com/ReventlessDev/reventless-core/commit/bd302cfc5bd5d4dfe50c8e1bf8596ab67e36c74e))
498
+
499
+
500
+ # 3.0.0-alpha.39 (2026-05-16)
501
+
502
+ ### Bug Fixes
503
+
504
+ * **ppx:** drop [@allowed](https://github.com/allowed)States witness; spec.status as option<string> ([cc0eed0](https://github.com/ReventlessDev/reventless-core/commit/cc0eed0e499c70009603619dd9f23a6bb2dd35df))
505
+ ### Features
506
+
507
+ * **ppx:** [@status](https://github.com/status) field annotation + [@allowed](https://github.com/allowed)States command annotation ([15f0478](https://github.com/ReventlessDev/reventless-core/commit/15f0478209dbb4e5d385332cf8cf320c694ac1c1))
508
+ * **spec:** allowedStates + statusField metadata for AutoUI command filtering ([b5d138b](https://github.com/ReventlessDev/reventless-core/commit/b5d138bb706515f7c6ba5daf7f4ef481cc35d024))
509
+
510
+
511
+ # 3.0.0-alpha.38 (2026-05-14)
512
+
513
+ ### Features
514
+
515
+ * **auth:** expose payload-less commands to GraphQL + per-constructor authz test ([7a55b27](https://github.com/ReventlessDev/reventless-core/commit/7a55b27ea04e84368909b24fc5ca29f415d108da))
516
+ * **auth:** scaffold provider-agnostic auth abstraction ([a273c10](https://github.com/ReventlessDev/reventless-core/commit/a273c10d4598d9d2fdcc7428dde3278818aba9b8))
517
+ * **ppx:** inline-spec walk + Spec module types require authorization ([7db9ec0](https://github.com/ReventlessDev/reventless-core/commit/7db9ec0f186578ce0088973dba22da9257be6a61))
518
+
519
+
520
+ # 3.0.0-alpha.37 (2026-05-13)
521
+
522
+ * feat(spec)!: standardise event/command envelope (StoredEvent, optional meta, position, persisted DCB meta, causation) ([7ef3176](https://github.com/ReventlessDev/reventless-core/commit/7ef3176c6330810c817f43a52b881b5a0efee30e))
523
+
524
+ ### BREAKING CHANGES
525
+
526
+ * meta.ip / meta.user go from required `string` to optional
527
+ record fields (`?: string`). Code that did `meta.user == "unknown"` to
528
+ detect system messages must check for field absence. Storage tables built
529
+ before this change are not migrated (greenfield — recreate the EventLog /
530
+ DcbEventLog tables; DynamoDB range key renamed from `seq` to `position`,
531
+ SQLite dcb_event gains meta and recorded_at columns).
532
+
533
+
534
+
535
+ # 3.0.0-alpha.36 (2026-05-05)
536
+
537
+ ### Features
538
+
539
+ * **dcb:** allow plural *Ids field names with shared singular tag key ([19a5167](https://github.com/ReventlessDev/reventless-core/commit/19a5167ed904c6152c137af738f869ee4d26287e))
540
+
541
+
542
+ # 3.0.0-alpha.35 (2026-05-03)
543
+
544
+ * feat(codegen)!: drop View suffix from StateView slice file names ([476dd8c](https://github.com/ReventlessDev/reventless-core/commit/476dd8c8c91f67b198faaef51aa1b29d26099844))
545
+ * feat(ppx,codegen)!: retire @reventless.projections; add spec-stem-uniqueness lint ([a6fa11f](https://github.com/ReventlessDev/reventless-core/commit/a6fa11fa26086fd356e16b01b6f15b819630534e))
546
+ * refactor(examples)!: migrate online-shop-aggregates to new naming + adopt new PPX ([9dac635](https://github.com/ReventlessDev/reventless-core/commit/9dac6353b88e6c6bba88d1ce9d4a0594be976f62))
547
+ * feat(ppx)!: add @@reventless.mappings/extension/task; collapse AutomationSlice.Make to 2 args ([c0268ac](https://github.com/ReventlessDev/reventless-core/commit/c0268ac42c1c887fe25467af61b412ab2e27a5a7))
548
+ ### Features
549
+
550
+ * **logger:** prefix plugin-component logs with stable-color [PluginName] bracket ([ed61eaf](https://github.com/ReventlessDev/reventless-core/commit/ed61eaf5cf84d8b8925c148050a2c51ddb65226a))
551
+
552
+ ### BREAKING CHANGES
553
+
554
+ * any downstream consumers regenerating from EventModeling
555
+ JSON via reventless-codegen will see StateView slices' spec file rename
556
+ from <Title>View.res to <Title>.res (with the matching _Projection.res
557
+ sibling). Move existing files with `git mv` if the canonical model still
558
+ titles them "*View".
559
+ * any user code applying @reventless.projections to
560
+ an inline wrapper module inside Plugin.res fails to compile with a
561
+ clear migration message. Move the per-source Mapping.Make modules
562
+ and the let mappings array into the slice-local
563
+ <Plural>_Projections.res file (in ReadModel/) and add
564
+ @@reventless.mappings at the top. Auto-generated Plugin.res then
565
+ references the projections module directly.
566
+ * external code consuming the
567
+ `@reventlessdev/online-shop-aggregates-*` packages must update module name
568
+ references (e.g., `CategoriesReadModel` → `Categories`,
569
+ `ProductsExtensionPoint` → `Products_ExtensionPoint`, `CategoryBehavior` →
570
+ `Category_Behavior`).
571
+
572
+ Verified: zero warnings, 1174/1175 tests pass — same single pre-existing
573
+ testPromise race in OrderingE2ETest as PR1/PR2.
574
+ * Platform.AutomationSlice.Make is now 2-arg (Spec, Automation).
575
+ External callers must either rerun generate-plugin or merge their _Mappings
576
+ contents into _Automation (or add the same two-line bridge).
577
+
578
+ Verified: zero warnings, 1174/1175 tests pass — the single failing test
579
+ (OrderingE2ETest "after syncing missing product, PlaceOrder succeeds") was
580
+ confirmed pre-existing on alpha (the known testPromise concurrency race).
581
+
582
+
583
+
584
+ # 3.0.0-alpha.34 (2026-04-28)
585
+
586
+ ### Features
587
+
588
+ * **ppx:** add [@drill](https://github.com/drill)Target and [@collapsed](https://github.com/collapsed) rendering hints ([9de6499](https://github.com/ReventlessDev/reventless-core/commit/9de6499a458a1a29f51f67df03b607bdb46c707c))
589
+ * **ppx:** add [@hidden](https://github.com/hidden) and [@summary](https://github.com/summary) visibility annotations ([f26b05c](https://github.com/ReventlessDev/reventless-core/commit/f26b05cd561f1a879ed74135a3446f1faf29ad21))
590
+ * **ppx:** add [@scan](https://github.com/scan) and [@scan](https://github.com/scan)Sort opt-in for server-side filter/sort ([534a4bf](https://github.com/ReventlessDev/reventless-core/commit/534a4bf2116ec6f597f87dadc785767c3dc54ace))
591
+ * **ppx:** propagate state annotations to JSON Schema as x-reventless-* properties ([5ce39e4](https://github.com/ReventlessDev/reventless-core/commit/5ce39e4d22dca7d5ae3577b6210e40dd81cef4f5))
592
+
593
+
594
+ # 3.0.0-alpha.33 (2026-04-27)
595
+
596
+ ### Bug Fixes
597
+
598
+ * **spec:** regenerate plugins; simplify codegen, drop Maker suffix ([8d81302](https://github.com/ReventlessDev/reventless-core/commit/8d81302a9dc3403f98298ff69b19901d625dff7e))
599
+ ### Features
600
+
601
+ * **codegen:** AWS Plugin.res delegates to composition variant; forward uiBundleUrl from env ([8832ab7](https://github.com/ReventlessDev/reventless-core/commit/8832ab7a3a19cd697afe14b230f122fc18f73403))
602
+
603
+
604
+ # 3.0.0-alpha.32 (2026-04-26)
605
+
606
+ * refactor(automation)!: drop tagSet and toTags from Mapping API ([c9cd7f2](https://github.com/ReventlessDev/reventless-core/commit/c9cd7f2a1c1758990cb3d83a6876348477fe89d6))
607
+ * feat!: mixed-source AutomationSlice — Plan 04 ([fae3fbf](https://github.com/ReventlessDev/reventless-core/commit/fae3fbf93b12ecf62d0883fe7335ed73c6f52d67))
608
+ ### Features
609
+
610
+ * enable mixed-source ReadModel — Aggregate + DCB projections (Plan 03) ([2a5f9de](https://github.com/ReventlessDev/reventless-core/commit/2a5f9de1df23cac39fc292dbad23cf16ad0aece4))
611
+ * **ppx:** add @[@reventless](https://github.com/reventless).projection / .automation / .translation — Phase 3a of Spec-First series ([d193ae6](https://github.com/ReventlessDev/reventless-core/commit/d193ae64cff93aae2867182641489f17ce4e88d6))
612
+ * **spec:** split slice spec module types — Phase 1 of Spec-First series ([d3b1493](https://github.com/ReventlessDev/reventless-core/commit/d3b149300d09dbac45a5e316343cd79fe2a769e6))
613
+
614
+ ### BREAKING CHANGES
615
+
616
+ * Mapping/MappingImpl no longer have `type tagSet`
617
+ or `let toTags`. Mappings declared in user code with `type tagSet`
618
+ or `let toTags` need those lines removed. Migrate any toTags
619
+ validation logic to `collect` (filter) or to `@s.matches` /
620
+ `@compositePartitionTag` annotations on the command schema.
621
+ * AutomationSlice.Spec drops consumedEvent;
622
+ AutomationSlice_Builder.Make takes Mappings as 3rd arg; make signature
623
+ swaps ~dcbEventLog for ~allEventTopics + ~context; Plugin_Builder.Spec
624
+ gains platformName. Existing slices need a sibling _Mappings.res file
625
+ and updated Plugin.res (regenerate via prebuild hook).
626
+
627
+ Tests: 362/362 pass. Build clean, zero warnings.
628
+
629
+ Plan: docs/plans/done/mixed-source-automationslice.md
630
+ Guide: docs/guides/mixed-source-automationslice.md
631
+
632
+
633
+
634
+ # 3.0.0-alpha.31 (2026-04-22)
635
+
636
+ ### Bug Fixes
637
+
638
+ * **core:** correct plugin structure graph and dcb event publishing ([a61a9d0](https://github.com/ReventlessDev/reventless-core/commit/a61a9d024cffdf36faafc6bec8b8c04221ca3db2))
639
+ * wire DCB cross-plugin event routing and AutoUI command linking ([8baabad](https://github.com/ReventlessDev/reventless-core/commit/8baabad8bce02ab0954a0eeefffb4cf5f448e1e7))
640
+ ### Features
641
+
642
+ * add [@ref](https://github.com/ref) ppx annotation for explicit cross-entity field references ([079c732](https://github.com/ReventlessDev/reventless-core/commit/079c732e81b481e9b2836ea755e1610b13f828fc))
643
+ * add composite [@display](https://github.com/display)Name annotation with projected displayName column ([115f550](https://github.com/ReventlessDev/reventless-core/commit/115f5506231f635e261d977da0ca32bdabef817f))
644
+ * **logs:** bold event and command names in log output ([3b09f41](https://github.com/ReventlessDev/reventless-core/commit/3b09f41299bc1f851e15cfb7b8c4a8433f499c7d))
645
+ * **spec:** add Message.variantNameOfJson helper ([a9efb5f](https://github.com/ReventlessDev/reventless-core/commit/a9efb5f1d3ac6180ea8e04dc3c1c2f183d15a984))
646
+ * **spec:** wire UI fragment manifest through plugin make via ~uiBundleUrl ([e07fa3a](https://github.com/ReventlessDev/reventless-core/commit/e07fa3a05d6effdd4c6c6686ab1f7e4e4312c438))
647
+ * surface labelField and searchableFields on Platform_UIReadSideDef ([fb7bff8](https://github.com/ReventlessDev/reventless-core/commit/fb7bff8f6fca51c2ed9261adbfedec0f45777d59))
648
+
649
+
650
+ # 3.0.0-alpha.30 (2026-04-20)
651
+
652
+ ### Bug Fixes
653
+
654
+ * use run-generator.mjs wrapper so shebang survives rescript builds ([7f091d8](https://github.com/ReventlessDev/reventless-core/commit/7f091d8c6144bcd70fbc9d8e69288bc45a45ccd6))
655
+ ### Features
656
+
657
+ * add automationSlices, translation slices, and extensions to pluginStructure ([631e2f3](https://github.com/ReventlessDev/reventless-core/commit/631e2f3636f0a422e58712f70106c0df8effc1e9))
658
+ * Platform_EventGraph StateViewSlice aggregating cross-plugin event graph ([718f0be](https://github.com/ReventlessDev/reventless-core/commit/718f0bed258da62c4ff5f2ab188e2d43b85e91b6))
659
+ * **plugin-structure:** add mutationField to commandDef ([80f2c8d](https://github.com/ReventlessDev/reventless-core/commit/80f2c8db6a61a705f8b05cb7429187a4b69ccf37))
660
+ * **reventless-spec:** add StateViewSliceStream, EventMappings, and Task support to AWS codegen variant ([22d6b4a](https://github.com/ReventlessDev/reventless-core/commit/22d6b4aa22a57740090fa78b8c055c798e88194f))
661
+
662
+
663
+ # 3.0.0-alpha.29 (2026-04-19)
664
+
665
+ **Note:** Version bump only for package @reventlessdev/reventless-spec
666
+
667
+
668
+
669
+
670
+
671
+ # 3.0.0-alpha.28 (2026-04-18)
672
+
673
+ ### Features
674
+
675
+ * **core:** AutoUI definition — makeAutoUIDefinition, Platform_UIDefinitions query, generator support ([513ca53](https://github.com/ReventlessDev/reventless-core/commit/513ca5399b0b6e5ae6a982fd15693de2ea208b8d))
676
+ * **core:** uiFragments manifest — Phase 1 implementation with generic types ([1e73f62](https://github.com/ReventlessDev/reventless-core/commit/1e73f623984118081d2b985c48521812e4f8417e))
677
+
678
+
679
+ # 3.0.0-alpha.27 (2026-04-15)
680
+
681
+ ### Bug Fixes
682
+
683
+ * **schema:** make pluginDefinition.apiTarget JSON-safe for union variant payloads ([556457f](https://github.com/ReventlessDev/reventless-core/commit/556457fd2f09f3ae572fc18aefb3262d80582524))
684
+
685
+
686
+ # 3.0.0-alpha.26 (2026-04-15)
687
+
688
+ ### Bug Fixes
689
+
690
+ * **platform:** split-API schema routing for Platform-target plugins ([6b4c58d](https://github.com/ReventlessDev/reventless-core/commit/6b4c58dfed15c40db0e70339f0148ff445eb5c6a))
691
+
692
+
693
+ # 3.0.0-alpha.25 (2026-04-15)
694
+
695
+ ### Features
696
+
697
+ * zero-touch plugin assembly — generate Plugin.res from folder structure ([73ea654](https://github.com/ReventlessDev/reventless-core/commit/73ea654ab9a73f15ea7e18631e8194bfe0f4580f))
698
+
699
+
700
+ # 3.0.0-alpha.24 (2026-04-12)
701
+
702
+ **Note:** Version bump only for package @reventlessdev/reventless-spec
703
+
704
+
705
+
706
+
707
+
708
+ # 3.0.0-alpha.23 (2026-04-07)
709
+
710
+ ### Bug Fixes
711
+
712
+ * **dcb-validation:** handle union and object types in schemasAreCompatible ([8b13bb5](https://github.com/ReventlessDev/reventless-core/commit/8b13bb552cfa643f486c2761a441d1a2ae1cd7e0))
713
+
714
+
715
+ # 3.0.0-alpha.22 (2026-04-07)
716
+
717
+ ### Features
718
+
719
+ * **ppx+querydb:** annotation-driven key design and sort key queries ([dee6de8](https://github.com/ReventlessDev/reventless-core/commit/dee6de84c2d2de5431d064f18ac7132bc8c23110))
720
+
721
+
722
+ # 3.0.0-alpha.21 (2026-04-07)
723
+
724
+ ### Bug Fixes
725
+
726
+ * replace S.reverseConvertToJsonOrThrow with JSON.stringifyAny round-trip ([406acee](https://github.com/ReventlessDev/reventless-core/commit/406acee7bf98eb517419db23791b8ecb3668ada7))
727
+
728
+
729
+ # 3.0.0-alpha.20 (2026-04-06)
730
+
731
+ ### Bug Fixes
732
+
733
+ * add package-specs to all rescript.json to prevent CJS .js output ([780f1e0](https://github.com/ReventlessDev/reventless-core/commit/780f1e035173b73b17b78466ad01fb69c7cca350))
734
+
735
+
736
+ # 3.0.0-alpha.19 (2026-04-06)
737
+
738
+ ### Features
739
+
740
+ * implement [@composite](https://github.com/composite)PartitionTag PPX annotation for multi-field DCB partition keys ([cf26b15](https://github.com/ReventlessDev/reventless-core/commit/cf26b15f639d151451c9aa04d32603ef9d5df315))
741
+
742
+
743
+ # 3.0.0-alpha.18 (2026-04-04)
744
+
745
+ ### Bug Fixes
746
+
747
+ * DCB [@partition](https://github.com/partition)Tag runtime errors, GraphQL Node interface, and ESM config ([dc4c4e1](https://github.com/ReventlessDev/reventless-core/commit/dc4c4e10f1ef09aba840e7b359df453b122c6aa4))
748
+ * feat!: add reventless-ppx with @@reventless.spec, @@reventless.behavior, @@reventless.dcbTags ([cb203ec](https://github.com/ReventlessDev/reventless-core/commit/cb203ece5ea3a1b92ba7d1a57d9e12bb6c4c2487))
749
+
750
+ ### BREAKING CHANGES
751
+
752
+ * Example spec files no longer export manual moduleUrl/name/Id
753
+ declarations — these are now PPX-generated. Downstream code referencing these
754
+ exports is unaffected (same values, different source).
755
+
756
+
757
+
758
+ # 3.0.0-alpha.17 (2026-04-03)
759
+
760
+ * feat!: support multi-command returns in InboundTranslationSlice ([eaac621](https://github.com/ReventlessDev/reventless-core/commit/eaac6213829b876db508b6a98db081ee40dc3e95))
761
+
762
+ ### BREAKING CHANGES
763
+
764
+ * All `translate` implementations must wrap returns in arrays.
765
+
766
+
767
+
768
+ # [3.0.0-alpha.16](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@3.0.0-alpha.14...@reventlessdev/reventless-spec@3.0.0-alpha.16) (2026-03-28)
769
+
770
+ **Note:** Version bump only for package @reventlessdev/reventless-spec
771
+
772
+
773
+
774
+
775
+
776
+ # [3.0.0-alpha.15](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@3.0.0-alpha.14...@reventlessdev/reventless-spec@3.0.0-alpha.15) (2026-03-27)
777
+
778
+ **Note:** Version bump only for package @reventlessdev/reventless-spec
779
+
780
+
781
+
782
+
783
+
784
+ # [3.0.0-alpha.14](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@3.0.0-alpha.11...@reventlessdev/reventless-spec@3.0.0-alpha.14) (2026-03-27)
785
+
786
+ * feat!: remove resolverConfig from Behavior module type ([6f54015](https://github.com/ReventlessDev/reventless-core/commit/6f54015e3abc1c5c05472c8f54645723a0f5ed28))
787
+ * feat!: decouple DCB slices from shared event log union type ([2a40e8d](https://github.com/ReventlessDev/reventless-core/commit/2a40e8dd9babfb88440fcaccde6fb667b60e0ba9))
788
+ * feat!: add structured Identity type and expand RequestContext with identity and claims ([a2396d4](https://github.com/ReventlessDev/reventless-core/commit/a2396d4dd350bb07924d45b64b99b3dc969ced89))
789
+
790
+ ### BREAKING CHANGES
791
+
792
+ * Behavior.T no longer requires resolverConfig. Remove it
793
+ from all Behavior implementations.
794
+ * All DCB slice specs must use `producedEvent`/`consumedEvent`
795
+ instead of `module DcbEventLogSpec`. Plugin `DcbSpec` no longer has `type event`
796
+ or `with type dcbEvent` constraints.
797
+ * RequestContext.t now requires identity and claims fields.
798
+ Use RequestContext.test() for test contexts.
799
+
800
+
801
+
802
+ # [3.0.0-alpha.13](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@3.0.0-alpha.11...@reventlessdev/reventless-spec@3.0.0-alpha.13) (2026-03-26)
803
+
804
+ * feat!: add structured Identity type and expand RequestContext with identity and claims ([a2396d4](https://github.com/ReventlessDev/reventless-core/commit/a2396d4dd350bb07924d45b64b99b3dc969ced89))
805
+
806
+ ### BREAKING CHANGES
807
+
808
+ * RequestContext.t now requires identity and claims fields.
809
+ Use RequestContext.test() for test contexts.
810
+
811
+
812
+
813
+ # [3.0.0-alpha.12](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@3.0.0-alpha.11...@reventlessdev/reventless-spec@3.0.0-alpha.12) (2026-03-26)
814
+
815
+ * feat!: add structured Identity type and expand RequestContext with identity and claims ([a2396d4](https://github.com/ReventlessDev/reventless-core/commit/a2396d4dd350bb07924d45b64b99b3dc969ced89))
816
+
817
+ ### BREAKING CHANGES
818
+
819
+ * RequestContext.t now requires identity and claims fields.
820
+ Use RequestContext.test() for test contexts.
821
+
822
+
823
+
824
+ # [3.0.0-alpha.11](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@3.0.0-alpha.10...@reventlessdev/reventless-spec@3.0.0-alpha.11) (2026-03-23)
825
+
826
+ * refactor!: streamline component function naming to unified two-function pattern ([06814fd](https://github.com/ReventlessDev/reventless-core/commit/06814fd8589cf05ce8a9f9654552e7d5cd9c6bf2))
827
+ * fix(reventless-aws)!: resolve DcbEventLogSpec undefined at runtime and add AppSync routing ([85138a3](https://github.com/ReventlessDev/reventless-core/commit/85138a39afe97047ea5f063508994e20544eb780))
828
+
829
+ ### BREAKING CHANGES
830
+
831
+ * All component function signatures changed. Behavior.decide
832
+ now returns result<array<event>, error> instead of using errorHandler callback.
833
+ StateChangeSlice type decisionModel renamed to state. Projection.Mapping.map
834
+ renamed to project. StateViewSlice.project takes one argument instead of two.
835
+
836
+ * DcbEventLog.Spec now requires `let moduleUrl: string` field.
837
+ Add `let moduleUrl: string = %raw(\`import.meta.url\`)` to event log modules.
838
+ # [3.0.0-alpha.10](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@3.0.0-alpha.9...@reventlessdev/reventless-spec@3.0.0-alpha.10) (2026-03-22)
839
+
840
+ * feat(reventless-aws)!: replace esbuild pipeline with compiled ReScript entry points ([6cb3133](https://github.com/ReventlessDev/reventless-core/commit/6cb313323c73a078d0922fa6b977466f61de74ea))
841
+
842
+ ### BREAKING CHANGES
843
+
844
+ * esbuild removed from dependencies, `makeBundled` and
845
+ `makeBundledFromEntryPoint` removed from RuntimeEnvironment_Lambda,
846
+ `BundledEnvironment` module type removed from Runtime.
847
+ # [3.0.0-alpha.9](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@3.0.0-alpha.8...@reventlessdev/reventless-spec@3.0.0-alpha.9) (2026-03-16)
848
+
849
+ * feat!: auto-detect plugin version from package.json via V8 stack trace ([e172673](https://github.com/ReventlessDev/reventless-core/commit/e17267390c197fa34052cef8325c579bb781419f))
850
+ ### Features
851
+
852
+ * read version from package.json, make cloner opt-in, log platform version ([d8216a1](https://github.com/ReventlessDev/reventless-core/commit/d8216a1d569064ca14eff6e0c3be86923e5b84ad))
853
+
854
+ ### BREAKING CHANGES
855
+
856
+ * Plugin.make no longer accepts ~version.
857
+ # [3.0.0-alpha.8](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@3.0.0-alpha.7...@reventlessdev/reventless-spec@3.0.0-alpha.8) (2026-03-12)
858
+
859
+ ### Features
860
+
861
+ * **deps:** upgrade rescript to 12.2 and migrate Belt usages to stdlib ([eaa96ea](https://github.com/ReventlessDev/reventless-core/commit/eaa96ea61ca40d61573fb5fe2002a1f73d43ce3e))
862
+ # [3.0.0-alpha.7](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@3.0.0-alpha.5...@reventlessdev/reventless-spec@3.0.0-alpha.7) (2026-03-08)
863
+
864
+ ### Bug Fixes
865
+
866
+ * remove 26 Obj.magic usages, improve type safety across codebase ([ebb8925](https://github.com/ReventlessDev/reventless-core/commit/ebb8925b760a0f070b1aaf3ef2d4bf3fdc7282a3))
867
+ ### Features
868
+
869
+ * add AutomationSlice component (TODO list pattern) ([4642688](https://github.com/ReventlessDev/reventless-core/commit/46426884727aff74db33b9289feca9878b0e3ed9))
870
+ * add TranslationSlice components with docs and webhook backlog plan ([7362a8f](https://github.com/ReventlessDev/reventless-core/commit/7362a8f26bca2eaad9d99488ec597c426635659d))
871
+ * migrate logging to Effect built-in logger and provide RequestContext ([e9ec682](https://github.com/ReventlessDev/reventless-core/commit/e9ec6822ea924fc1561bfd886e4232cb5e2a8250))
872
+ * replace explicit queryMode with automatic schema-driven DCB query construction ([8df4350](https://github.com/ReventlessDev/reventless-core/commit/8df4350c37f1f15678f4796f229647eaeb3e8222))
873
+ # [3.0.0-alpha.6](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@3.0.0-alpha.5...@reventlessdev/reventless-spec@3.0.0-alpha.6) (2026-03-08)
874
+
875
+ ### Bug Fixes
876
+
877
+ * remove 26 Obj.magic usages, improve type safety across codebase ([ebb8925](https://github.com/ReventlessDev/reventless-core/commit/ebb8925b760a0f070b1aaf3ef2d4bf3fdc7282a3))
878
+ ### Features
879
+
880
+ * add AutomationSlice component (TODO list pattern) ([4642688](https://github.com/ReventlessDev/reventless-core/commit/46426884727aff74db33b9289feca9878b0e3ed9))
881
+ * add TranslationSlice components with docs and webhook backlog plan ([7362a8f](https://github.com/ReventlessDev/reventless-core/commit/7362a8f26bca2eaad9d99488ec597c426635659d))
882
+ * migrate logging to Effect built-in logger and provide RequestContext ([e9ec682](https://github.com/ReventlessDev/reventless-core/commit/e9ec6822ea924fc1561bfd886e4232cb5e2a8250))
883
+ # [3.0.0-alpha.5](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@3.0.0-alpha.4...@reventlessdev/reventless-spec@3.0.0-alpha.5) (2026-03-03)
884
+
885
+ ### Features
886
+
887
+ * **api:** implement Api component with GraphQL fragment generation and schema stitching ([c882d3a](https://github.com/ReventlessDev/reventless-core/commit/c882d3aae8722cf6cbe9b4fbf9518d9f434ce06a))
888
+ # [3.0.0-alpha.4](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@3.0.0-alpha.3...@reventlessdev/reventless-spec@3.0.0-alpha.4) (2026-03-02)
889
+
890
+ **Note:** Version bump only for package @reventlessdev/reventless-spec
891
+
892
+ # [3.0.0-alpha.3](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@3.0.0-alpha.2...@reventlessdev/reventless-spec@3.0.0-alpha.3) (2026-03-02)
893
+
894
+ **Note:** Version bump only for package @reventlessdev/reventless-spec
895
+
896
+ # [3.0.0-alpha.2](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@3.0.0-alpha.1...@reventlessdev/reventless-spec@3.0.0-alpha.2) (2026-03-01)
897
+
898
+ * feat(reventless-spec)!: swap namespaces — spec→Reventless, core→ReventlessCore ([0fcf24e](https://github.com/ReventlessDev/reventless-core/commit/0fcf24e3fc1dcc88e9ee741dc99eb7bd726f9fd7))
899
+ ### Features
900
+
901
+ * **rescript-effect:** Effect library bindings + stream-based framework handlers ([#30](https://github.com/ReventlessDev/reventless-core/issues/30)) ([f2ca5cf](https://github.com/ReventlessDev/reventless-core/commit/f2ca5cf3d56d66a9f4ab56b543d7bf82e48448dd))
902
+
903
+ ### BREAKING CHANGES
904
+
905
+ * ReventlessSpec namespace renamed to Reventless; the reventless-core
906
+ package namespace renamed from Reventless to ReventlessCore.
907
+ All usages of ReventlessSpec.* must be updated to Reventless.*;
908
+ all usages of Reventless.* (core) in dependent packages must be updated to ReventlessCore.*
909
+ # [3.0.0-alpha.1](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@3.0.0-alpha.0...@reventlessdev/reventless-spec@3.0.0-alpha.1) (2026-02-14)
910
+
911
+ **Note:** Version bump only for package @reventlessdev/reventless-spec
912
+
913
+ # [3.0.0-alpha.0](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@2.3.1-alpha.2...@reventlessdev/reventless-spec@3.0.0-alpha.0) (2026-02-13)
914
+
915
+ * refactor!: remove AWS dependencies from reventless core package ([bc2c4af](https://github.com/ReventlessDev/reventless-core/commit/bc2c4aff85af4f83b9d131584845260b060db647))
916
+
917
+ ### BREAKING CHANGES
918
+
919
+ * Builder functions now require explicit resourceNaming and runtimeOps parameters
920
+ ## [2.3.1-alpha.2](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@2.3.1-alpha.1...@reventlessdev/reventless-spec@2.3.1-alpha.2) (2026-02-12)
921
+
922
+ **Note:** Version bump only for package @reventlessdev/reventless-spec
923
+
924
+ ## [2.3.1-alpha.1](https://github.com/ReventlessDev/reventless-core/compare/@reventlessdev/reventless-spec@2.3.1-alpha.0...@reventlessdev/reventless-spec@2.3.1-alpha.1) (2026-02-12)
925
+
926
+ **Note:** Version bump only for package @reventlessdev/reventless-spec
927
+
928
+ ## 2.3.1-alpha.0 (2026-02-12)
929
+ ### Bug Fixes
930
+
931
+ * **publish:** add publishConfig to packages for GitHub Package Registry ([987a00a](https://github.com/ReventlessDev/reventless-core/commit/987a00af049fed112aa91fd53d8fad719cd80c94))