@moinulmoin/eden 0.11.0 → 0.11.1

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/README.md CHANGED
@@ -12,15 +12,15 @@ If you already have an Eve project, start with `eden deploy`.
12
12
  Use any one of these package managers:
13
13
 
14
14
  ```sh
15
- npm install --global @moinulmoin/eden@0.11.0
15
+ npm install --global @moinulmoin/eden@0.11.1
16
16
  ```
17
17
 
18
18
  ```sh
19
- pnpm add --global @moinulmoin/eden@0.11.0
19
+ pnpm add --global @moinulmoin/eden@0.11.1
20
20
  ```
21
21
 
22
22
  ```sh
23
- bun add --global @moinulmoin/eden@0.11.0
23
+ bun add --global @moinulmoin/eden@0.11.1
24
24
  ```
25
25
 
26
26
  Then confirm the CLI is available:
@@ -194,6 +194,24 @@ async function readInstalledManifest(snapshotRoot, packageName) {
194
194
  return undefined;
195
195
  }
196
196
  }
197
+ /**
198
+ * Eve `1.0.0-rc.6` and later refuse to start a session unless the World
199
+ * admits start Hooks atomically; earlier prereleases of 1.0.0 do not ask.
200
+ */
201
+ function eveRequiresAtomicStartHook(version) {
202
+ const match = typeof version === "string"
203
+ ? /^(\d+)\.(\d+)\.(\d+)(?:-([0-9A-Za-z.-]+))?$/u.exec(version)
204
+ : null;
205
+ if (match === null)
206
+ return false;
207
+ const [major, minor, patch] = [Number(match[1]), Number(match[2]), Number(match[3])];
208
+ if (major !== 1 || minor !== 0 || patch !== 0)
209
+ return major >= 1;
210
+ if (match[4] === undefined)
211
+ return true;
212
+ const rc = /^rc\.(\d+)$/u.exec(match[4]);
213
+ return rc !== null && Number(rc[1]) >= 6;
214
+ }
197
215
  /**
198
216
  * Fails deploy/preflight when a known durable World would trip Eve's runtime
199
217
  * World-compatibility rejection. Unreadable manifests
@@ -204,6 +222,13 @@ async function checkEveWorldPairing(candidate, world) {
204
222
  world !== "@moinulmoin/eden-world-cloudflare")
205
223
  return undefined;
206
224
  const eveManifest = await readInstalledManifest(candidate.snapshotRoot, "eve");
225
+ const worldManifest = await readInstalledManifest(candidate.snapshotRoot, world);
226
+ if (world === "@moinulmoin/eden-world-cloudflare" &&
227
+ worldManifest !== undefined &&
228
+ eveRequiresAtomicStartHook(eveManifest?.version) &&
229
+ worldManifest.eden?.capabilities?.atomicStartHook !== true) {
230
+ return check("EVE_WORLD_PAIRING", "failed", `Eve ${eveManifest?.version} needs a World with atomic start hooks, and the installed ${world} ${worldManifest.version ?? "(unknown version)"} does not have them; every new session would fail with HTTP 500.`, `Install ${world}@0.11.1 or later; see docs/troubleshooting.md.`);
231
+ }
207
232
  const expectedRange = eveManifest === undefined
208
233
  ? undefined
209
234
  : [
@@ -215,7 +240,6 @@ async function checkEveWorldPairing(candidate, world) {
215
240
  .find((value) => typeof value === "string" && value.trim().length > 0);
216
241
  if (expectedRange === undefined)
217
242
  return undefined;
218
- const worldManifest = await readInstalledManifest(candidate.snapshotRoot, world);
219
243
  const declared = worldManifest === undefined
220
244
  ? undefined
221
245
  : ["@workflow/core", "@workflow/world"]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@moinulmoin/eden",
3
- "version": "0.11.0",
3
+ "version": "0.11.1",
4
4
  "description": "Deploy existing Eve projects to your own Cloudflare account.",
5
5
  "keywords": [
6
6
  "ai",
@@ -32,7 +32,7 @@
32
32
  "NOTICE"
33
33
  ],
34
34
  "dependencies": {
35
- "@moinulmoin/eden-runtime-cloudflare": "0.11.0",
35
+ "@moinulmoin/eden-runtime-cloudflare": "0.11.1",
36
36
  "wrangler": "4.147.0"
37
37
  },
38
38
  "devDependencies": {