@volter/editor-blender 0.1.138 → 0.1.140

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.
@@ -362,6 +362,13 @@ async function openBoundModelDocument(
362
362
  try {
363
363
  publish();
364
364
  await started;
365
+ } catch (error) {
366
+ // A session whose start failed keeps that failure and never starts. Discard it, so that
367
+ // "Retry opening" makes a new session and a new worker; without this every retry awaited the
368
+ // same failed start. A refusal that is not a failed start (another document holds the
369
+ // session) leaves the session alone: it is someone else's.
370
+ if (session.startFailed && runtime === session) terminateBlenderRuntime();
371
+ throw error;
365
372
  } finally {
366
373
  if (modelStartup === starting) modelStartup = null;
367
374
  }
@@ -1351,7 +1358,14 @@ export async function handleBlenderCommand(cmd: {
1351
1358
  requestedDocument !== undefined
1352
1359
  ? requestedDocument
1353
1360
  : (shown ?? DEFAULT_BLENDER_DOCUMENT);
1354
- return { ok: true, data: { ...(await session.start(project!, document)) } };
1361
+ try {
1362
+ return { ok: true, data: { ...(await session.start(project!, document)) } };
1363
+ } catch (error) {
1364
+ // As the document's own open does: a session whose start failed is discarded, so the
1365
+ // next `blender-start` makes a new one instead of awaiting the same failure.
1366
+ if (session.startFailed && runtime === session) terminateBlenderRuntime();
1367
+ throw error;
1368
+ }
1355
1369
  }
1356
1370
  case 'blender-execute': {
1357
1371
  // THROUGH THE IN-PAGE DOOR, not `session.execute` beside it — the same
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@volter/editor-blender",
3
3
  "author": "Volter AI, Inc.",
4
4
  "license": "AGPL-3.0-only AND GPL-3.0-or-later",
5
- "version": "0.1.138",
5
+ "version": "0.1.140",
6
6
  "publishConfig": {
7
7
  "access": "public"
8
8
  },
@@ -72,15 +72,15 @@
72
72
  },
73
73
  "dependencies": {
74
74
  "@modelcontextprotocol/sdk": "1.32.1",
75
- "@volter/blender-engine": "0.1.136",
76
- "@volter/editor-threejs": "0.5.199",
75
+ "@volter/blender-engine": "0.1.138",
76
+ "@volter/editor-threejs": "0.5.201",
77
77
  "zod": "^4.3.6",
78
78
  "@fortawesome/free-solid-svg-icons": "^7.2.0"
79
79
  },
80
80
  "peerDependencies": {
81
- "@volter/editor-live": "0.5.199",
82
- "@volter/editor-project": "0.5.199",
83
- "@volter/editor-sdk": "0.5.199",
81
+ "@volter/editor-live": "0.5.201",
82
+ "@volter/editor-project": "0.5.201",
83
+ "@volter/editor-sdk": "0.5.201",
84
84
  "react": "^19.0.0",
85
85
  "react-dom": "^19.0.0",
86
86
  "three": "^0.180.0",