@mindexec/cli 0.2.256 → 0.2.257

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.256",
3
+ "version": "0.2.257",
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-ua-wheel-zoom-direct-v703';
8
+ const MINDMAP_CORE_BUILD_ID = '20260620-ua-wheel-zoom-direct-settle-v704';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -3886,6 +3886,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3886
3886
  this._animationIdleCadenceFrame = false;
3887
3887
  this._lastAnimationLoopDelayMs = 0;
3888
3888
  this._lastAnimationWakeReason = '';
3889
+ this._wheelZoomDirectSettleTimer = null;
3889
3890
  // ▲▲▲ [Optimization] ▲▲▲
3890
3891
 
3891
3892
  // ▼▼▼ [State] Loading flag (hide nodes during board load) ▼▼▼
@@ -4481,6 +4482,36 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4481
4482
  }
4482
4483
  }
4483
4484
 
4485
+ requestWheelZoomDirectSettle(delayMs = CAMERA_ZOOM_END_DELAY_MS + 18) {
4486
+ const safeDelayMs = Math.max(
4487
+ 16,
4488
+ Math.floor(Number(delayMs) || (CAMERA_ZOOM_END_DELAY_MS + 18))
4489
+ );
4490
+ this.clearWheelZoomDirectSettle();
4491
+ this._wheelZoomDirectSettleTimer = setTimeout(() => {
4492
+ this._wheelZoomDirectSettleTimer = null;
4493
+ if (this.isZooming !== true) {
4494
+ return;
4495
+ }
4496
+ if (this._animationLoopRunning === true) {
4497
+ this.requestAnimationWake('wheel-zoom-direct-finalize');
4498
+ } else {
4499
+ this.animate();
4500
+ }
4501
+ }, safeDelayMs);
4502
+ return true;
4503
+ }
4504
+
4505
+ clearWheelZoomDirectSettle() {
4506
+ if (!this._wheelZoomDirectSettleTimer) {
4507
+ return false;
4508
+ }
4509
+
4510
+ clearTimeout(this._wheelZoomDirectSettleTimer);
4511
+ this._wheelZoomDirectSettleTimer = null;
4512
+ return true;
4513
+ }
4514
+
4484
4515
  getCurrentBoardId() {
4485
4516
  return window.mindMap?.activeBoardId || _currentBoardId || null;
4486
4517
  }
@@ -8976,6 +9007,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
8976
9007
  clearTimeout(this._motionGridHideTimer);
8977
9008
  this._motionGridHideTimer = null;
8978
9009
  }
9010
+ this.clearWheelZoomDirectSettle();
8979
9011
  if (this._motionGridLayer) {
8980
9012
  this._motionGridLayer.remove();
8981
9013
  this._motionGridLayer = null;
@@ -6255,6 +6255,7 @@ window.MindMapInteractions = (function () {
6255
6255
  return;
6256
6256
  }
6257
6257
 
6258
+ module.clearWheelZoomDirectSettle?.();
6258
6259
  module.isZooming = false;
6259
6260
  clearZoomMotionChrome(module);
6260
6261
  clearMotionWillChangeEnable(module, { disableIfIdle: true });
@@ -6461,10 +6462,15 @@ window.MindMapInteractions = (function () {
6461
6462
  reason: 'wheel-zoom-direct',
6462
6463
  coalescedWheelEvents: Number(options.coalescedWheelEvents || 0)
6463
6464
  }) === true;
6464
- const settleFrames = presentedDirectly === true ? 1 : 2;
6465
- module._forceUpdateFrames = Math.max(Number(module._forceUpdateFrames || 0), settleFrames);
6466
- module._cameraNavigationForceFrames = Math.max(Number(module._cameraNavigationForceFrames || 0), settleFrames);
6467
- wakeCameraNavigationAnimation(module, presentedDirectly === true ? 'wheel-zoom-direct-settle' : 'wheel-zoom-input');
6465
+ const settleScheduled =
6466
+ presentedDirectly === true &&
6467
+ module.requestWheelZoomDirectSettle?.() === true;
6468
+ if (settleScheduled !== true) {
6469
+ const settleFrames = 2;
6470
+ module._forceUpdateFrames = Math.max(Number(module._forceUpdateFrames || 0), settleFrames);
6471
+ module._cameraNavigationForceFrames = Math.max(Number(module._cameraNavigationForceFrames || 0), settleFrames);
6472
+ wakeCameraNavigationAnimation(module, presentedDirectly === true ? 'wheel-zoom-direct-settle' : 'wheel-zoom-input');
6473
+ }
6468
6474
  // ▲▲▲ [Changed] ▲▲▲
6469
6475
 
6470
6476
  // ▼▼▼ [Perf] 줌 종료 감지 및 CSS3D 업데이트 타이머 ▼▼▼
@@ -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-ua-wheel-zoom-direct-v703" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-ua-wheel-zoom-direct-v703" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260620-ua-wheel-zoom-direct-settle-v704" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-ua-wheel-zoom-direct-settle-v704" />
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-ua-wheel-zoom-direct-v703';
582
+ const scriptVersion = '20260620-ua-wheel-zoom-direct-settle-v704';
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": "1LdoK7xQ",
2
+ "version": "sp0zMNR0",
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-wk7TV857RImYllssWmYrGh0OAxXDQT1oq2VBYCPcS9c=",
81
+ "hash": "sha256-+tbg0oVHg45w3EqRroBtWvPm/O8xkG20ZhpQpNXUhPo=",
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-+rd+m+8v5jsj9aJFxXoTsdnY9A4TLbvfgGwvkQ5/Rhk=",
109
+ "hash": "sha256-7s3ZFEQXCE1cX+sTQ033CroYRxtD5lQ5Y+FGG9NpjEU=",
110
110
  "url": "_content/MindExecution.Shared/js/mind-map-interactions.js"
111
111
  },
112
112
  {
@@ -834,7 +834,7 @@
834
834
  "url": "image-manifest.json"
835
835
  },
836
836
  {
837
- "hash": "sha256-WhrCEBoF7P15FvP1BrCFRsc6Hz4xCr5uVOLHvEjTlc8=",
837
+ "hash": "sha256-M5iNp7FBVtopYOq0HzZUPgt+JDG+igkEAF8V6A3h2nY=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: 1LdoK7xQ */
1
+ /* Manifest version: sp0zMNR0 */
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