@mindexec/cli 0.2.462 → 0.2.465

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.
Files changed (23) hide show
  1. package/electron/main.cjs +6 -3
  2. package/electron/recurring-update-owner-smoke.mjs +18 -1
  3. package/electron/recurring-update-owner.cjs +9 -5
  4. package/package.json +5 -4
  5. package/remote-fast/osx-arm64/mindexec-remote-fast.dll +0 -0
  6. package/remote-fast/osx-x64/mindexec-remote-fast.dll +0 -0
  7. package/remote-fast/win-x64/mindexec-remote-fast.dll +0 -0
  8. package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +28 -17
  9. package/wwwroot/_content/MindExecution.Shared/js/mind-map-render-plan.js +24 -1
  10. package/wwwroot/_framework/{MindExecution.Core.0b8jdcyhj8.dll → MindExecution.Core.o29fdql6j5.dll} +0 -0
  11. package/wwwroot/_framework/{MindExecution.Kernel.hm6hmoblm6.dll → MindExecution.Kernel.98wpeg0ntq.dll} +0 -0
  12. package/wwwroot/_framework/{MindExecution.Plugins.Admin.oztzw186ns.dll → MindExecution.Plugins.Admin.y25y20jkiv.dll} +0 -0
  13. package/wwwroot/_framework/{MindExecution.Plugins.Business.a1e73rkgjv.dll → MindExecution.Plugins.Business.guko3zr1rb.dll} +0 -0
  14. package/wwwroot/_framework/{MindExecution.Plugins.Concept.rgwn0b8m2o.dll → MindExecution.Plugins.Concept.qmin06apyt.dll} +0 -0
  15. package/wwwroot/_framework/{MindExecution.Plugins.Directory.2qeqqundtn.dll → MindExecution.Plugins.Directory.6rw2l9utyr.dll} +0 -0
  16. package/wwwroot/_framework/{MindExecution.Plugins.PlanMaster.mlf2c4st5u.dll → MindExecution.Plugins.PlanMaster.72ir717kho.dll} +0 -0
  17. package/wwwroot/_framework/{MindExecution.Plugins.YouTube.acobc6tmxc.dll → MindExecution.Plugins.YouTube.rkge49vbw6.dll} +0 -0
  18. package/wwwroot/_framework/{MindExecution.Shared.6lbogo6eek.dll → MindExecution.Shared.q4dgev2e3z.dll} +0 -0
  19. package/wwwroot/_framework/{MindExecution.Web.y97l6vu05i.dll → MindExecution.Web.ckdrqv28k2.dll} +0 -0
  20. package/wwwroot/_framework/blazor.boot.json +21 -21
  21. package/wwwroot/index.html +1 -1
  22. package/wwwroot/service-worker-assets.js +25 -25
  23. package/wwwroot/service-worker.js +1 -1
package/electron/main.cjs CHANGED
@@ -8,7 +8,10 @@ const net = require('net');
8
8
  const path = require('path');
9
9
  const workspaceState = require('../desktop-workspace-state.cjs');
10
10
  const { createProductUpdateManager } = require('./update-manager.cjs');
11
- const { createRecurringProductUpdateOwner } = require('./recurring-update-owner.cjs');
11
+ const {
12
+ DEFAULT_UPDATE_INTERVAL_MS,
13
+ createRecurringProductUpdateOwner
14
+ } = require('./recurring-update-owner.cjs');
12
15
 
13
16
  const { resolveDesktopWorkspace } = workspaceState;
14
17
 
@@ -295,8 +298,8 @@ function initializeProductUpdates() {
295
298
  recurringProductUpdates = createRecurringProductUpdateOwner({
296
299
  manager: productUpdates,
297
300
  canRun: () => !isQuitting && !updateInstallSequenceStarted,
298
- initialDelayMs: 30 * 60_000,
299
- intervalMs: 30 * 60_000,
301
+ initialDelayMs: DEFAULT_UPDATE_INTERVAL_MS,
302
+ intervalMs: DEFAULT_UPDATE_INTERVAL_MS,
300
303
  onError: error => appendDesktopLog(`[update:recurring-error] ${error?.stack || error}`)
301
304
  });
302
305
  }
@@ -2,7 +2,24 @@ import assert from 'node:assert/strict';
2
2
  import test from 'node:test';
3
3
  import recurringOwnerModule from './recurring-update-owner.cjs';
4
4
 
5
- const { createRecurringProductUpdateOwner } = recurringOwnerModule;
5
+ const {
6
+ DEFAULT_UPDATE_INTERVAL_MS,
7
+ createRecurringProductUpdateOwner
8
+ } = recurringOwnerModule;
9
+
10
+ test('default recurring update cadence is one minute after the startup check', () => {
11
+ const owner = createRecurringProductUpdateOwner({
12
+ manager: { check: async () => ({ state: 'current' }) },
13
+ setTimer: () => ({ unref() {} }),
14
+ clearTimer: () => undefined
15
+ });
16
+
17
+ owner.start();
18
+ assert.equal(DEFAULT_UPDATE_INTERVAL_MS, 60_000);
19
+ assert.equal(owner.inspect().initialDelayMs, 60_000);
20
+ assert.equal(owner.inspect().intervalMs, 60_000);
21
+ owner.stop();
22
+ });
6
23
 
7
24
  test('one recurring owner checks once and never installs without user approval', async () => {
8
25
  let checkCalls = 0;
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const MINIMUM_UPDATE_DELAY_MS = 1_000;
4
+ const DEFAULT_UPDATE_INTERVAL_MS = 60_000;
4
5
 
5
6
  function normalizeDelay(value, fallback) {
6
7
  const delay = Number(value);
@@ -12,8 +13,8 @@ function normalizeDelay(value, fallback) {
12
13
  function createRecurringProductUpdateOwner({
13
14
  manager,
14
15
  canRun = () => true,
15
- initialDelayMs = 30 * 60_000,
16
- intervalMs = 30 * 60_000,
16
+ initialDelayMs = DEFAULT_UPDATE_INTERVAL_MS,
17
+ intervalMs = DEFAULT_UPDATE_INTERVAL_MS,
17
18
  setTimer = setTimeout,
18
19
  clearTimer = clearTimeout,
19
20
  onError = () => undefined
@@ -22,8 +23,8 @@ function createRecurringProductUpdateOwner({
22
23
  throw new TypeError('recurring-product-update-manager-required');
23
24
  }
24
25
 
25
- const initialDelay = normalizeDelay(initialDelayMs, 30 * 60_000);
26
- const interval = normalizeDelay(intervalMs, 30 * 60_000);
26
+ const initialDelay = normalizeDelay(initialDelayMs, DEFAULT_UPDATE_INTERVAL_MS);
27
+ const interval = normalizeDelay(intervalMs, DEFAULT_UPDATE_INTERVAL_MS);
27
28
  let stopped = true;
28
29
  let generation = 0;
29
30
  let timer = null;
@@ -90,4 +91,7 @@ function createRecurringProductUpdateOwner({
90
91
  };
91
92
  }
92
93
 
93
- module.exports = { createRecurringProductUpdateOwner };
94
+ module.exports = {
95
+ DEFAULT_UPDATE_INTERVAL_MS,
96
+ createRecurringProductUpdateOwner
97
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mindexec/cli",
3
- "version": "0.2.462",
3
+ "version": "0.2.465",
4
4
  "description": "MindExec local runtime and bridge CLI",
5
5
  "main": "server.js",
6
6
  "type": "module",
@@ -90,9 +90,10 @@
90
90
  "web-tree-sitter": "^0.22.6",
91
91
  "ws": "^8.16.0"
92
92
  },
93
- "overrides": {
94
- "body-parser": "1.20.6"
95
- },
93
+ "overrides": {
94
+ "body-parser": "1.20.6",
95
+ "js-yaml": "4.3.1"
96
+ },
96
97
  "bin": {
97
98
  "mindexec": "launch-bridge.cjs",
98
99
  "mind-bridge": "launch-bridge.cjs"
@@ -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 = '20260801-wheel-dpr-stable-v866';
8
+ const MINDMAP_CORE_BUILD_ID = '20260817-grid-distance-fade-v867';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -112,7 +112,6 @@
112
112
  const LOCAL_SNAP_GRID_SOLID_RADIUS_PX = LOCAL_SNAP_GRID_RADIUS_PX - LOCAL_SNAP_GRID_FADE_PX;
113
113
  const LOCAL_SNAP_GRID_RASTER_MIN_STEP_PX = 0.5;
114
114
  const LOCAL_SNAP_GRID_RASTER_MAX_PERIOD_PX = 2048;
115
- const LOCAL_SNAP_GRID_OPACITY_BUCKET = 0.04;
116
115
  const LOCAL_SNAP_GRID_DEFAULT_STEP_PX = 10;
117
116
  const LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX = 100;
118
117
  const LOCAL_SNAP_GRID_DEFAULT_OPACITY = 0.58;
@@ -3789,7 +3788,10 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3789
3788
  Number(majorStepPx) || LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX
3790
3789
  )
3791
3790
  );
3792
- const safeOpacity = Math.max(0.28, Math.min(0.68, Number(opacity) || LOCAL_SNAP_GRID_DEFAULT_OPACITY));
3791
+ const parsedOpacity = Number(opacity);
3792
+ const safeOpacity = Number.isFinite(parsedOpacity)
3793
+ ? Math.max(0, Math.min(0.68, parsedOpacity))
3794
+ : LOCAL_SNAP_GRID_DEFAULT_OPACITY;
3793
3795
  const localGridKey = [
3794
3796
  keyPrefix,
3795
3797
  safeStyleKind,
@@ -3890,6 +3892,9 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3890
3892
  const opacityValue = targetOpacity == null
3891
3893
  ? this._lastLocalSnapGridOpacity
3892
3894
  : String(targetOpacity);
3895
+ if (opacityValue) {
3896
+ this._lastLocalSnapGridOpacity = opacityValue;
3897
+ }
3893
3898
  if (this._localSnapGridVisible !== true) {
3894
3899
  this._localSnapGridVisible = true;
3895
3900
  if (layer.style.display !== 'block') {
@@ -3957,6 +3962,16 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3957
3962
  const left = Number(viewportMetrics.left || 0);
3958
3963
  const top = Number(viewportMetrics.top || 0);
3959
3964
  const pointerRevision = Math.max(0, Number(this._localSnapGridPointerRevision || 0));
3965
+ const camera = this.camera;
3966
+ const cameraZ = Math.max(1, Number(camera.position?.z || 1));
3967
+ const opacity = Math.max(0, Math.min(0.68, Number(
3968
+ window.MindMapRenderPlan?.getLocalSnapGridDistanceOpacity?.(cameraZ)
3969
+ ) || 0));
3970
+
3971
+ if (opacity <= 0.001) {
3972
+ this._setLocalSnapGridVisible(false);
3973
+ return false;
3974
+ }
3960
3975
 
3961
3976
  if (this.isZooming === true &&
3962
3977
  !!this._lastLocalSnapGridKey &&
@@ -3964,12 +3979,10 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3964
3979
  this._syncLocalSnapGridSpotlightPosition(width, height, left, top);
3965
3980
  this._lastLocalSnapGridPositionRevision = pointerRevision;
3966
3981
  this._localSnapGridStyleDeferredForZoom = true;
3967
- this._setLocalSnapGridVisible(true, this._lastLocalSnapGridOpacity || null);
3982
+ this._setLocalSnapGridVisible(true, opacity.toFixed(3));
3968
3983
  return true;
3969
3984
  }
3970
3985
 
3971
- const camera = this.camera;
3972
- const cameraZ = Math.max(1, Number(camera.position?.z || 1));
3973
3986
  const vfov = (Number(camera.fov || 45) * Math.PI) / 180;
3974
3987
  const viewHeight = 2 * Math.tan(vfov / 2) * cameraZ;
3975
3988
  const pxPerWorld = height / Math.max(1, viewHeight);
@@ -3979,11 +3992,6 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3979
3992
  this._lastLocalSnapGridWorldStep = gridProjection.worldStep;
3980
3993
  this._lastLocalSnapGridWorldPeriod = gridProjection.worldStep * 10;
3981
3994
  const styleKind = this._getLocalSnapGridStyleKind();
3982
- const rawOpacity = Math.max(0.38, Math.min(0.64, cameraZ <= 1800 ? 0.60 : 0.60 - ((cameraZ - 1800) / 36000)));
3983
- const opacity = Math.max(
3984
- 0.38,
3985
- Math.min(0.64, Math.round(rawOpacity / LOCAL_SNAP_GRID_OPACITY_BUCKET) * LOCAL_SNAP_GRID_OPACITY_BUCKET)
3986
- );
3987
3995
  const shouldDeferLocalGridStyleForZoom =
3988
3996
  this.isZooming === true &&
3989
3997
  styleKind !== 'dot' &&
@@ -4038,16 +4046,19 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4038
4046
  const height = Math.max(1, Number(viewportMetrics.height || 0));
4039
4047
  const left = Number(viewportMetrics.left || 0);
4040
4048
  const top = Number(viewportMetrics.top || 0);
4049
+ const cameraZ = Math.max(1, Number(this.camera?.position?.z || 1));
4050
+ const opacity = Math.max(0, Math.min(0.68, Number(
4051
+ window.MindMapRenderPlan?.getLocalSnapGridDistanceOpacity?.(cameraZ)
4052
+ ) || 0));
4053
+ if (opacity <= 0.001) {
4054
+ this._setLocalSnapGridVisible(false);
4055
+ return false;
4056
+ }
4041
4057
  const styleKind = this._getLocalSnapGridStyleKind();
4042
4058
  if (this.isZooming === true && styleKind === 'dot') {
4043
- const cameraZ = Math.max(1, Number(this.camera?.position?.z || 1));
4044
4059
  const vfov = (Number(this.camera?.fov || 45) * Math.PI) / 180;
4045
4060
  const pxPerWorld = height / Math.max(1, 2 * Math.tan(vfov / 2) * cameraZ);
4046
4061
  const projection = this._resolveLocalSnapGridWorldStep(pxPerWorld);
4047
- const rawOpacity = Math.max(0.38, Math.min(0.64,
4048
- cameraZ <= 1800 ? 0.60 : 0.60 - ((cameraZ - 1800) / 36000)));
4049
- const opacity = Math.max(0.38, Math.min(0.64,
4050
- Math.round(rawOpacity / LOCAL_SNAP_GRID_OPACITY_BUCKET) * LOCAL_SNAP_GRID_OPACITY_BUCKET));
4051
4062
  this._applyLocalSnapGridStyle(
4052
4063
  layer, styleKind, projection.smallStepPx, projection.majorStepPx, opacity);
4053
4064
  this._localSnapGridStyleDeferredForZoom = false;
@@ -4058,7 +4069,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4058
4069
  if (this.isZooming === true && styleKind !== 'dot') {
4059
4070
  this._localSnapGridStyleDeferredForZoom = true;
4060
4071
  }
4061
- this._setLocalSnapGridVisible(true, this._lastLocalSnapGridOpacity || null);
4072
+ this._setLocalSnapGridVisible(true, opacity.toFixed(3));
4062
4073
  return true;
4063
4074
  }
4064
4075
 
@@ -1,13 +1,15 @@
1
1
  (function () {
2
2
  'use strict';
3
3
 
4
- const BUILD_ID = '20260801-wheel-dpr-stable-v44';
4
+ const BUILD_ID = '20260817-grid-distance-fade-v45';
5
5
  const FRAME_SAMPLE_LIMIT = 240;
6
6
  const INITIAL_LINE_TEXTURE_ROWS = 1024;
7
7
  const GPU_WARM_RETRY_DELAY_MS = 120;
8
8
  const IMAGE_ATLAS_TILE_SIZE = 128;
9
9
  const IMAGE_ATLAS_UPLOAD_SETTLE_MS = 1000;
10
10
  const IMAGE_ATLAS_UPLOAD_MAX_WAIT_MS = 3500;
11
+ const LOCAL_SNAP_GRID_FADE_START_Z = 9000;
12
+ const LOCAL_SNAP_GRID_FADE_END_Z = 30000;
11
13
  const frameSampleStates = new WeakMap();
12
14
  const residentLinePrewarmStates = new WeakMap();
13
15
  const residentTransitionStates = new WeakMap();
@@ -71,6 +73,26 @@
71
73
  );
72
74
  }
73
75
 
76
+ function getLocalSnapGridDistanceOpacity(cameraZ) {
77
+ const parsedCameraZ = Math.abs(Number(cameraZ));
78
+ const safeCameraZ = Number.isFinite(parsedCameraZ) ? Math.max(1, parsedCameraZ) : 1;
79
+ const baseOpacity = Math.max(
80
+ 0.38,
81
+ Math.min(0.64, safeCameraZ <= 1800 ? 0.60 : 0.60 - ((safeCameraZ - 1800) / 36000))
82
+ );
83
+ if (safeCameraZ <= LOCAL_SNAP_GRID_FADE_START_Z) {
84
+ return baseOpacity;
85
+ }
86
+ if (safeCameraZ >= LOCAL_SNAP_GRID_FADE_END_Z) {
87
+ return 0;
88
+ }
89
+
90
+ const fadeProgress = (safeCameraZ - LOCAL_SNAP_GRID_FADE_START_Z) /
91
+ (LOCAL_SNAP_GRID_FADE_END_Z - LOCAL_SNAP_GRID_FADE_START_Z);
92
+ const smoothProgress = fadeProgress * fadeProgress * (3 - (2 * fadeProgress));
93
+ return baseOpacity * (1 - smoothProgress);
94
+ }
95
+
74
96
  function shouldUseInteractiveRendererDpr(module, frameState = null) {
75
97
  const wheelOnlyCameraNavigation = isWheelOnlyCameraNavigation(module);
76
98
  return !!(
@@ -1890,6 +1912,7 @@
1890
1912
  window.MindMapRenderPlan = Object.freeze({
1891
1913
  configureImageAtlasTexture,
1892
1914
  getImageAtlasOutputColorChunk,
1915
+ getLocalSnapGridDistanceOpacity,
1893
1916
  shouldUseInteractiveRendererDpr,
1894
1917
  isRendererDprInteractionActive,
1895
1918
  getCameraOnlyWebglBlockerMask,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "mainAssemblyName": "MindExecution.Web",
3
3
  "resources": {
4
- "hash": "sha256-IzBqQA6QksjQYpCU66ODIAsRnDLECTqGe8SZNRGujiI=",
4
+ "hash": "sha256-qric6rBUBS5gmgoB1gW4vDCInw7tghBDQoQvSie1BBE=",
5
5
  "fingerprinting": {
6
6
  "Google.Protobuf.9h59ukbel7.dll": "Google.Protobuf.dll",
7
7
  "Markdig.d1j7v41cl1.dll": "Markdig.dll",
@@ -122,16 +122,16 @@
122
122
  "System.brmz7yk5qh.dll": "System.dll",
123
123
  "netstandard.b50t77veor.dll": "netstandard.dll",
124
124
  "System.Private.CoreLib.g6ztz7cmo2.dll": "System.Private.CoreLib.dll",
125
- "MindExecution.Core.0b8jdcyhj8.dll": "MindExecution.Core.dll",
126
- "MindExecution.Kernel.hm6hmoblm6.dll": "MindExecution.Kernel.dll",
127
- "MindExecution.Plugins.Admin.oztzw186ns.dll": "MindExecution.Plugins.Admin.dll",
128
- "MindExecution.Plugins.Business.a1e73rkgjv.dll": "MindExecution.Plugins.Business.dll",
129
- "MindExecution.Plugins.Concept.rgwn0b8m2o.dll": "MindExecution.Plugins.Concept.dll",
130
- "MindExecution.Plugins.Directory.2qeqqundtn.dll": "MindExecution.Plugins.Directory.dll",
131
- "MindExecution.Plugins.PlanMaster.mlf2c4st5u.dll": "MindExecution.Plugins.PlanMaster.dll",
132
- "MindExecution.Plugins.YouTube.acobc6tmxc.dll": "MindExecution.Plugins.YouTube.dll",
133
- "MindExecution.Shared.6lbogo6eek.dll": "MindExecution.Shared.dll",
134
- "MindExecution.Web.y97l6vu05i.dll": "MindExecution.Web.dll",
125
+ "MindExecution.Core.o29fdql6j5.dll": "MindExecution.Core.dll",
126
+ "MindExecution.Kernel.98wpeg0ntq.dll": "MindExecution.Kernel.dll",
127
+ "MindExecution.Plugins.Admin.y25y20jkiv.dll": "MindExecution.Plugins.Admin.dll",
128
+ "MindExecution.Plugins.Business.guko3zr1rb.dll": "MindExecution.Plugins.Business.dll",
129
+ "MindExecution.Plugins.Concept.qmin06apyt.dll": "MindExecution.Plugins.Concept.dll",
130
+ "MindExecution.Plugins.Directory.6rw2l9utyr.dll": "MindExecution.Plugins.Directory.dll",
131
+ "MindExecution.Plugins.PlanMaster.72ir717kho.dll": "MindExecution.Plugins.PlanMaster.dll",
132
+ "MindExecution.Plugins.YouTube.rkge49vbw6.dll": "MindExecution.Plugins.YouTube.dll",
133
+ "MindExecution.Shared.q4dgev2e3z.dll": "MindExecution.Shared.dll",
134
+ "MindExecution.Web.ckdrqv28k2.dll": "MindExecution.Web.dll",
135
135
  "dotnet.native.566r55w3xu.js": "dotnet.native.js",
136
136
  "dotnet.native.x6q5aixc38.wasm": "dotnet.native.wasm",
137
137
  "dotnet.js": "dotnet.js",
@@ -276,18 +276,18 @@
276
276
  "System.Xml.XDocument.sn51jas17n.dll": "sha256-GNI2kFgFmPTwzuzwUn8gxK+AzGLUWRJFdg9JzIbrybQ=",
277
277
  "System.brmz7yk5qh.dll": "sha256-CfM2miyj1KHApFmqMdLYWio3S/jrdON2pW9Xr2nTwlo=",
278
278
  "netstandard.b50t77veor.dll": "sha256-//jQGOXjb8ET8WtXgOJrAxLx6E7zDJ5RjRRutwkvmxo=",
279
- "MindExecution.Core.0b8jdcyhj8.dll": "sha256-zO2Pf5hEeQIy3+8Hkn1MYGQEFR3sG1ov/sz5rBoblVA=",
280
- "MindExecution.Kernel.hm6hmoblm6.dll": "sha256-N55xbLNkHU2zPdjUCg8+b7POfJXwOO7FbMbtBf8DMVQ=",
281
- "MindExecution.Plugins.Business.a1e73rkgjv.dll": "sha256-zrGB3UOmX+dKr9qloUjwZtgs3ks+iz6tbs+GUGTDdm0=",
282
- "MindExecution.Plugins.Concept.rgwn0b8m2o.dll": "sha256-5e/Ff46+w0CUJcED62+TYIgbZpHEmmdOko1iOZ6KrW4=",
283
- "MindExecution.Plugins.PlanMaster.mlf2c4st5u.dll": "sha256-etePo6A8j9ISSi6STcmts7S/6rUoygzDBXtK/XR92Wo=",
284
- "MindExecution.Shared.6lbogo6eek.dll": "sha256-qqB6SQV8z9YX7gMmkGYbveLoLojb30rR/L4CdY8DXec=",
285
- "MindExecution.Web.y97l6vu05i.dll": "sha256-6mXMnhlTEHLT5Eztde7zRWxEYt1b5s9de7EJfQ2InBs="
279
+ "MindExecution.Core.o29fdql6j5.dll": "sha256-UH96IvrfKWrOj39ykdSicRtoQMA/A3nimUSnS+GUc/k=",
280
+ "MindExecution.Kernel.98wpeg0ntq.dll": "sha256-aT2gedrAs1kPtzQ7YFoujKj5yXcOgJluv9A+OgiIrAk=",
281
+ "MindExecution.Plugins.Business.guko3zr1rb.dll": "sha256-eEExPltiVWL6o1b/G8kjBnImWkINqQxxJ7twmvmenrw=",
282
+ "MindExecution.Plugins.Concept.qmin06apyt.dll": "sha256-EnaBEIap9etgziFfzISb42qPZ1OrE4c8X+18Y+DbP3w=",
283
+ "MindExecution.Plugins.PlanMaster.72ir717kho.dll": "sha256-Lw/Z7y9A7pBq3VEI7Z84VXlQYnH+bsCl6+Z9C3MQtMY=",
284
+ "MindExecution.Shared.q4dgev2e3z.dll": "sha256-hg8vP8F3M9KsvXgz6rJ6hKALTMVkEoaMGtffcpzHuCM=",
285
+ "MindExecution.Web.ckdrqv28k2.dll": "sha256-lCycPpTeLEiG095TBjUsea+emdlYObNIYH8yaWyt794="
286
286
  },
287
287
  "lazyAssembly": {
288
- "MindExecution.Plugins.Admin.oztzw186ns.dll": "sha256-bLmSJjmhatetPRQsf8svMc9vSh0lzmKRm3OWdcywf2w=",
289
- "MindExecution.Plugins.Directory.2qeqqundtn.dll": "sha256-9vAmxvlOa9K+6bE9k30Z80hSXxU6BBnvjid7p/q+css=",
290
- "MindExecution.Plugins.YouTube.acobc6tmxc.dll": "sha256-+gObV6v2xJ8tUczx3Q64bLEnXxBecFyGPRrofjTW9JI="
288
+ "MindExecution.Plugins.Admin.y25y20jkiv.dll": "sha256-xj9rsu8xcn/LmMtjcNHNukytbWa/wyuwoY4xAlppfAA=",
289
+ "MindExecution.Plugins.Directory.6rw2l9utyr.dll": "sha256-Uis7pFLHDjVsw7i57UrV8/gNzw0mvSAFZqMATYW4WXc=",
290
+ "MindExecution.Plugins.YouTube.rkge49vbw6.dll": "sha256-lbyn5GAqhcXcve5Py1BkleJ+7E5GLtnogojzkQzOE9g="
291
291
  }
292
292
  },
293
293
  "cacheBootResources": true,
@@ -614,7 +614,7 @@
614
614
  }
615
615
 
616
616
  const base = '_content/MindExecution.Shared/js/';
617
- const scriptVersion = '20260815-lod-grid-live-v973';
617
+ const scriptVersion = '20260817-grid-distance-fade-v974';
618
618
  const scriptUrl = (script) => `${base}${script}?v=${scriptVersion}`;
619
619
  console.log(`[Script Loader] Shared JS version: ${scriptVersion}`);
620
620
  const criticalScripts = [
@@ -1,5 +1,5 @@
1
1
  self.assetsManifest = {
2
- "version": "pPdHB1um",
2
+ "version": "CPxDbiec",
3
3
  "assets": [
4
4
  {
5
5
  "hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
@@ -82,7 +82,7 @@ self.assetsManifest = {
82
82
  "url": "_content/MindExecution.Shared/js/mind-map-animated-image-preview.js"
83
83
  },
84
84
  {
85
- "hash": "sha256-bKZK/OA/kLveWaNcyQGsjwhZsK+VG8zxKY1FyGBHp7o=",
85
+ "hash": "sha256-bCeewrAc+qk9g2hGQiX7KREsHZh6sYFJRp5nKBGAkks=",
86
86
  "url": "_content/MindExecution.Shared/js/mind-map-core.js"
87
87
  },
88
88
  {
@@ -170,7 +170,7 @@ self.assetsManifest = {
170
170
  "url": "_content/MindExecution.Shared/js/mind-map-remote-codecs.js"
171
171
  },
172
172
  {
173
- "hash": "sha256-Bt4KcL8tpxwxc65QyRnApkoI80NJ0zyWY7NuepM2N+g=",
173
+ "hash": "sha256-PihHBHk/uBhyozFJeiUdN/9yWB4aXkeUnoHg1Fjuiik=",
174
174
  "url": "_content/MindExecution.Shared/js/mind-map-render-plan.js"
175
175
  },
176
176
  {
@@ -434,44 +434,44 @@ self.assetsManifest = {
434
434
  "url": "_framework/MimeMapping.og9ys58ylm.dll"
435
435
  },
436
436
  {
437
- "hash": "sha256-zO2Pf5hEeQIy3+8Hkn1MYGQEFR3sG1ov/sz5rBoblVA=",
438
- "url": "_framework/MindExecution.Core.0b8jdcyhj8.dll"
437
+ "hash": "sha256-UH96IvrfKWrOj39ykdSicRtoQMA/A3nimUSnS+GUc/k=",
438
+ "url": "_framework/MindExecution.Core.o29fdql6j5.dll"
439
439
  },
440
440
  {
441
- "hash": "sha256-N55xbLNkHU2zPdjUCg8+b7POfJXwOO7FbMbtBf8DMVQ=",
442
- "url": "_framework/MindExecution.Kernel.hm6hmoblm6.dll"
441
+ "hash": "sha256-aT2gedrAs1kPtzQ7YFoujKj5yXcOgJluv9A+OgiIrAk=",
442
+ "url": "_framework/MindExecution.Kernel.98wpeg0ntq.dll"
443
443
  },
444
444
  {
445
- "hash": "sha256-bLmSJjmhatetPRQsf8svMc9vSh0lzmKRm3OWdcywf2w=",
446
- "url": "_framework/MindExecution.Plugins.Admin.oztzw186ns.dll"
445
+ "hash": "sha256-xj9rsu8xcn/LmMtjcNHNukytbWa/wyuwoY4xAlppfAA=",
446
+ "url": "_framework/MindExecution.Plugins.Admin.y25y20jkiv.dll"
447
447
  },
448
448
  {
449
- "hash": "sha256-zrGB3UOmX+dKr9qloUjwZtgs3ks+iz6tbs+GUGTDdm0=",
450
- "url": "_framework/MindExecution.Plugins.Business.a1e73rkgjv.dll"
449
+ "hash": "sha256-eEExPltiVWL6o1b/G8kjBnImWkINqQxxJ7twmvmenrw=",
450
+ "url": "_framework/MindExecution.Plugins.Business.guko3zr1rb.dll"
451
451
  },
452
452
  {
453
- "hash": "sha256-5e/Ff46+w0CUJcED62+TYIgbZpHEmmdOko1iOZ6KrW4=",
454
- "url": "_framework/MindExecution.Plugins.Concept.rgwn0b8m2o.dll"
453
+ "hash": "sha256-EnaBEIap9etgziFfzISb42qPZ1OrE4c8X+18Y+DbP3w=",
454
+ "url": "_framework/MindExecution.Plugins.Concept.qmin06apyt.dll"
455
455
  },
456
456
  {
457
- "hash": "sha256-9vAmxvlOa9K+6bE9k30Z80hSXxU6BBnvjid7p/q+css=",
458
- "url": "_framework/MindExecution.Plugins.Directory.2qeqqundtn.dll"
457
+ "hash": "sha256-Uis7pFLHDjVsw7i57UrV8/gNzw0mvSAFZqMATYW4WXc=",
458
+ "url": "_framework/MindExecution.Plugins.Directory.6rw2l9utyr.dll"
459
459
  },
460
460
  {
461
- "hash": "sha256-etePo6A8j9ISSi6STcmts7S/6rUoygzDBXtK/XR92Wo=",
462
- "url": "_framework/MindExecution.Plugins.PlanMaster.mlf2c4st5u.dll"
461
+ "hash": "sha256-Lw/Z7y9A7pBq3VEI7Z84VXlQYnH+bsCl6+Z9C3MQtMY=",
462
+ "url": "_framework/MindExecution.Plugins.PlanMaster.72ir717kho.dll"
463
463
  },
464
464
  {
465
- "hash": "sha256-+gObV6v2xJ8tUczx3Q64bLEnXxBecFyGPRrofjTW9JI=",
466
- "url": "_framework/MindExecution.Plugins.YouTube.acobc6tmxc.dll"
465
+ "hash": "sha256-lbyn5GAqhcXcve5Py1BkleJ+7E5GLtnogojzkQzOE9g=",
466
+ "url": "_framework/MindExecution.Plugins.YouTube.rkge49vbw6.dll"
467
467
  },
468
468
  {
469
- "hash": "sha256-qqB6SQV8z9YX7gMmkGYbveLoLojb30rR/L4CdY8DXec=",
470
- "url": "_framework/MindExecution.Shared.6lbogo6eek.dll"
469
+ "hash": "sha256-hg8vP8F3M9KsvXgz6rJ6hKALTMVkEoaMGtffcpzHuCM=",
470
+ "url": "_framework/MindExecution.Shared.q4dgev2e3z.dll"
471
471
  },
472
472
  {
473
- "hash": "sha256-6mXMnhlTEHLT5Eztde7zRWxEYt1b5s9de7EJfQ2InBs=",
474
- "url": "_framework/MindExecution.Web.y97l6vu05i.dll"
473
+ "hash": "sha256-lCycPpTeLEiG095TBjUsea+emdlYObNIYH8yaWyt794=",
474
+ "url": "_framework/MindExecution.Web.ckdrqv28k2.dll"
475
475
  },
476
476
  {
477
477
  "hash": "sha256-IsZJ91/OW+fHzNqIgEc7Y072ns8z9dGritiSyvR9Wgc=",
@@ -790,7 +790,7 @@ self.assetsManifest = {
790
790
  "url": "_framework/Websocket.Client.vapounvmnl.dll"
791
791
  },
792
792
  {
793
- "hash": "sha256-Gc/yjpKYI4iA4dz/l+0OJ2h42y6wjfcPqgm3MClrO4U=",
793
+ "hash": "sha256-Np9iGB2k1knSSxNYSd8t3Kg179tEC7UDj9eKiPe05/k=",
794
794
  "url": "_framework/blazor.boot.json"
795
795
  },
796
796
  {
@@ -866,7 +866,7 @@ self.assetsManifest = {
866
866
  "url": "icon-512.png"
867
867
  },
868
868
  {
869
- "hash": "sha256-09pACZREKNjnfet+hL8kX0iFNjHKgdjnCO4JMu/we94=",
869
+ "hash": "sha256-d44zcpG/DmoTSCD304dejfBUpHeb5+gAh6dt+E9l2v4=",
870
870
  "url": "index.html"
871
871
  },
872
872
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: pPdHB1um */
1
+ /* Manifest version: CPxDbiec */
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