@mindexec/cli 0.2.233 → 0.2.234

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.233",
3
+ "version": "0.2.234",
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-motion-edge-idle-skip-v680';
8
+ const MINDMAP_CORE_BUILD_ID = '20260620-wheel-zoom-hotpath-v681';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -346,7 +346,10 @@
346
346
  }
347
347
 
348
348
  module._lastCursorDomPositionKey = positionKey;
349
- element.style.display = visible ? 'block' : 'none';
349
+ if (module._lastCursorDomVisible !== visible) {
350
+ module._lastCursorDomVisible = visible;
351
+ element.style.display = visible ? 'block' : 'none';
352
+ }
350
353
  if (visible) {
351
354
  element.style.transform = `translate3d(${x.toFixed(2)}px, ${y.toFixed(2)}px, 0)`;
352
355
  }
@@ -842,7 +845,10 @@
842
845
  if (cachedWidth > 0 && cachedHeight > 0) {
843
846
  return {
844
847
  width: cachedWidth,
845
- height: cachedHeight
848
+ height: cachedHeight,
849
+ left: Number(module?._lastViewportLeft || 0),
850
+ top: Number(module?._lastViewportTop || 0),
851
+ dpr: Math.max(1, Number(module?._lastViewportDpr || window.devicePixelRatio || 1))
846
852
  };
847
853
  }
848
854
 
@@ -851,13 +857,19 @@
851
857
  if (cachedContainerWidth > 0 && cachedContainerHeight > 0) {
852
858
  return {
853
859
  width: cachedContainerWidth,
854
- height: cachedContainerHeight
860
+ height: cachedContainerHeight,
861
+ left: Number(module?._lastViewportLeft || 0),
862
+ top: Number(module?._lastViewportTop || 0),
863
+ dpr: Math.max(1, Number(module?._lastViewportDpr || window.devicePixelRatio || 1))
855
864
  };
856
865
  }
857
866
 
858
867
  return {
859
868
  width: Math.max(1, Number(module?.container?.clientWidth || 0)),
860
- height: Math.max(1, Number(module?.container?.clientHeight || 0))
869
+ height: Math.max(1, Number(module?.container?.clientHeight || 0)),
870
+ left: 0,
871
+ top: 0,
872
+ dpr: Math.max(1, Number(window.devicePixelRatio || 1))
861
873
  };
862
874
  }
863
875
 
@@ -3533,7 +3545,6 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3533
3545
 
3534
3546
  // ▼▼▼ [Perf] Flag to track zoom state for CSS3D optimization ▼▼▼
3535
3547
  this.isZooming = false;
3536
- this._zoomEndTimer = null;
3537
3548
  // ▲▲▲ [Perf] ▲▲▲
3538
3549
 
3539
3550
  // ▼▼▼ [Core addition] Multi-selection and spatial grid initialization ▼▼▼
@@ -3619,6 +3630,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3619
3630
  this._localSnapGridVisible = false;
3620
3631
  this._lastLocalSnapGridKey = '';
3621
3632
  this._lastLocalSnapGridTransformKey = '';
3633
+ this._lastLocalSnapGridOpacity = '';
3622
3634
  this._lastSnapGridClientX = null;
3623
3635
  this._lastSnapGridClientY = null;
3624
3636
  this._animationIdleTimerId = null;
@@ -3738,24 +3750,28 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3738
3750
  this._localSnapGridLayer = layer;
3739
3751
  this._lastLocalSnapGridKey = '';
3740
3752
  this._lastLocalSnapGridTransformKey = '';
3753
+ this._lastLocalSnapGridOpacity = '';
3741
3754
  return layer;
3742
3755
  }
3743
3756
 
3744
- _setLocalSnapGridVisible(visible) {
3757
+ _setLocalSnapGridVisible(visible, targetOpacity = null) {
3745
3758
  const layer = this._localSnapGridLayer;
3746
3759
  if (!layer) {
3747
3760
  return;
3748
3761
  }
3749
3762
 
3750
3763
  if (visible === true) {
3764
+ const opacityValue = targetOpacity == null
3765
+ ? this._lastLocalSnapGridOpacity
3766
+ : String(targetOpacity);
3751
3767
  if (this._localSnapGridVisible !== true) {
3752
3768
  this._localSnapGridVisible = true;
3753
3769
  if (layer.style.display !== 'block') {
3754
3770
  layer.style.display = 'block';
3755
3771
  }
3756
3772
  }
3757
- if (layer.style.opacity !== '1') {
3758
- layer.style.opacity = '1';
3773
+ if (opacityValue && layer.style.opacity !== opacityValue) {
3774
+ layer.style.opacity = opacityValue;
3759
3775
  }
3760
3776
  return;
3761
3777
  }
@@ -3840,6 +3856,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3840
3856
 
3841
3857
  if (localGridKey !== this._lastLocalSnapGridKey) {
3842
3858
  this._lastLocalSnapGridKey = localGridKey;
3859
+ const opacityValue = opacity.toFixed(3);
3860
+ this._lastLocalSnapGridOpacity = opacityValue;
3843
3861
  if (styleKind === 'dot') {
3844
3862
  layer.style.backgroundImage = [
3845
3863
  'radial-gradient(circle at 0 0, rgba(68, 78, 94, 0.34) 1px, transparent 1.55px)',
@@ -3859,7 +3877,9 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3859
3877
  layer.style.backgroundPosition = styleKind === 'dot'
3860
3878
  ? '0 0, 0 0'
3861
3879
  : '0 0, 0 0, 0 0, 0 0';
3862
- layer.style.opacity = opacity.toFixed(3);
3880
+ if (layer.style.opacity !== opacityValue) {
3881
+ layer.style.opacity = opacityValue;
3882
+ }
3863
3883
  }
3864
3884
 
3865
3885
  const transformKey = `${Math.round(layerLeft * 2)}|${Math.round(layerTop * 2)}`;
@@ -3868,7 +3888,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3868
3888
  layer.style.transform = `translate3d(${layerLeft.toFixed(2)}px, ${layerTop.toFixed(2)}px, 0)`;
3869
3889
  }
3870
3890
 
3871
- this._setLocalSnapGridVisible(true);
3891
+ this._setLocalSnapGridVisible(true, this._lastLocalSnapGridOpacity || opacity.toFixed(3));
3872
3892
  return true;
3873
3893
  }
3874
3894
 
@@ -6200,10 +6200,6 @@ window.MindMapInteractions = (function () {
6200
6200
  module.isZooming = false;
6201
6201
  clearZoomMotionChrome(module);
6202
6202
  clearMotionWillChangeEnable(module, { disableIfIdle: true });
6203
- if (module._zoomEndTimer) {
6204
- clearTimeout(module._zoomEndTimer);
6205
- module._zoomEndTimer = null;
6206
- }
6207
6203
  }
6208
6204
 
6209
6205
  function applyTrackpadPanDelta(module, deltaX, deltaY) {
@@ -6348,7 +6344,6 @@ window.MindMapInteractions = (function () {
6348
6344
  module._zoomInputTime = performance.now();
6349
6345
  // ▲▲▲ [Fix] ▲▲▲
6350
6346
  // Reset zoom fallback flag on new input
6351
- module._zoomFallbackExpired = false;
6352
6347
  // ▲▲▲ [Perf] ▲▲▲
6353
6348
 
6354
6349
  const viewportMetrics = getCachedViewportMetrics(module);
@@ -6400,15 +6395,6 @@ window.MindMapInteractions = (function () {
6400
6395
 
6401
6396
  // ▼▼▼ [Perf] 줌 종료 감지 및 CSS3D 업데이트 타이머 ▼▼▼
6402
6397
  // 기존 타이머 취소 (연속 스크롤 감지)
6403
- if (module._zoomEndTimer) {
6404
- clearTimeout(module._zoomEndTimer);
6405
- }
6406
-
6407
- // Fallback timer - main detection is in animate() loop when camera stops
6408
- module._zoomEndTimer = setTimeout(() => {
6409
- if (!module.isZooming) return; // Already handled by animate() loop
6410
- module._zoomFallbackExpired = true;
6411
- }, 150);
6412
6398
  // ▲▲▲ [Perf] ▲▲▲
6413
6399
 
6414
6400
  if (WHEEL_PERF_DEBUG) {
@@ -6703,13 +6689,15 @@ window.MindMapInteractions = (function () {
6703
6689
  return;
6704
6690
  }
6705
6691
 
6706
- notifyMindCanvasSurfaceInteraction('wheel');
6707
-
6708
6692
  const wheelNow = typeof performance !== 'undefined' && typeof performance.now === 'function'
6709
6693
  ? performance.now()
6710
6694
  : Date.now();
6711
6695
  module._lastCanvasWheelAt = wheelNow;
6712
6696
  window.__mindMapLastCanvasWheelAt = wheelNow;
6697
+ if ((wheelNow - Number(module._lastWheelSurfaceInteractionNotifyAt || 0)) >= 650) {
6698
+ module._lastWheelSurfaceInteractionNotifyAt = wheelNow;
6699
+ notifyMindCanvasSurfaceInteraction('wheel');
6700
+ }
6713
6701
 
6714
6702
  if (WHEEL_DEBUG) {
6715
6703
  if (!module._wheelDebug) {
@@ -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-motion-edge-idle-skip-v680" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-motion-edge-idle-skip-v680" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260620-wheel-zoom-hotpath-v681" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-wheel-zoom-hotpath-v681" />
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-motion-edge-idle-skip-v680';
582
+ const scriptVersion = '20260620-wheel-zoom-hotpath-v681';
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": "tfRsKidn",
2
+ "version": "FOi7IcPO",
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-gayKurjZwXPgO2/y/DZ3HV7akcasjW5dLLQ0z+11/Lc=",
81
+ "hash": "sha256-HAcIKHR8GNq+hp/a1I7r69dToZn+z+Vu6zQ3zo+Sin8=",
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-c4m1kyotX9806YeHVrbh0M3lvEmn9kO8oyhZY8lD28M=",
109
+ "hash": "sha256-glU8Qi29dTeN+P17xuF+Nno5MLoR88v44leP9LrLAgw=",
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-Ptdz9ioX39SYDLpMEEbaN8skc/gqYMH1xzlzt+c9a/o=",
837
+ "hash": "sha256-nKh30c9Ax0h/31FBsTI98E174o6u1tGmWFlutqKFPeU=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: tfRsKidn */
1
+ /* Manifest version: FOi7IcPO */
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