@mindexec/cli 0.2.292 → 0.2.293

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.292",
3
+ "version": "0.2.293",
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 = '20260620-css3d-flat-pan-v749';
8
+ const MINDMAP_CORE_BUILD_ID = '20260620-css3d-flat-pan-v750';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -675,6 +675,64 @@
675
675
  return true;
676
676
  }
677
677
 
678
+ function shouldDeferFullResWebglForCss3dCameraMotion(module, options = {}) {
679
+ if (!module ||
680
+ module.isLoading === true ||
681
+ module.isDraggingNode === true ||
682
+ module.isDraggingMultipleNodes === true ||
683
+ module.isResizing === true ||
684
+ module.isWindowResizing === true ||
685
+ module.isSelecting === true) {
686
+ return false;
687
+ }
688
+
689
+ const isCameraNavigationActive =
690
+ options.isCameraNavigationOnlyInteractiveFrame === true ||
691
+ module.isPanning === true ||
692
+ module.isZooming === true ||
693
+ module._cameraMovingThisFrame === true;
694
+ if (isCameraNavigationActive !== true) {
695
+ return false;
696
+ }
697
+
698
+ if (options.isFullResMode === false ||
699
+ module.lodRenderer?.isInLODMode === true ||
700
+ options.isNodeInteracting === true ||
701
+ options.hasNonCameraNavigationForcedUpdate === true) {
702
+ return false;
703
+ }
704
+
705
+ const renderer = module.cssRenderer || null;
706
+ const camera = module.camera || null;
707
+ const flags = options.renderDebugFlags || module.renderDebugFlags || getRenderDebugFlagsSnapshot();
708
+ return !!(
709
+ flags.enableCss3d !== false &&
710
+ renderer &&
711
+ camera &&
712
+ canUseFlatCss3dCameraMotion(module, renderer, camera, flags) === true
713
+ );
714
+ }
715
+
716
+ function markFullResWebglDeferredForCss3dCameraMotion(module, reason = 'fullres-css3d-camera-motion') {
717
+ if (!module) {
718
+ return false;
719
+ }
720
+
721
+ module._clearWebglCanvasCameraTransform?.();
722
+ module._webglCameraMotionDeferred = true;
723
+ module._themeCameraMotionDeferred = true;
724
+ module._lastWebglRenderInfo = {
725
+ calls: 0,
726
+ triangles: 0,
727
+ points: 0,
728
+ lines: 0,
729
+ skipped: true,
730
+ webglDeferredForCss3dCameraMotion: true,
731
+ reason
732
+ };
733
+ return true;
734
+ }
735
+
678
736
  function hasBusinessAutomationEdgeLayer(module) {
679
737
  return !!(
680
738
  module?._businessAutomationEdgeVisualLayer?.isConnected ||
@@ -1870,6 +1928,12 @@
1870
1928
  markWebglSurfaceFrozenForZoom(module, 'uaUltraEarlyCameraOnly');
1871
1929
  } else if (module.isZooming === true) {
1872
1930
  deferWebglBootstrapForCameraMotion(module, 'uaUltraEarlyCameraOnly');
1931
+ } else if (shouldDeferFullResWebglForCss3dCameraMotion(module, {
1932
+ isCameraNavigationOnlyInteractiveFrame: true,
1933
+ isFullResMode: true,
1934
+ renderDebugFlags
1935
+ }) === true) {
1936
+ markFullResWebglDeferredForCss3dCameraMotion(module, 'uaUltraEarlyCameraOnly');
1873
1937
  } else {
1874
1938
  module._clearWebglCanvasCameraTransform?.();
1875
1939
  module.renderer.render(module.scene, module.camera);
@@ -7440,12 +7504,19 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
7440
7504
  this._lastWebglRenderedCameraState &&
7441
7505
  this.renderer?.domElement
7442
7506
  );
7507
+ const shouldDeferFullResWebglForImmediateMotion =
7508
+ shouldDeferFullResWebglForCss3dCameraMotion(this, {
7509
+ isCameraNavigationOnlyInteractiveFrame: true,
7510
+ isFullResMode: true,
7511
+ renderDebugFlags
7512
+ }) === true;
7443
7513
  if (canReuseWebglCanvasForImmediateMotion === true) {
7444
7514
  deferContinuousThemeForCameraMotion(this);
7445
7515
  }
7446
7516
  if (this.isZooming !== true &&
7447
7517
  shouldFreezeWebglCanvasForImmediateZoom !== true &&
7448
7518
  !canReuseWebglCanvasForImmediateMotion &&
7519
+ shouldDeferFullResWebglForImmediateMotion !== true &&
7449
7520
  renderDebugFlags.enableThemeAnimation !== false &&
7450
7521
  isLocalSnapGridOnlyTheme(this) !== true &&
7451
7522
  this.currentThemeObject &&
@@ -7485,6 +7556,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
7485
7556
  markWebglSurfaceFrozenForZoom(this, 'uaVisualOnlyMotion');
7486
7557
  } else if (this.isZooming === true) {
7487
7558
  deferWebglBootstrapForCameraMotion(this, 'uaVisualOnlyMotion');
7559
+ } else if (shouldDeferFullResWebglForImmediateMotion === true) {
7560
+ markFullResWebglDeferredForCss3dCameraMotion(this, 'uaVisualOnlyMotion');
7488
7561
  } else {
7489
7562
  this._clearWebglCanvasCameraTransform();
7490
7563
  this.renderer.render(this.scene, this.camera);
@@ -7623,12 +7696,19 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
7623
7696
  this._lastWebglRenderedCameraState &&
7624
7697
  this.renderer?.domElement
7625
7698
  );
7699
+ const shouldDeferFullResWebglForStationaryMotion =
7700
+ shouldDeferFullResWebglForCss3dCameraMotion(this, {
7701
+ isCameraNavigationOnlyInteractiveFrame: true,
7702
+ isFullResMode: isFullResMode === true,
7703
+ renderDebugFlags
7704
+ }) === true;
7626
7705
  if (canReuseWebglCanvasForStationaryMotion === true) {
7627
7706
  deferContinuousThemeForCameraMotion(this);
7628
7707
  }
7629
7708
  if (this.isZooming !== true &&
7630
7709
  shouldFreezeWebglCanvasForStationaryZoom !== true &&
7631
7710
  !canReuseWebglCanvasForStationaryMotion &&
7711
+ shouldDeferFullResWebglForStationaryMotion !== true &&
7632
7712
  renderDebugFlags.enableThemeAnimation !== false &&
7633
7713
  isLocalSnapGridOnlyTheme(this) !== true &&
7634
7714
  this.currentThemeObject &&
@@ -7668,6 +7748,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
7668
7748
  markWebglSurfaceFrozenForZoom(this, 'uaStationaryVisualMotion');
7669
7749
  } else if (this.isZooming === true) {
7670
7750
  deferWebglBootstrapForCameraMotion(this, 'uaStationaryVisualMotion');
7751
+ } else if (shouldDeferFullResWebglForStationaryMotion === true) {
7752
+ markFullResWebglDeferredForCss3dCameraMotion(this, 'uaStationaryVisualMotion');
7671
7753
  } else {
7672
7754
  this._clearWebglCanvasCameraTransform();
7673
7755
  this.renderer.render(this.scene, this.camera);
@@ -8876,8 +8958,17 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
8876
8958
  isGpuParticleTheme &&
8877
8959
  !isBoardLoading &&
8878
8960
  allowContinuousThemeAnimationThisFrame === true;
8961
+ const shouldDeferFullResWebglForNormalCss3dMotion =
8962
+ shouldDeferFullResWebglForCss3dCameraMotion(this, {
8963
+ isCameraNavigationOnlyInteractiveFrame,
8964
+ isFullResMode: isFullResMode === true,
8965
+ isNodeInteracting,
8966
+ hasNonCameraNavigationForcedUpdate,
8967
+ renderDebugFlags
8968
+ }) === true;
8879
8969
  let themeAnimatedThisFrame = false;
8880
8970
  if (allowContinuousThemeAnimationThisFrame === true &&
8971
+ shouldDeferFullResWebglForNormalCss3dMotion !== true &&
8881
8972
  (isThemeAnimationEnabled || shouldForceGpuParticleAnimation) &&
8882
8973
  isLocalSnapGridOnlyTheme(this) !== true &&
8883
8974
  this.currentThemeObject &&
@@ -8951,6 +9042,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
8951
9042
  shouldUseAnimationCadenceForWebglFrame === true ||
8952
9043
  themeAnimatedThisFrame === true
8953
9044
  ) &&
9045
+ shouldDeferFullResWebglForNormalCss3dMotion !== true &&
8954
9046
  (
8955
9047
  isPureCss3dCameraMotionFrame !== true ||
8956
9048
  themeAnimatedThisFrame === true ||
@@ -8996,6 +9088,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
8996
9088
  themeAnimatedThisFrame !== true &&
8997
9089
  shouldFinalizeWebglCanvasCameraTransform !== true) {
8998
9090
  deferWebglBootstrapForCameraMotion(this, 'normalZoomCameraMotion');
9091
+ } else if (shouldDeferFullResWebglForNormalCss3dMotion === true) {
9092
+ markFullResWebglDeferredForCss3dCameraMotion(this, 'normalCss3dCameraMotion');
8999
9093
  } else {
9000
9094
  this._clearWebglCanvasCameraTransform();
9001
9095
  if (shouldHideBackgroundThemeDuringCameraNavigation) {
@@ -9021,27 +9115,48 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
9021
9115
  }
9022
9116
  }
9023
9117
  } else if (isWebglRenderEnabled) {
9024
- if (isPureCss3dCameraMotionFrame === true) {
9118
+ if (shouldDeferFullResWebglForNormalCss3dMotion === true) {
9119
+ markFullResWebglDeferredForCss3dCameraMotion(this, 'normalCss3dCameraMotion');
9120
+ } else if (isPureCss3dCameraMotionFrame === true) {
9025
9121
  this._webglCameraMotionDeferred = true;
9026
- }
9027
- const shouldFreezeWebglCanvasTransformForZoom =
9028
- shouldFreezeWebglSurfaceForZoom(this) === true;
9029
- if (isCameraNavigationOnlyInteractiveFrame === true &&
9030
- shouldFreezeWebglCanvasTransformForZoom !== true &&
9031
- canUseWebglCanvasTransformForCameraMotion(this) === true) {
9032
- usedWebglCanvasCameraTransform = this._applyWebglCanvasCameraTransform() === true;
9122
+ const shouldFreezeWebglCanvasTransformForZoom =
9123
+ shouldFreezeWebglSurfaceForZoom(this) === true;
9124
+ if (isCameraNavigationOnlyInteractiveFrame === true &&
9125
+ shouldFreezeWebglCanvasTransformForZoom !== true &&
9126
+ canUseWebglCanvasTransformForCameraMotion(this) === true) {
9127
+ usedWebglCanvasCameraTransform = this._applyWebglCanvasCameraTransform() === true;
9128
+ } else {
9129
+ this._clearWebglCanvasCameraTransform();
9130
+ }
9131
+ this._lastWebglRenderInfo = {
9132
+ calls: 0,
9133
+ triangles: 0,
9134
+ points: 0,
9135
+ lines: 0,
9136
+ skipped: true,
9137
+ webglCanvasCameraTransform: usedWebglCanvasCameraTransform || undefined,
9138
+ webglSurfaceFrozenForZoom: shouldFreezeWebglCanvasTransformForZoom || undefined
9139
+ };
9033
9140
  } else {
9034
- this._clearWebglCanvasCameraTransform();
9141
+ const shouldFreezeWebglCanvasTransformForZoom =
9142
+ shouldFreezeWebglSurfaceForZoom(this) === true;
9143
+ if (isCameraNavigationOnlyInteractiveFrame === true &&
9144
+ shouldFreezeWebglCanvasTransformForZoom !== true &&
9145
+ canUseWebglCanvasTransformForCameraMotion(this) === true) {
9146
+ usedWebglCanvasCameraTransform = this._applyWebglCanvasCameraTransform() === true;
9147
+ } else {
9148
+ this._clearWebglCanvasCameraTransform();
9149
+ }
9150
+ this._lastWebglRenderInfo = {
9151
+ calls: 0,
9152
+ triangles: 0,
9153
+ points: 0,
9154
+ lines: 0,
9155
+ skipped: true,
9156
+ webglCanvasCameraTransform: usedWebglCanvasCameraTransform || undefined,
9157
+ webglSurfaceFrozenForZoom: shouldFreezeWebglSurfaceForZoom(this) || undefined
9158
+ };
9035
9159
  }
9036
- this._lastWebglRenderInfo = {
9037
- calls: 0,
9038
- triangles: 0,
9039
- points: 0,
9040
- lines: 0,
9041
- skipped: true,
9042
- webglCanvasCameraTransform: usedWebglCanvasCameraTransform || undefined,
9043
- webglSurfaceFrozenForZoom: shouldFreezeWebglCanvasTransformForZoom || undefined
9044
- };
9045
9160
  } else if (isBoardLoading) {
9046
9161
  this._clearWebglCanvasCameraTransform();
9047
9162
  this._lastWebglRenderInfo = { calls: 0, triangles: 0, points: 0, lines: 0 };
@@ -51,7 +51,7 @@
51
51
  // ▲▲▲ [Usage] ▲▲▲
52
52
 
53
53
  // Procedural line rendering settings
54
- const LOD_RENDERER_BUILD_ID = '20260620-css3d-flat-pan-v749';
54
+ const LOD_RENDERER_BUILD_ID = '20260620-css3d-flat-pan-v750';
55
55
  const DirtyKind = Object.freeze({
56
56
  ResidentFullRebuild: 'resident-full-rebuild',
57
57
  ResidentPatch: 'resident-patch',
@@ -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=20260620-css3d-flat-pan-v749" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-css3d-flat-pan-v749" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260620-css3d-flat-pan-v750" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-css3d-flat-pan-v750" />
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 = '20260620-css3d-flat-pan-v749';
582
+ const scriptVersion = '20260620-css3d-flat-pan-v750';
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": "34tfuA2r",
2
+ "version": "Mc/DXRDi",
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-9dRYqTrnhDg0IZsxQn903CNm9U677BGsYRQp5vmq1fM=",
81
+ "hash": "sha256-I3V3gWKzxo7MOYoHmrw4xLebf6DAoBDbOKyi/Yf1ygg=",
82
82
  "url": "_content/MindExecution.Shared/js/mind-map-core.js"
83
83
  },
84
84
  {
@@ -114,7 +114,7 @@
114
114
  "url": "_content/MindExecution.Shared/js/mind-map-lod-plan-worker.js"
115
115
  },
116
116
  {
117
- "hash": "sha256-r7TMeUwMfWBuxJ6MhK0klNJY4GEc0L/8xirnfXQWafs=",
117
+ "hash": "sha256-xlxha7eUDEjfMacqCq0ovCZPd3+Nxyj1MPdVt8iNNDM=",
118
118
  "url": "_content/MindExecution.Shared/js/mind-map-lod-renderer.js"
119
119
  },
120
120
  {
@@ -834,7 +834,7 @@
834
834
  "url": "image-manifest.json"
835
835
  },
836
836
  {
837
- "hash": "sha256-XyPjNU9Tot83XqrvufSilMaCVa6UO70xgl90gwyfCS0=",
837
+ "hash": "sha256-Ob3HKDlRurLtR1gJlYEo/2kPD1z2E+ymjO49AfrDA+M=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: 34tfuA2r */
1
+ /* Manifest version: Mc/DXRDi */
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