@mindexec/cli 0.2.276 → 0.2.278

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.276",
3
+ "version": "0.2.278",
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-wheel-v724';
8
+ const MINDMAP_CORE_BUILD_ID = '20260620-css3d-flat-wheel-v726';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -546,19 +546,22 @@
546
546
  return true;
547
547
  }
548
548
 
549
- function renderCss3dCameraForCameraNavigation(module, reason = 'camera-navigation') {
549
+ function renderCss3dCameraForCameraNavigation(module, reason = 'camera-navigation', options = {}) {
550
550
  const renderer = module?.cssRenderer || null;
551
551
  const camera = module?.camera || null;
552
552
  if (!renderer || !camera) {
553
553
  return false;
554
554
  }
555
555
 
556
- const renderDebugFlags = module.renderDebugFlags || getRenderDebugFlagsSnapshot();
556
+ const renderDebugFlags = options?.renderDebugFlags || module.renderDebugFlags || getRenderDebugFlagsSnapshot();
557
557
  if (renderDebugFlags.enableCss3d === false) {
558
558
  return false;
559
559
  }
560
560
 
561
- if (canUseFlatCss3dCameraMotion(module, renderer, camera, renderDebugFlags) === true) {
561
+ const cachedFlatEligible = options?.flatEligible;
562
+ const canUseFlatCamera = cachedFlatEligible === true ||
563
+ (cachedFlatEligible !== false && canUseFlatCss3dCameraMotion(module, renderer, camera, renderDebugFlags) === true);
564
+ if (canUseFlatCamera === true) {
562
565
  const usedFlatCamera = renderer.renderFlatCamera(camera, {
563
566
  translateBucketPx: CAMERA_MOTION_WEBGL_TRANSFORM_TRANSLATE_BUCKET_PX,
564
567
  scaleBucket: CAMERA_MOTION_WEBGL_TRANSFORM_SCALE_BUCKET
@@ -4588,7 +4591,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4588
4591
 
4589
4592
  if (usedWebglCanvasCameraTransform === true ||
4590
4593
  CAMERA_MOTION_GRID_FALLBACK_ENABLED !== true) {
4591
- if (this._motionGridVisible === true || this._motionGridLayer) {
4594
+ if (this._motionGridVisible === true) {
4592
4595
  this._syncMotionGridLayer(false);
4593
4596
  }
4594
4597
  return false;
@@ -4599,8 +4602,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4599
4602
 
4600
4603
  _shouldTouchMotionGridLayerForCameraNavigation() {
4601
4604
  return CAMERA_MOTION_GRID_FALLBACK_ENABLED === true ||
4602
- this._motionGridVisible === true ||
4603
- !!this._motionGridLayer;
4605
+ this._motionGridVisible === true;
4604
4606
  }
4605
4607
 
4606
4608
  _installForceUpdateWakeHook() {
@@ -4691,7 +4693,13 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4691
4693
  return;
4692
4694
  }
4693
4695
 
4694
- this._lastAnimationWakeReason = String(reason || 'runtime-wake');
4696
+ const wakeReason = String(reason || 'runtime-wake');
4697
+ if (this._shouldSuppressAnimationWakeDuringDirectWheelZoom(wakeReason) === true) {
4698
+ this._lastSuppressedDirectWheelZoomWakeReason = wakeReason;
4699
+ return;
4700
+ }
4701
+
4702
+ this._lastAnimationWakeReason = wakeReason;
4695
4703
  if (this._animationIdleTimerId) {
4696
4704
  clearTimeout(this._animationIdleTimerId);
4697
4705
  this._animationIdleTimerId = null;
@@ -4733,6 +4741,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4733
4741
  }
4734
4742
 
4735
4743
  this._wheelZoomDirectSettleDueAt = 0;
4744
+ this._directWheelZoomPausedAnimationLoop = false;
4736
4745
  if (this._animationLoopRunning === true) {
4737
4746
  this.requestAnimationWake('wheel-zoom-direct-finalize');
4738
4747
  } else {
@@ -4747,6 +4756,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4747
4756
 
4748
4757
  clearWheelZoomDirectSettle() {
4749
4758
  this._wheelZoomDirectSettleDueAt = 0;
4759
+ this._directWheelZoomPausedAnimationLoop = false;
4750
4760
  if (!this._wheelZoomDirectSettleTimer) {
4751
4761
  return false;
4752
4762
  }
@@ -4801,6 +4811,21 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4801
4811
  return paused;
4802
4812
  }
4803
4813
 
4814
+ _shouldSuppressAnimationWakeDuringDirectWheelZoom(reason = 'runtime-wake') {
4815
+ if (this._directWheelZoomPausedAnimationLoop !== true ||
4816
+ this.isZooming !== true ||
4817
+ reason === 'wheel-zoom-direct-finalize') {
4818
+ return false;
4819
+ }
4820
+
4821
+ const forceUpdateFrames = Math.max(0, Number(this._forceUpdateFrames || 0));
4822
+ const cameraNavigationForceFrames = Math.max(0, Number(this._cameraNavigationForceFrames || 0));
4823
+ const hasNonCameraNavigationForcedUpdate =
4824
+ forceUpdateFrames > 0 &&
4825
+ cameraNavigationForceFrames < forceUpdateFrames;
4826
+ return hasNonCameraNavigationForcedUpdate !== true;
4827
+ }
4828
+
4804
4829
  getCurrentBoardId() {
4805
4830
  return window.mindMap?.activeBoardId || _currentBoardId || null;
4806
4831
  }
@@ -5652,7 +5677,10 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
5652
5677
  }
5653
5678
  this._syncLocalSnapGridPositionOnly?.(true);
5654
5679
  if (canRenderCss3d === true) {
5655
- renderCss3dCameraForCameraNavigation(this, 'ua-wheel-zoom-direct');
5680
+ renderCss3dCameraForCameraNavigation(this, 'ua-wheel-zoom-direct', {
5681
+ renderDebugFlags,
5682
+ flatEligible: canUseFlatCss3dWheelCamera
5683
+ });
5656
5684
  }
5657
5685
  if (hasBusinessAutomationTransformMotionWork(this) === true) {
5658
5686
  syncBusinessAutomationEdgesForCameraNavigation(this, true);
@@ -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-wheel-v724" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-css3d-flat-wheel-v724" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260620-css3d-flat-wheel-v726" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-css3d-flat-wheel-v726" />
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-wheel-v724';
582
+ const scriptVersion = '20260620-css3d-flat-wheel-v726';
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": "e8mQ3t9N",
2
+ "version": "2Uo47qIz",
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-J87VtGRXcrl4n7dBqmVm7QxiKHC0aDXDdxlB9iXWK1g=",
81
+ "hash": "sha256-Bc95mzMx8jS/7dgil0lXOdYS/gd/LPgW3qBBwDwHzt8=",
82
82
  "url": "_content/MindExecution.Shared/js/mind-map-core.js"
83
83
  },
84
84
  {
@@ -834,7 +834,7 @@
834
834
  "url": "image-manifest.json"
835
835
  },
836
836
  {
837
- "hash": "sha256-+yTDlXxSRvTFQrnpXuZZ+lvX5ucyHM/lQvKsvVbgZao=",
837
+ "hash": "sha256-R+BEXjNYYoIQuk482hOA0eigxNMYe0wNSmtAgRrSU8k=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: e8mQ3t9N */
1
+ /* Manifest version: 2Uo47qIz */
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