@mindexec/cli 0.2.311 → 0.2.313

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindexec/cli",
3
- "version": "0.2.311",
3
+ "version": "0.2.313",
4
4
  "description": "MindExec local runtime and bridge CLI",
5
5
  "main": "server.js",
6
6
  "type": "module",
@@ -5,7 +5,7 @@
5
5
  const DEBUG = false;
6
6
  const FPS_DEBUG = false;
7
7
  const FRAME_PERF_DEBUG = false;
8
- const MINDMAP_CORE_BUILD_ID = '20260621-nodeview-host-policy-v794';
8
+ const MINDMAP_CORE_BUILD_ID = '20260621-image-status-motion-v797';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -517,6 +517,85 @@
517
517
  return false;
518
518
  }
519
519
 
520
+ function isCssImageElementReady(cssObject) {
521
+ const mediaEl = cssObject?.element?.querySelector?.('img') || null;
522
+ if (!mediaEl) {
523
+ return false;
524
+ }
525
+
526
+ const mediaReady = String(mediaEl.dataset?.mediaReady || '').trim();
527
+ const naturalWidth = Number(mediaEl.naturalWidth || mediaEl.width || 0);
528
+ const naturalHeight = Number(mediaEl.naturalHeight || mediaEl.height || 0);
529
+ return mediaReady === '1' ||
530
+ (
531
+ mediaEl.complete === true &&
532
+ naturalWidth > 0 &&
533
+ naturalHeight > 0 &&
534
+ getComputedStyle(mediaEl).opacity !== '0'
535
+ );
536
+ }
537
+
538
+ function isVisibleImageStatusWebglDependency(entry) {
539
+ const model = entry?.model || {};
540
+ const contentType = String(model.contentType ?? model.ContentType ?? '').trim().toLowerCase();
541
+ if (contentType !== 'image') {
542
+ return false;
543
+ }
544
+
545
+ const body = entry?.bodyMesh || entry?.glObject?.getObjectByName?.('body') || null;
546
+ const bodyUserData = body?.userData || {};
547
+ const metadata = model.metadata ?? model.Metadata ?? {};
548
+ const hasImageError = !!(
549
+ String(metadata?.ImageGenerationError || '').trim() ||
550
+ String(bodyUserData.failedImageRenderKey || '').trim() ||
551
+ String(model._assetRefreshState || '').trim().toLowerCase() === 'failed'
552
+ );
553
+ const cssImageReady = isCssImageElementReady(entry?.cssObject);
554
+ const bridgeBodyVisible = model._showImageBodyInCssMode === true && cssImageReady !== true;
555
+ return hasImageError || bridgeBodyVisible;
556
+ }
557
+
558
+ function hasVisibleImageStatusWebglMotionDependency(module) {
559
+ const nodeObjectsById = module?.nodeObjectsById || null;
560
+ if (!(nodeObjectsById instanceof Map)) {
561
+ return false;
562
+ }
563
+
564
+ const visibleIds = module._visibleIds instanceof Set && module._visibleIds.size > 0
565
+ ? module._visibleIds
566
+ : (module._prevVisibleIds instanceof Set && module._prevVisibleIds.size > 0
567
+ ? module._prevVisibleIds
568
+ : null);
569
+ if (!visibleIds) {
570
+ return false;
571
+ }
572
+
573
+ const cacheKey = [
574
+ Number(module._visibilityVersion || 0),
575
+ Number(module.lodRenderer?._lodVisualEpoch || 0),
576
+ Number(visibleIds.size || 0),
577
+ Number(module.frameCount || 0)
578
+ ].join('|');
579
+ if (module._visibleImageStatusWebglMotionDependencyCache?.key === cacheKey) {
580
+ return module._visibleImageStatusWebglMotionDependencyCache.value === true;
581
+ }
582
+
583
+ let hasDependency = false;
584
+ visibleIds.forEach(nodeId => {
585
+ if (hasDependency === true) {
586
+ return;
587
+ }
588
+
589
+ hasDependency = isVisibleImageStatusWebglDependency(nodeObjectsById.get(nodeId)) === true;
590
+ });
591
+
592
+ module._visibleImageStatusWebglMotionDependencyCache = {
593
+ key: cacheKey,
594
+ value: hasDependency
595
+ };
596
+ return hasDependency;
597
+ }
598
+
520
599
  function isLocalSnapGridOnlyTheme(module) {
521
600
  return module?.currentThemeObject?.userData?.localSnapGrid === true;
522
601
  }
@@ -785,6 +864,10 @@
785
864
  return false;
786
865
  }
787
866
 
867
+ if (hasVisibleImageStatusWebglMotionDependency(module) === true) {
868
+ return false;
869
+ }
870
+
788
871
  const renderer = module.cssRenderer || null;
789
872
  const camera = module.camera || null;
790
873
  const flags = options.renderDebugFlags || module.renderDebugFlags || getRenderDebugFlagsSnapshot();
@@ -6213,6 +6296,10 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6213
6296
  return false;
6214
6297
  }
6215
6298
 
6299
+ if (hasVisibleImageStatusWebglMotionDependency(this) === true) {
6300
+ return false;
6301
+ }
6302
+
6216
6303
  const currentX = Number(this.camera.position?.x || 0);
6217
6304
  const currentY = Number(this.camera.position?.y || 0);
6218
6305
  const currentZ = Number(this.camera.position?.z || 1);
@@ -9095,7 +9182,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
9095
9182
  Number(this._passiveOverlayResumeAt || 0) > frameStart;
9096
9183
  const shouldSuppressPassiveOverlayDuringCameraMotion =
9097
9184
  useTextOverlayV2 &&
9098
- hasPassiveDomOverlaySurface &&
9185
+ (hasPassiveDomOverlaySurface || hasVisibleOverlayV2Card === true) &&
9099
9186
  (isPassiveOverlayIdleDelayActive ||
9100
9187
  this.isZooming === true ||
9101
9188
  this.isPanning === true ||
@@ -6481,6 +6481,7 @@ window.MindMapInteractions = (function () {
6481
6481
  const target = targetOverride || e.target;
6482
6482
  setBrowserSelectionLock(true, 'pan', { clearSelection: false, cssClass: false });
6483
6483
  module.isPanning = true;
6484
+ setPassiveOverlaySuppressedDuringDrag(module, true);
6484
6485
  notifyMindCanvasSurfaceInteraction('pan-start');
6485
6486
  module.lastMousePos = { x: e.clientX, y: e.clientY };
6486
6487
  module._lastPanInputAt = performance.now();
@@ -51,7 +51,7 @@
51
51
  // ▲▲▲ [Usage] ▲▲▲
52
52
 
53
53
  // Procedural line rendering settings
54
- const LOD_RENDERER_BUILD_ID = '20260621-nodeview-host-policy-v794';
54
+ const LOD_RENDERER_BUILD_ID = '20260621-image-status-motion-v797';
55
55
  const DirtyKind = Object.freeze({
56
56
  ResidentFullRebuild: 'resident-full-rebuild',
57
57
  ResidentPatch: 'resident-patch',
@@ -3325,6 +3325,12 @@
3325
3325
  return false;
3326
3326
  }
3327
3327
 
3328
+ if (module?._suppressPassiveDomOverlayDuringZoom === true ||
3329
+ module?.isPanning === true ||
3330
+ module?.isZooming === true) {
3331
+ return false;
3332
+ }
3333
+
3328
3334
  if (contentChanged || forceRefresh || state.dirtyLayout === true) {
3329
3335
  return false;
3330
3336
  }
@@ -4083,10 +4089,6 @@
4083
4089
  !normalizeId(state.editing?.nodeId);
4084
4090
  module._suppressPassiveDomOverlayDuringZoom = nextSuppressed;
4085
4091
 
4086
- if (wasSuppressed === nextSuppressed) {
4087
- return nextSuppressed;
4088
- }
4089
-
4090
4092
  if (nextSuppressed) {
4091
4093
  state.cards.forEach(card => {
4092
4094
  if (!card || card.style.display === 'none') {
@@ -4102,6 +4104,14 @@
4102
4104
  if (entry) {
4103
4105
  resumeSource(entry);
4104
4106
  }
4107
+
4108
+ const isPassiveSelectionCard =
4109
+ String(card.dataset?.overlayMode || '') === 'selection' &&
4110
+ String(card.dataset?.overlayInteractive || '') !== 'true' &&
4111
+ String(card.dataset?.sourceKind || '') !== 'live';
4112
+ if (isPassiveSelectionCard) {
4113
+ hideCard(card);
4114
+ }
4105
4115
  });
4106
4116
  clearLayerTransform(layer);
4107
4117
  layer.style.display = 'none';
@@ -4111,6 +4121,10 @@
4111
4121
  return true;
4112
4122
  }
4113
4123
 
4124
+ if (wasSuppressed === nextSuppressed) {
4125
+ return nextSuppressed;
4126
+ }
4127
+
4114
4128
  state.dirtyLayout = true;
4115
4129
  module._overlayDirty = true;
4116
4130
  module._lastOverlayKey = '';
@@ -7,8 +7,8 @@
7
7
  <title>MindExec | Business Execution OS for solo builders</title>
8
8
  <meta name="description" content="MindExec is an AI business execution OS for solo builders who want to turn notes, research, assets, and repeatable execution Skills into revenue-producing work." />
9
9
  <base href="/" />
10
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260621-nodeview-host-policy-v794" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260621-nodeview-host-policy-v794" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260621-image-status-motion-v797" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260621-image-status-motion-v797" />
12
12
  <!-- ??좎뜦堉??Font Awesome (local) ??좎뜦堉??-->
13
13
  <link rel="stylesheet" href="_content/MindExecution.Shared/lib/font-awesome/css/all.min.css" />
14
14
  <!-- ??좎뜦堉??-->
@@ -579,7 +579,7 @@
579
579
  }
580
580
 
581
581
  const base = '_content/MindExecution.Shared/js/';
582
- const scriptVersion = '20260621-nodeview-host-policy-v794';
582
+ const scriptVersion = '20260621-image-status-motion-v797';
583
583
  const scriptUrl = (script) => `${base}${script}?v=${scriptVersion}`;
584
584
  console.log(`[Script Loader] Shared JS version: ${scriptVersion}`);
585
585
  const criticalScripts = [
@@ -1,5 +1,5 @@
1
1
  self.assetsManifest = {
2
- "version": "yv2PsIsP",
2
+ "version": "wFN1UJXT",
3
3
  "assets": [
4
4
  {
5
5
  "hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
@@ -78,7 +78,7 @@
78
78
  "url": "_content/MindExecution.Shared/js/marked.min.js"
79
79
  },
80
80
  {
81
- "hash": "sha256-wKghwA30YN9dfi92pXm49piiFewBTKC3qbNbi5Xnd+k=",
81
+ "hash": "sha256-thTfHQlQm3nsiP4n/lNhLoVtAUv4rw/dsFDZHjD3yLE=",
82
82
  "url": "_content/MindExecution.Shared/js/mind-map-core.js"
83
83
  },
84
84
  {
@@ -106,7 +106,7 @@
106
106
  "url": "_content/MindExecution.Shared/js/mind-map-glow-shader.js"
107
107
  },
108
108
  {
109
- "hash": "sha256-iqbrsttHQqhuGvTIj1yVbjF79M218kbqXCZ3R1iyg/Y=",
109
+ "hash": "sha256-jI85N38y4L0tbjmhtbJ4zGwVRI90TCa570Z8h1yA6i0=",
110
110
  "url": "_content/MindExecution.Shared/js/mind-map-interactions.js"
111
111
  },
112
112
  {
@@ -114,7 +114,7 @@
114
114
  "url": "_content/MindExecution.Shared/js/mind-map-lod-plan-worker.js"
115
115
  },
116
116
  {
117
- "hash": "sha256-x/0q02ck7cYzpzM8Imv2OIKtGY/o5/k5LyoVPCU5Xc0=",
117
+ "hash": "sha256-sLOCNMHkGa+Z4ZTEWKFBTFnBLy02dJKqoEqE2/kvBkg=",
118
118
  "url": "_content/MindExecution.Shared/js/mind-map-lod-renderer.js"
119
119
  },
120
120
  {
@@ -154,7 +154,7 @@
154
154
  "url": "_content/MindExecution.Shared/js/mind-map-text-lod-system.js"
155
155
  },
156
156
  {
157
- "hash": "sha256-7wG4IolMJjOrSd1bOHKkXQ5t+Kz53EVo0hnmWfFY+xI=",
157
+ "hash": "sha256-sZTTl62peGAqDd9+m/YczR9wkdC+HObxfPq019dwLDA=",
158
158
  "url": "_content/MindExecution.Shared/js/mind-map-text-overlay-v2.js"
159
159
  },
160
160
  {
@@ -834,7 +834,7 @@
834
834
  "url": "image-manifest.json"
835
835
  },
836
836
  {
837
- "hash": "sha256-1ogFlgItkavFXyCr6MK610wsv1X0dpjib/iK1tVMs5k=",
837
+ "hash": "sha256-7SMiDFZNZ7teL59KIbKhRhiR0+OKDVx8zX33YhGTeq4=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: yv2PsIsP */
1
+ /* Manifest version: wFN1UJXT */
2
2
  // Hosted deployments should prefer the network over stale offline caches.
3
3
  // This service worker immediately clears old Blazor offline caches and unregisters itself.
4
4