@mindexec/cli 0.2.261 → 0.2.263

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.261",
3
+ "version": "0.2.263",
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-v709';
8
+ const MINDMAP_CORE_BUILD_ID = '20260620-css3d-flat-wheel-v711';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -507,10 +507,7 @@
507
507
  }
508
508
 
509
509
  function shouldFreezeWebglSurfaceForZoom(module) {
510
- return !!(
511
- module?.isZooming === true &&
512
- module?._lastWebglRenderedCameraState
513
- );
510
+ return module?.isZooming === true;
514
511
  }
515
512
 
516
513
  function isLocalSnapGridOnlyTheme(module) {
@@ -529,9 +526,7 @@
529
526
  return false;
530
527
  }
531
528
 
532
- if (CSS3D_FLAT_CAMERA_MOTION_ENABLED === true &&
533
- renderDebugFlags.enableFlatCss3dCameraMotion !== false &&
534
- typeof renderer.renderFlatCamera === 'function') {
529
+ if (canUseFlatCss3dCameraMotion(module, renderer, camera, renderDebugFlags) === true) {
535
530
  const usedFlatCamera = renderer.renderFlatCamera(camera, {
536
531
  translateBucketPx: CAMERA_MOTION_WEBGL_TRANSFORM_TRANSLATE_BUCKET_PX,
537
532
  scaleBucket: CAMERA_MOTION_WEBGL_TRANSFORM_SCALE_BUCKET
@@ -595,6 +590,26 @@
595
590
  );
596
591
  }
597
592
 
593
+ function canUseFlatCss3dCameraMotion(module, renderer = module?.cssRenderer, camera = module?.camera, renderDebugFlags = null) {
594
+ if (CSS3D_FLAT_CAMERA_MOTION_ENABLED !== true ||
595
+ !renderer ||
596
+ !camera ||
597
+ camera.isPerspectiveCamera !== true ||
598
+ typeof renderer.renderFlatCamera !== 'function') {
599
+ return false;
600
+ }
601
+
602
+ const flags = renderDebugFlags || module?.renderDebugFlags || getRenderDebugFlagsSnapshot();
603
+ if (flags.enableFlatCss3dCameraMotion === false) {
604
+ return false;
605
+ }
606
+
607
+ const rotation = camera.rotation || {};
608
+ return Math.abs(Number(rotation.x || 0)) <= 1e-5 &&
609
+ Math.abs(Number(rotation.y || 0)) <= 1e-5 &&
610
+ Math.abs(Number(rotation.z || 0)) <= 1e-5;
611
+ }
612
+
598
613
  function syncBusinessAutomationEdgesForCameraNavigation(module, options = {}) {
599
614
  const hasActiveEdges = module?._businessAutomationEdgeRenderActive === true;
600
615
  if (hasActiveEdges !== true && options.allowDraftRender !== true) {
@@ -4606,6 +4621,51 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4606
4621
  return true;
4607
4622
  }
4608
4623
 
4624
+ pauseAnimationLoopForDirectWheelZoom() {
4625
+ if (this._animationLoopRunning !== true ||
4626
+ this._animationLoopExecuting === true ||
4627
+ this.isZooming !== true ||
4628
+ this.isPanning === true ||
4629
+ this.isLoading === true ||
4630
+ this.isSelecting === true ||
4631
+ this.isDraggingNode === true ||
4632
+ this.isDraggingMultipleNodes === true ||
4633
+ this.isResizing === true ||
4634
+ this.isWindowResizing === true ||
4635
+ this._cssParentRepairNeeded === true) {
4636
+ return false;
4637
+ }
4638
+
4639
+ const forceUpdateFrames = Math.max(0, Number(this._forceUpdateFrames || 0));
4640
+ const cameraNavigationForceFrames = Math.max(0, Number(this._cameraNavigationForceFrames || 0));
4641
+ const hasNonCameraNavigationForcedUpdate =
4642
+ forceUpdateFrames > 0 &&
4643
+ cameraNavigationForceFrames < forceUpdateFrames;
4644
+ if (hasNonCameraNavigationForcedUpdate === true) {
4645
+ return false;
4646
+ }
4647
+
4648
+ let paused = false;
4649
+ if (this.animationFrameId) {
4650
+ this._cancelVisualAnimationFrame(this.animationFrameId);
4651
+ this.animationFrameId = null;
4652
+ paused = true;
4653
+ }
4654
+
4655
+ if (this._animationIdleTimerId) {
4656
+ clearTimeout(this._animationIdleTimerId);
4657
+ this._animationIdleTimerId = null;
4658
+ paused = true;
4659
+ }
4660
+
4661
+ if (paused === true) {
4662
+ this._directWheelZoomPausedAnimationLoop = true;
4663
+ this._lastAnimationLoopDelayMs = CAMERA_ZOOM_END_DELAY_MS;
4664
+ }
4665
+
4666
+ return paused;
4667
+ }
4668
+
4609
4669
  getCurrentBoardId() {
4610
4670
  return window.mindMap?.activeBoardId || _currentBoardId || null;
4611
4671
  }
@@ -5370,13 +5430,20 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
5370
5430
  const targetX = Number.isFinite(Number(this.targetX)) ? Number(this.targetX) : currentX;
5371
5431
  const targetY = Number.isFinite(Number(this.targetY)) ? Number(this.targetY) : currentY;
5372
5432
  const targetZ = Number.isFinite(Number(this.targetZ)) ? Math.max(1, Number(this.targetZ)) : Math.max(1, currentZ);
5433
+ const canUseFlatCss3dWheelCamera =
5434
+ canRenderCss3d === true &&
5435
+ canUseFlatCss3dCameraMotion(this, this.cssRenderer, this.camera, renderDebugFlags) === true;
5373
5436
  const deltaSq =
5374
5437
  ((targetX - currentX) * (targetX - currentX)) +
5375
5438
  ((targetY - currentY) * (targetY - currentY)) +
5376
5439
  ((targetZ - currentZ) * (targetZ - currentZ));
5377
5440
 
5378
5441
  this.camera.position.set(targetX, targetY, targetZ);
5379
- this.camera.updateMatrixWorld(true);
5442
+ if (canUseFlatCss3dWheelCamera === true) {
5443
+ this.camera.matrixWorldNeedsUpdate = true;
5444
+ } else {
5445
+ this.camera.updateMatrixWorld(true);
5446
+ }
5380
5447
  this._viewStatePersistAfterMotion = true;
5381
5448
  this._viewSyncMotionActive = true;
5382
5449
  this._cameraMovingThisFrame = deltaSq > 0.0001;
@@ -5455,6 +5522,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
5455
5522
  renderCss3dCameraForCameraNavigation(this, 'ua-wheel-zoom-direct');
5456
5523
  }
5457
5524
  syncBusinessAutomationEdgesForCameraNavigation(this);
5525
+ this.pauseAnimationLoopForDirectWheelZoom?.();
5458
5526
  return true;
5459
5527
  }
5460
5528
 
@@ -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-v709" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-css3d-flat-wheel-v709" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260620-css3d-flat-wheel-v711" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-css3d-flat-wheel-v711" />
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-v709';
582
+ const scriptVersion = '20260620-css3d-flat-wheel-v711';
583
583
  const scriptUrl = (script) => `${base}${script}?v=${scriptVersion}`;
584
584
  console.log(`[Script Loader] Shared JS version: ${scriptVersion}`);
585
585
  const criticalScripts = [
@@ -590,7 +590,7 @@
590
590
  'background-themes.js',
591
591
  'mind-map-logic-workers.js',
592
592
  // Troika removed
593
- 'texture-worker-manager.js', // ??Web Worker ?�스�??�성
593
+ 'texture-worker-manager.js', // ??Web Worker ?�스�??�성
594
594
  'mind-map-texture-factory.js',
595
595
  'mind-map-glow-shader.js', // ??SDF Glow (no textures, GPU only)
596
596
  'mind-map-css3d-manager.js',
@@ -603,7 +603,7 @@
603
603
  'mind-map-interactions.js',
604
604
  'mind-map-dnd.js',
605
605
  'mind-map-lod-renderer.js',
606
- 'mind-map-text-lod-system.js', // ??Text LOD ?�스??(?�적 ?�스�??�질)
606
+ 'mind-map-text-lod-system.js', // ??Text LOD ?�스??(?�적 ?�스�??�질)
607
607
  'mind-map-core.js',
608
608
  'mindmap-toolbar.js',
609
609
  'token-manager.js',
@@ -1,5 +1,5 @@
1
1
  self.assetsManifest = {
2
- "version": "P7DpPAPV",
2
+ "version": "NFlIAEYu",
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-VSQqDmF8gC2cMS0IsTTnuFnQm8pss2rfKyko6CQONxo=",
81
+ "hash": "sha256-oPH7NgFD/aMC5uyNB5j+bHrrVVJmt4ySpTDgXHC5800=",
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-+h/HcEGj8IvVKAVF9Qvoc9X2Tz/MYZW2L+hu3fvyKPM=",
837
+ "hash": "sha256-3rA4Y12tE7DBEMBdoNxtSXP29bAbByTEgZVku5GEQyQ=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: P7DpPAPV */
1
+ /* Manifest version: NFlIAEYu */
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