@mindexec/cli 0.2.231 → 0.2.233

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.231",
3
+ "version": "0.2.233",
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-local-snap-grid-v678';
8
+ const MINDMAP_CORE_BUILD_ID = '20260620-motion-edge-idle-skip-v680';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -107,6 +107,8 @@
107
107
  const LOCAL_SNAP_GRID_DIAMETER_PX = LOCAL_SNAP_GRID_RADIUS_PX * 2;
108
108
  const LOCAL_SNAP_GRID_MIN_STEP_PX = 8;
109
109
  const LOCAL_SNAP_GRID_MAX_STEP_PX = 56;
110
+ const LOCAL_SNAP_GRID_STEP_BUCKET_PX = 2;
111
+ const LOCAL_SNAP_GRID_OPACITY_BUCKET = 0.04;
110
112
  const CAMERA_MOTION_PARTIAL_FRAME_SKIP_ENABLED = false;
111
113
  const CAMERA_MOTION_VISUAL_ONLY_FAST_PATH_ENABLED = true;
112
114
  const CAMERA_MOTION_WEBGL_CANVAS_TRANSFORM_ENABLED = true;
@@ -511,13 +513,26 @@
511
513
  }
512
514
 
513
515
  function syncBusinessAutomationEdgesForCameraNavigation(module, options = {}) {
514
- if (!hasBusinessAutomationEdgeLayer(module) || !window.MindMapCss3DManager) {
516
+ const hasActiveEdges = module?._businessAutomationEdgeRenderActive === true;
517
+ if (hasActiveEdges !== true && options.allowDraftRender !== true) {
518
+ return false;
519
+ }
520
+
521
+ if (!window.MindMapCss3DManager) {
515
522
  return false;
516
523
  }
517
524
 
518
525
  const hasConnectionDraft =
526
+ options.allowDraftRender === true &&
519
527
  window.MindMapCss3DManager.hasBusinessAutomationConnectionDraft?.() === true;
520
- const hasActiveEdges = module?._businessAutomationEdgeRenderActive === true;
528
+ if (hasActiveEdges !== true && hasConnectionDraft !== true) {
529
+ return false;
530
+ }
531
+
532
+ if (hasActiveEdges === true && !hasBusinessAutomationEdgeLayer(module)) {
533
+ return false;
534
+ }
535
+
521
536
  const canTransformExistingEdges = !!(
522
537
  hasActiveEdges === true &&
523
538
  hasConnectionDraft !== true &&
@@ -3797,29 +3812,29 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3797
3812
  const viewHeight = 2 * Math.tan(vfov / 2) * cameraZ;
3798
3813
  const pxPerWorld = height / Math.max(1, viewHeight);
3799
3814
  const worldGrid = Math.max(1, Number(this.GRID_SIZE || 10));
3800
- const smallStepPx = Math.max(
3815
+ const rawSmallStepPx = Math.max(
3801
3816
  LOCAL_SNAP_GRID_MIN_STEP_PX,
3802
3817
  Math.min(LOCAL_SNAP_GRID_MAX_STEP_PX, worldGrid * pxPerWorld)
3803
3818
  );
3819
+ const smallStepPx = Math.max(
3820
+ LOCAL_SNAP_GRID_MIN_STEP_PX,
3821
+ Math.min(
3822
+ LOCAL_SNAP_GRID_MAX_STEP_PX,
3823
+ Math.round(rawSmallStepPx / LOCAL_SNAP_GRID_STEP_BUCKET_PX) * LOCAL_SNAP_GRID_STEP_BUCKET_PX
3824
+ )
3825
+ );
3804
3826
  const majorStepPx = smallStepPx * 10;
3805
- const originX = width / 2 - Number(camera.position?.x || 0) * pxPerWorld;
3806
- const originY = height / 2 + Number(camera.position?.y || 0) * pxPerWorld;
3807
- const positiveModulo = (value, size) => ((value % size) + size) % size;
3808
- const smallOffsetX = positiveModulo(originX - layerLeft, smallStepPx);
3809
- const smallOffsetY = positiveModulo(originY - layerTop, smallStepPx);
3810
- const majorOffsetX = positiveModulo(originX - layerLeft, majorStepPx);
3811
- const majorOffsetY = positiveModulo(originY - layerTop, majorStepPx);
3812
3827
  const themeName = String(this.currentThemeName || '').trim();
3813
3828
  const styleKind = themeName === 'SpatialGrid2D' ? 'dot' : 'line';
3814
- const opacity = Math.max(0.34, Math.min(0.82, cameraZ <= 1800 ? 0.72 : 0.72 - ((cameraZ - 1800) / 36000)));
3829
+ const rawOpacity = Math.max(0.34, Math.min(0.82, cameraZ <= 1800 ? 0.72 : 0.72 - ((cameraZ - 1800) / 36000)));
3830
+ const opacity = Math.max(
3831
+ 0.34,
3832
+ Math.min(0.82, Math.round(rawOpacity / LOCAL_SNAP_GRID_OPACITY_BUCKET) * LOCAL_SNAP_GRID_OPACITY_BUCKET)
3833
+ );
3815
3834
  const localGridKey = [
3816
3835
  styleKind,
3817
3836
  Math.round(smallStepPx * 100),
3818
3837
  Math.round(majorStepPx * 100),
3819
- Math.round(smallOffsetX * 100),
3820
- Math.round(smallOffsetY * 100),
3821
- Math.round(majorOffsetX * 100),
3822
- Math.round(majorOffsetY * 100),
3823
3838
  Math.round(opacity * 100)
3824
3839
  ].join('|');
3825
3840
 
@@ -3842,8 +3857,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3842
3857
  ? `${smallStepPx.toFixed(3)}px ${smallStepPx.toFixed(3)}px, ${majorStepPx.toFixed(3)}px ${majorStepPx.toFixed(3)}px`
3843
3858
  : `${smallStepPx.toFixed(3)}px ${smallStepPx.toFixed(3)}px, ${smallStepPx.toFixed(3)}px ${smallStepPx.toFixed(3)}px, ${majorStepPx.toFixed(3)}px ${majorStepPx.toFixed(3)}px, ${majorStepPx.toFixed(3)}px ${majorStepPx.toFixed(3)}px`;
3844
3859
  layer.style.backgroundPosition = styleKind === 'dot'
3845
- ? `${smallOffsetX.toFixed(3)}px ${smallOffsetY.toFixed(3)}px, ${majorOffsetX.toFixed(3)}px ${majorOffsetY.toFixed(3)}px`
3846
- : `${smallOffsetX.toFixed(3)}px 0, 0 ${smallOffsetY.toFixed(3)}px, ${majorOffsetX.toFixed(3)}px 0, 0 ${majorOffsetY.toFixed(3)}px`;
3860
+ ? '0 0, 0 0'
3861
+ : '0 0, 0 0, 0 0, 0 0';
3847
3862
  layer.style.opacity = opacity.toFixed(3);
3848
3863
  }
3849
3864
 
@@ -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-local-snap-grid-v678" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-local-snap-grid-v678" />
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" />
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-local-snap-grid-v678';
582
+ const scriptVersion = '20260620-motion-edge-idle-skip-v680';
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": "0fNd45RW",
2
+ "version": "tfRsKidn",
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-cgRnT3AuM8Mw82hw1iBUqvEjFE3RPDTdFRA0hTl2MRw=",
81
+ "hash": "sha256-gayKurjZwXPgO2/y/DZ3HV7akcasjW5dLLQ0z+11/Lc=",
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-CkeAh51//UYmSeCRJEi3nfSHsdn1/1M6oxHS4TrYXss=",
837
+ "hash": "sha256-Ptdz9ioX39SYDLpMEEbaN8skc/gqYMH1xzlzt+c9a/o=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: 0fNd45RW */
1
+ /* Manifest version: tfRsKidn */
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