@mindexec/cli 0.2.248 → 0.2.250

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.248",
3
+ "version": "0.2.250",
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-wheel-zoom-freeze-first-v695';
8
+ const MINDMAP_CORE_BUILD_ID = '20260620-local-grid-css-only-v697';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -5024,9 +5024,16 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
5024
5024
  }
5025
5025
  this._syncMotionGridLayer(false);
5026
5026
  this._syncLocalSnapGridLayer(false);
5027
- this.currentThemeObject = newTheme.create(this.scene, this.renderer);
5028
- if (this.currentThemeObject) this.scene.add(this.currentThemeObject);
5029
5027
  this.currentThemeName = themeName;
5028
+ this.currentThemeObject = newTheme.create(this.scene, this.renderer);
5029
+ const isLocalSnapGridOnlyTheme = this.currentThemeObject?.userData?.localSnapGrid === true;
5030
+ if (this.currentThemeObject && isLocalSnapGridOnlyTheme !== true) {
5031
+ this.scene.add(this.currentThemeObject);
5032
+ }
5033
+ if (isLocalSnapGridOnlyTheme === true) {
5034
+ this.currentThemeObject.visible = false;
5035
+ this._syncLocalSnapGridLayer(true);
5036
+ }
5030
5037
  this._forceThemeAnimationFrame = true;
5031
5038
  this._forceUpdateFrames = Math.max(this._forceUpdateFrames || 0, 2);
5032
5039
  }
@@ -6578,7 +6585,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6578
6585
  if (canReuseWebglCanvasForImmediateMotion === true) {
6579
6586
  deferContinuousThemeForCameraMotion(this);
6580
6587
  }
6581
- if (!canReuseWebglCanvasForImmediateMotion &&
6588
+ if (shouldFreezeWebglCanvasForImmediateZoom !== true &&
6589
+ !canReuseWebglCanvasForImmediateMotion &&
6582
6590
  renderDebugFlags.enableThemeAnimation !== false &&
6583
6591
  this.currentThemeObject &&
6584
6592
  typeof this.currentThemeObject.animate === 'function') {
@@ -6740,7 +6748,10 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6740
6748
  }
6741
6749
 
6742
6750
  updateCursorDomElement(this);
6751
+ const shouldFreezeWebglCanvasForStationaryZoom =
6752
+ shouldFreezeWebglSurfaceForZoom(this) === true;
6743
6753
  const canReuseWebglCanvasForStationaryMotion = !!(
6754
+ shouldFreezeWebglCanvasForStationaryZoom !== true &&
6744
6755
  canUseWebglCanvasTransformForCameraMotion(this) === true &&
6745
6756
  isWebglRenderEnabled &&
6746
6757
  this._lastWebglRenderedCameraState &&
@@ -6749,7 +6760,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6749
6760
  if (canReuseWebglCanvasForStationaryMotion === true) {
6750
6761
  deferContinuousThemeForCameraMotion(this);
6751
6762
  }
6752
- if (!canReuseWebglCanvasForStationaryMotion &&
6763
+ if (shouldFreezeWebglCanvasForStationaryZoom !== true &&
6764
+ !canReuseWebglCanvasForStationaryMotion &&
6753
6765
  renderDebugFlags.enableThemeAnimation !== false &&
6754
6766
  this.currentThemeObject &&
6755
6767
  typeof this.currentThemeObject.animate === 'function') {
@@ -6784,7 +6796,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6784
6796
  uaStationaryVisualMotion: true
6785
6797
  };
6786
6798
  } else {
6787
- if (shouldFreezeWebglSurfaceForZoom(this) === true) {
6799
+ if (shouldFreezeWebglCanvasForStationaryZoom === true) {
6788
6800
  markWebglSurfaceFrozenForZoom(this, 'uaStationaryVisualMotion');
6789
6801
  } else {
6790
6802
  this._clearWebglCanvasCameraTransform();
@@ -6926,7 +6938,10 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6926
6938
  }
6927
6939
 
6928
6940
  updateCursorDomElement(this);
6941
+ const shouldFreezeWebglCanvasForResidentZoom =
6942
+ shouldFreezeWebglSurfaceForZoom(this) === true;
6929
6943
  const canReuseWebglCanvasForResidentMotion = !!(
6944
+ shouldFreezeWebglCanvasForResidentZoom !== true &&
6930
6945
  canUseWebglCanvasTransformForCameraMotion(this) === true &&
6931
6946
  isWebglRenderEnabled === true &&
6932
6947
  this._lastWebglRenderedCameraState &&
@@ -6935,7 +6950,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6935
6950
  if (canReuseWebglCanvasForResidentMotion === true) {
6936
6951
  deferContinuousThemeForCameraMotion(this);
6937
6952
  }
6938
- if (!canReuseWebglCanvasForResidentMotion &&
6953
+ if (shouldFreezeWebglCanvasForResidentZoom !== true &&
6954
+ !canReuseWebglCanvasForResidentMotion &&
6939
6955
  renderDebugFlags.enableThemeAnimation !== false &&
6940
6956
  this.currentThemeObject &&
6941
6957
  typeof this.currentThemeObject.animate === 'function') {
@@ -6969,7 +6985,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6969
6985
  uaResidentVisualOnlyMotion: true
6970
6986
  };
6971
6987
  } else {
6972
- if (shouldFreezeWebglSurfaceForZoom(this) === true) {
6988
+ if (shouldFreezeWebglCanvasForResidentZoom === true) {
6973
6989
  markWebglSurfaceFrozenForZoom(this, 'uaResidentVisualOnlyMotion');
6974
6990
  } else {
6975
6991
  this._clearWebglCanvasCameraTransform();
@@ -7158,8 +7174,11 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
7158
7174
  const shouldSampleWebglDuringCameraMotion =
7159
7175
  renderDebugFlags.sampleWebglDuringCameraMotion === true &&
7160
7176
  (this.frameCount % CAMERA_MOTION_WEBGL_FRAME_INTERVAL) === 0;
7177
+ const shouldFreezeWebglCanvasForEarlyZoom =
7178
+ shouldFreezeWebglSurfaceForZoom(this) === true;
7161
7179
  let usedWebglCanvasCameraTransformEarly = false;
7162
- if (shouldSampleWebglDuringCameraMotion) {
7180
+ if (shouldSampleWebglDuringCameraMotion &&
7181
+ shouldFreezeWebglCanvasForEarlyZoom !== true) {
7163
7182
  updateCursorDomElement(this);
7164
7183
  if (isWebglRenderEnabled && this.renderer && this.scene && this.camera) {
7165
7184
  this._clearWebglCanvasCameraTransform();
@@ -7175,6 +7194,10 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
7175
7194
  } : null;
7176
7195
  }
7177
7196
  } else if (isWebglRenderEnabled &&
7197
+ shouldFreezeWebglCanvasForEarlyZoom === true) {
7198
+ markWebglSurfaceFrozenForZoom(this, 'uaEarlyCameraOnly');
7199
+ } else if (isWebglRenderEnabled &&
7200
+ shouldFreezeWebglCanvasForEarlyZoom !== true &&
7178
7201
  canUseWebglCanvasTransformForCameraMotion(this) === true) {
7179
7202
  usedWebglCanvasCameraTransformEarly =
7180
7203
  this._applyWebglCanvasCameraTransform() === true;
@@ -7191,36 +7214,32 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
7191
7214
  uaEarlyCameraOnly: true
7192
7215
  };
7193
7216
  } else if (this.renderer && this.scene && this.camera) {
7194
- if (shouldFreezeWebglSurfaceForZoom(this) === true) {
7195
- markWebglSurfaceFrozenForZoom(this, 'uaEarlyCameraOnly');
7196
- } else {
7197
- let hiddenEarlyCameraMotionThemeObject = null;
7198
- this._clearWebglCanvasCameraTransform();
7199
- if (this._isMotionGridThemeEnabled() === true &&
7200
- this.currentThemeObject &&
7201
- this.currentThemeObject.visible !== false) {
7202
- hiddenEarlyCameraMotionThemeObject = this.currentThemeObject;
7203
- hiddenEarlyCameraMotionThemeObject.visible = false;
7204
- }
7205
- try {
7206
- this.renderer.render(this.scene, this.camera);
7207
- } finally {
7208
- if (hiddenEarlyCameraMotionThemeObject) {
7209
- hiddenEarlyCameraMotionThemeObject.visible = true;
7210
- }
7217
+ let hiddenEarlyCameraMotionThemeObject = null;
7218
+ this._clearWebglCanvasCameraTransform();
7219
+ if (this._isMotionGridThemeEnabled() === true &&
7220
+ this.currentThemeObject &&
7221
+ this.currentThemeObject.visible !== false) {
7222
+ hiddenEarlyCameraMotionThemeObject = this.currentThemeObject;
7223
+ hiddenEarlyCameraMotionThemeObject.visible = false;
7224
+ }
7225
+ try {
7226
+ this.renderer.render(this.scene, this.camera);
7227
+ } finally {
7228
+ if (hiddenEarlyCameraMotionThemeObject) {
7229
+ hiddenEarlyCameraMotionThemeObject.visible = true;
7211
7230
  }
7212
- this._recordWebglRenderedCameraState();
7213
- const renderInfo = this.renderer?.info?.render || null;
7214
- this._lastWebglRenderInfo = renderInfo ? {
7215
- calls: Number(renderInfo.calls || 0),
7216
- triangles: Number(renderInfo.triangles || 0),
7217
- points: Number(renderInfo.points || 0),
7218
- lines: Number(renderInfo.lines || 0),
7219
- backgroundThemeHidden: hiddenEarlyCameraMotionThemeObject ? true : undefined,
7220
- uaEarlyCameraOnly: true,
7221
- webglCanvasCameraBootstrap: true
7222
- } : null;
7223
7231
  }
7232
+ this._recordWebglRenderedCameraState();
7233
+ const renderInfo = this.renderer?.info?.render || null;
7234
+ this._lastWebglRenderInfo = renderInfo ? {
7235
+ calls: Number(renderInfo.calls || 0),
7236
+ triangles: Number(renderInfo.triangles || 0),
7237
+ points: Number(renderInfo.points || 0),
7238
+ lines: Number(renderInfo.lines || 0),
7239
+ backgroundThemeHidden: hiddenEarlyCameraMotionThemeObject ? true : undefined,
7240
+ uaEarlyCameraOnly: true,
7241
+ webglCanvasCameraBootstrap: true
7242
+ } : null;
7224
7243
  } else {
7225
7244
  this._lastWebglRenderInfo = {
7226
7245
  calls: 0,
@@ -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-wheel-zoom-freeze-first-v695" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-wheel-zoom-freeze-first-v695" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260620-local-grid-css-only-v697" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-local-grid-css-only-v697" />
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-wheel-zoom-freeze-first-v695';
582
+ const scriptVersion = '20260620-local-grid-css-only-v697';
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": "Zi67gVG4",
2
+ "version": "A/ao9Pai",
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-3CJni1dXUFwnlvRezSOK8f58AxKKAo8Ao9saMsOvUU0=",
81
+ "hash": "sha256-mJ6sfC0QGiPmkOxIbz8t+tr9A7f7vS39kdTKC8iiiCY=",
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-NfUBTHpczaona1Kcls5Lx+NYpNeHdwUmtGXsIz+eJR0=",
837
+ "hash": "sha256-e67tw0NBUqSdCPycY1qZEmvlOQzR6ddFqaCKFCPGmm4=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: Zi67gVG4 */
1
+ /* Manifest version: A/ao9Pai */
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