@reventlessdev/reventless-local 3.0.0-alpha.274 → 3.0.0-alpha.275

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,14 @@
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.275 (2026-10-01)
7
+
8
+ ### Features
9
+
10
+ * **spec, aws, core, local:** an app declares its environments, and every deployment records its commit ([c7cc925](https://github.com/ReventlessDev/reventless-core/commit/c7cc92573e97742b681a9000cea0bdfd6e9a33fc))
11
+ * **spec, core, gwt, ppx:** a command acts only on what its caller owns ([2636f0e](https://github.com/ReventlessDev/reventless-core/commit/2636f0ee44797ee2c0b0c40a7107cf306113173f))
12
+
13
+
6
14
  # 3.0.0-alpha.274 (2026-09-29)
7
15
 
8
16
  **Note:** Version bump only for package @reventlessdev/reventless-local
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reventlessdev/reventless-local",
3
- "version": "3.0.0-alpha.274",
3
+ "version": "3.0.0-alpha.275",
4
4
  "description": "Local platform for Reventless (in-memory or SQLite backend, for development and testing without AWS)",
5
5
  "license": "Apache-2.0",
6
6
  "bin": {
@@ -36,17 +36,17 @@
36
36
  "ws": "^8.18.0",
37
37
  "@reventlessdev/rescript-effect": "0.1.0-alpha.34",
38
38
  "@reventlessdev/rescript-graphql-yoga": "1.0.0-alpha.29",
39
- "@reventlessdev/rescript-jest": "1.0.0-alpha.11",
39
+ "@reventlessdev/rescript-mcp-sdk": "1.0.0-alpha.23",
40
40
  "@reventlessdev/rescript-node": "2.0.0-alpha.20",
41
+ "@reventlessdev/rescript-jest": "1.0.0-alpha.11",
41
42
  "@reventlessdev/rescript-pulumi-pulumi": "2.3.0-alpha.22",
42
- "@reventlessdev/rescript-mcp-sdk": "1.0.0-alpha.23",
43
- "@reventlessdev/reventless-graphql-server": "1.0.0-alpha.132",
44
- "@reventlessdev/reventless-core": "3.0.0-alpha.284",
45
- "@reventlessdev/reventless-gwt": "1.0.0-alpha.231",
46
- "@reventlessdev/reventless-postgres": "3.0.0-alpha.148",
47
- "@reventlessdev/reventless-infra": "3.0.0-alpha.182",
43
+ "@reventlessdev/reventless-graphql-server": "1.0.0-alpha.133",
44
+ "@reventlessdev/reventless-gwt": "1.0.0-alpha.232",
45
+ "@reventlessdev/reventless-infra": "3.0.0-alpha.183",
46
+ "@reventlessdev/reventless-core": "3.0.0-alpha.285",
47
+ "@reventlessdev/reventless-postgres": "3.0.0-alpha.149",
48
48
  "@reventlessdev/reventless-seed": "1.0.0-alpha.31",
49
- "@reventlessdev/reventless-spec": "3.0.0-alpha.154"
49
+ "@reventlessdev/reventless-spec": "3.0.0-alpha.155"
50
50
  },
51
51
  "devDependencies": {
52
52
  "rescript": "12.3.1",
package/src/Platform.res CHANGED
@@ -1273,6 +1273,7 @@ module MakeWithConfig = (
1273
1273
  ~pluginOutputs=?,
1274
1274
  ) => {
1275
1275
  let environment = Pulumi.Pulumi.getStackName()
1276
+ let provenance = Reventless.DeploymentProvenance.current()
1276
1277
  builtInfos->Array.forEachWithIndex((info, i) => {
1277
1278
  switch ReventlessCore.Plugin_Helpers.onPluginDeployedHook.contents {
1278
1279
  | Some(hook) =>
@@ -1289,6 +1290,8 @@ module MakeWithConfig = (
1289
1290
  deployedAt: Date.make()->Date.toISOString,
1290
1291
  actor: "local",
1291
1292
  deploymentId: Date.make()->Date.toISOString,
1293
+ commit: ?provenance.commit,
1294
+ dirty: ?(provenance.dirty ? Some(true) : None),
1292
1295
  kind: ?info.kind,
1293
1296
  displayName: ?info.displayName,
1294
1297
  vendor: ?info.vendor,
@@ -43,6 +43,7 @@ import * as PluginBehavior$ReventlessCore from "@reventlessdev/reventless-core/s
43
43
  import * as Plugin_Helpers$ReventlessCore from "@reventlessdev/reventless-core/src/plugin/component/Plugin_Helpers.res.mjs";
44
44
  import * as Plugin_Builder$ReventlessLocal from "./components/Plugin_Builder.res.mjs";
45
45
  import * as Counter_Builder$ReventlessLocal from "./components/Counter_Builder.res.mjs";
46
+ import * as DeploymentProvenance$Reventless from "@reventlessdev/reventless-spec/src/types/DeploymentProvenance.res.mjs";
46
47
  import * as GraphQL_Stitcher$ReventlessCore from "@reventlessdev/reventless-core/src/components/Api/GraphQL_Stitcher.res.mjs";
47
48
  import * as LocalPluginSpec$ReventlessLocal from "./adapter/LocalPluginSpec.res.mjs";
48
49
  import * as NoEventMappings$ReventlessInfra from "@reventlessdev/reventless-infra/src/types/NoEventMappings.res.mjs";
@@ -1069,6 +1070,7 @@ function MakeWithConfig(Config) {
1069
1070
  }));
1070
1071
  let firePluginDeployedHooks = (builtInfos, pluginOutputs) => {
1071
1072
  let environment = Pulumi.getStack();
1073
+ let provenance = DeploymentProvenance$Reventless.current();
1072
1074
  builtInfos.forEach((info, i) => {
1073
1075
  let hook = Plugin_Helpers$ReventlessCore.onPluginDeployedHook.contents;
1074
1076
  if (hook === undefined) {
@@ -1081,6 +1083,8 @@ function MakeWithConfig(Config) {
1081
1083
  let deployedInfo_version = info.version;
1082
1084
  let deployedInfo_deployedAt = new Date().toISOString();
1083
1085
  let deployedInfo_deploymentId = new Date().toISOString();
1086
+ let deployedInfo_commit = provenance.commit;
1087
+ let deployedInfo_dirty = provenance.dirty ? true : undefined;
1084
1088
  let deployedInfo_kind = info.kind;
1085
1089
  let deployedInfo_displayName = info.displayName;
1086
1090
  let deployedInfo_vendor = info.vendor;
@@ -1100,6 +1104,8 @@ function MakeWithConfig(Config) {
1100
1104
  deployedAt: deployedInfo_deployedAt,
1101
1105
  actor: "local",
1102
1106
  deploymentId: deployedInfo_deploymentId,
1107
+ commit: deployedInfo_commit,
1108
+ dirty: deployedInfo_dirty,
1103
1109
  kind: deployedInfo_kind,
1104
1110
  displayName: deployedInfo_displayName,
1105
1111
  vendor: deployedInfo_vendor,
@@ -2822,6 +2828,7 @@ function Make($star) {
2822
2828
  }));
2823
2829
  let firePluginDeployedHooks = (builtInfos, pluginOutputs) => {
2824
2830
  let environment = Pulumi.getStack();
2831
+ let provenance = DeploymentProvenance$Reventless.current();
2825
2832
  builtInfos.forEach((info, i) => {
2826
2833
  let hook = Plugin_Helpers$ReventlessCore.onPluginDeployedHook.contents;
2827
2834
  if (hook === undefined) {
@@ -2834,6 +2841,8 @@ function Make($star) {
2834
2841
  let deployedInfo_version = info.version;
2835
2842
  let deployedInfo_deployedAt = new Date().toISOString();
2836
2843
  let deployedInfo_deploymentId = new Date().toISOString();
2844
+ let deployedInfo_commit = provenance.commit;
2845
+ let deployedInfo_dirty = provenance.dirty ? true : undefined;
2837
2846
  let deployedInfo_kind = info.kind;
2838
2847
  let deployedInfo_displayName = info.displayName;
2839
2848
  let deployedInfo_vendor = info.vendor;
@@ -2853,6 +2862,8 @@ function Make($star) {
2853
2862
  deployedAt: deployedInfo_deployedAt,
2854
2863
  actor: "local",
2855
2864
  deploymentId: deployedInfo_deploymentId,
2865
+ commit: deployedInfo_commit,
2866
+ dirty: deployedInfo_dirty,
2856
2867
  kind: deployedInfo_kind,
2857
2868
  displayName: deployedInfo_displayName,
2858
2869
  vendor: deployedInfo_vendor,
@@ -18,6 +18,8 @@ let acceptedResultChannel = CommandTopic$ReventlessCore.acceptedResultChannel;
18
18
 
19
19
  let rejectedResultChannel = CommandTopic$ReventlessCore.rejectedResultChannel;
20
20
 
21
+ let ownershipRefusal = CommandTopic$ReventlessCore.ownershipRefusal;
22
+
21
23
  let reportAccepted = CommandTopic$ReventlessCore.reportAccepted;
22
24
 
23
25
  let reportRejected = CommandTopic$ReventlessCore.reportRejected;
@@ -51,6 +53,7 @@ export {
51
53
  fireCommandOutcome,
52
54
  acceptedResultChannel,
53
55
  rejectedResultChannel,
56
+ ownershipRefusal,
54
57
  reportAccepted,
55
58
  reportRejected,
56
59
  commandOutcomeToJson,