@mindexec/cli 0.2.267 → 0.2.269

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.267",
3
+ "version": "0.2.269",
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-css3d-flat-wheel-v715';
8
+ const MINDMAP_CORE_BUILD_ID = '20260620-css3d-flat-wheel-v717';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -1327,7 +1327,7 @@
1327
1327
  module._framePathStats = stats;
1328
1328
  }
1329
1329
 
1330
- function recordCameraMotionFastPathStatus(module, status, reason, details = {}) {
1330
+ function recordCameraMotionFastPathStatus(module, status, reason, details = null) {
1331
1331
  if (!module) {
1332
1332
  return;
1333
1333
  }
@@ -1335,11 +1335,19 @@
1335
1335
  const previous = module._cameraMotionFastPathStatus || null;
1336
1336
  const normalizedStatus = String(status || '').trim() || 'unknown';
1337
1337
  const normalizedReason = String(reason || '').trim() || normalizedStatus;
1338
- const count = previous &&
1338
+ if (previous &&
1339
1339
  previous.status === normalizedStatus &&
1340
- previous.reason === normalizedReason
1341
- ? Number(previous.count || 0) + 1
1342
- : 1;
1340
+ previous.reason === normalizedReason) {
1341
+ previous.count = Number(previous.count || 0) + 1;
1342
+ if (details && module.renderDebugFlags?.enableFramePerfProbe === true) {
1343
+ previous.details = details;
1344
+ previous.updatedAt = typeof performance !== 'undefined' && typeof performance.now === 'function'
1345
+ ? performance.now()
1346
+ : Date.now();
1347
+ }
1348
+ return;
1349
+ }
1350
+
1343
1351
  const updatedAt = typeof performance !== 'undefined' && typeof performance.now === 'function'
1344
1352
  ? performance.now()
1345
1353
  : Date.now();
@@ -1347,8 +1355,8 @@
1347
1355
  module._cameraMotionFastPathStatus = {
1348
1356
  status: normalizedStatus,
1349
1357
  reason: normalizedReason,
1350
- count,
1351
- details,
1358
+ count: 1,
1359
+ details: details || null,
1352
1360
  updatedAt
1353
1361
  };
1354
1362
  }
@@ -4014,9 +4022,11 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4014
4022
  return this._localSnapGridLayer;
4015
4023
  }
4016
4024
 
4017
- const layer = document.createElement('div');
4025
+ const layer = document.createElement('canvas');
4018
4026
  layer.className = 'mindcanvas-local-snap-grid-layer';
4019
4027
  layer.setAttribute('aria-hidden', 'true');
4028
+ layer.width = LOCAL_SNAP_GRID_DIAMETER_PX;
4029
+ layer.height = LOCAL_SNAP_GRID_DIAMETER_PX;
4020
4030
  layer.style.position = 'absolute';
4021
4031
  layer.style.left = '0';
4022
4032
  layer.style.top = '0';
@@ -4026,7 +4036,6 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4026
4036
  layer.style.pointerEvents = 'none';
4027
4037
  layer.style.display = 'none';
4028
4038
  layer.style.opacity = '0';
4029
- layer.style.backgroundRepeat = 'repeat';
4030
4039
  layer.style.backgroundColor = 'transparent';
4031
4040
  layer.style.borderRadius = '50%';
4032
4041
  layer.style.overflow = 'hidden';
@@ -4035,9 +4044,6 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4035
4044
  layer.style.willChange = 'transform, opacity';
4036
4045
  layer.style.transform = 'translate3d(0, 0, 0)';
4037
4046
  layer.style.transition = 'opacity 90ms linear';
4038
- const mask = 'radial-gradient(circle at center, rgba(0,0,0,0.98) 0%, rgba(0,0,0,0.82) 34%, rgba(0,0,0,0.38) 56%, rgba(0,0,0,0.11) 74%, rgba(0,0,0,0.025) 88%, transparent 100%)';
4039
- layer.style.maskImage = mask;
4040
- layer.style.webkitMaskImage = mask;
4041
4047
 
4042
4048
  const cssElement = this.cssRenderer?.domElement;
4043
4049
  if (cssElement?.parentNode === this.container) {
@@ -4059,6 +4065,83 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4059
4065
  return themeName === 'SpatialGrid2D' ? 'dot' : 'line';
4060
4066
  }
4061
4067
 
4068
+ _drawLocalSnapGridBitmap(canvas, styleKind, smallStepPx, majorStepPx) {
4069
+ if (!canvas || typeof canvas.getContext !== 'function') {
4070
+ return false;
4071
+ }
4072
+
4073
+ const ctx = canvas.getContext('2d', { alpha: true });
4074
+ if (!ctx) {
4075
+ return false;
4076
+ }
4077
+
4078
+ const size = LOCAL_SNAP_GRID_DIAMETER_PX;
4079
+ const center = LOCAL_SNAP_GRID_RADIUS_PX;
4080
+ if (canvas.width !== size) {
4081
+ canvas.width = size;
4082
+ }
4083
+ if (canvas.height !== size) {
4084
+ canvas.height = size;
4085
+ }
4086
+
4087
+ const smallStep = Math.max(LOCAL_SNAP_GRID_MIN_STEP_PX, Number(smallStepPx) || LOCAL_SNAP_GRID_DEFAULT_STEP_PX);
4088
+ const majorStep = Math.max(smallStep, Number(majorStepPx) || LOCAL_SNAP_GRID_DEFAULT_MAJOR_STEP_PX);
4089
+ ctx.clearRect(0, 0, size, size);
4090
+
4091
+ if (styleKind === 'dot') {
4092
+ ctx.fillStyle = 'rgba(58, 69, 88, 0.46)';
4093
+ const dotRadius = 1.15;
4094
+ for (let y = 0; y <= size; y += smallStep) {
4095
+ for (let x = 0; x <= size; x += smallStep) {
4096
+ ctx.beginPath();
4097
+ ctx.arc(x, y, dotRadius, 0, Math.PI * 2);
4098
+ ctx.fill();
4099
+ }
4100
+ }
4101
+
4102
+ ctx.fillStyle = 'rgba(15, 23, 42, 0.62)';
4103
+ const majorDotRadius = 1.85;
4104
+ for (let y = 0; y <= size; y += majorStep) {
4105
+ for (let x = 0; x <= size; x += majorStep) {
4106
+ ctx.beginPath();
4107
+ ctx.arc(x, y, majorDotRadius, 0, Math.PI * 2);
4108
+ ctx.fill();
4109
+ }
4110
+ }
4111
+ } else {
4112
+ const drawLines = (step, color, width) => {
4113
+ ctx.strokeStyle = color;
4114
+ ctx.lineWidth = width;
4115
+ ctx.beginPath();
4116
+ for (let x = 0.5; x <= size; x += step) {
4117
+ ctx.moveTo(x, 0);
4118
+ ctx.lineTo(x, size);
4119
+ }
4120
+ for (let y = 0.5; y <= size; y += step) {
4121
+ ctx.moveTo(0, y);
4122
+ ctx.lineTo(size, y);
4123
+ }
4124
+ ctx.stroke();
4125
+ };
4126
+
4127
+ drawLines(smallStep, 'rgba(51, 65, 85, 0.24)', 1);
4128
+ drawLines(majorStep, 'rgba(15, 23, 42, 0.42)', 1);
4129
+ }
4130
+
4131
+ ctx.globalCompositeOperation = 'destination-in';
4132
+ const fade = ctx.createRadialGradient(center, center, center * 0.18, center, center, center);
4133
+ fade.addColorStop(0, 'rgba(0,0,0,1)');
4134
+ fade.addColorStop(0.34, 'rgba(0,0,0,0.92)');
4135
+ fade.addColorStop(0.56, 'rgba(0,0,0,0.48)');
4136
+ fade.addColorStop(0.74, 'rgba(0,0,0,0.14)');
4137
+ fade.addColorStop(0.88, 'rgba(0,0,0,0.035)');
4138
+ fade.addColorStop(1, 'rgba(0,0,0,0)');
4139
+ ctx.fillStyle = fade;
4140
+ ctx.fillRect(0, 0, size, size);
4141
+ ctx.globalCompositeOperation = 'source-over';
4142
+ return true;
4143
+ }
4144
+
4062
4145
  _applyLocalSnapGridStyle(layer, styleKind, smallStepPx, majorStepPx, opacity, keyPrefix = 'style') {
4063
4146
  if (!layer) {
4064
4147
  return false;
@@ -4086,23 +4169,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4086
4169
  this._lastLocalSnapGridKey = localGridKey;
4087
4170
  const opacityValue = safeOpacity.toFixed(3);
4088
4171
  this._lastLocalSnapGridOpacity = opacityValue;
4089
- if (safeStyleKind === 'dot') {
4090
- layer.style.backgroundImage = [
4091
- 'radial-gradient(circle at 0 0, rgba(58, 69, 88, 0.28) 1px, transparent 1.45px)',
4092
- 'radial-gradient(circle at 0 0, rgba(30, 41, 59, 0.4) 1.6px, transparent 2.05px)'
4093
- ].join(', ');
4094
- layer.style.backgroundSize = `${safeSmallStep.toFixed(3)}px ${safeSmallStep.toFixed(3)}px, ${safeMajorStep.toFixed(3)}px ${safeMajorStep.toFixed(3)}px`;
4095
- layer.style.backgroundPosition = '0 0, 0 0';
4096
- } else {
4097
- layer.style.backgroundImage = [
4098
- 'linear-gradient(to right, rgba(51, 65, 85, 0.16) 1px, transparent 1px)',
4099
- 'linear-gradient(to bottom, rgba(51, 65, 85, 0.16) 1px, transparent 1px)',
4100
- 'linear-gradient(to right, rgba(15, 23, 42, 0.28) 1px, transparent 1px)',
4101
- 'linear-gradient(to bottom, rgba(15, 23, 42, 0.28) 1px, transparent 1px)'
4102
- ].join(', ');
4103
- layer.style.backgroundSize = `${safeSmallStep.toFixed(3)}px ${safeSmallStep.toFixed(3)}px, ${safeSmallStep.toFixed(3)}px ${safeSmallStep.toFixed(3)}px, ${safeMajorStep.toFixed(3)}px ${safeMajorStep.toFixed(3)}px, ${safeMajorStep.toFixed(3)}px ${safeMajorStep.toFixed(3)}px`;
4104
- layer.style.backgroundPosition = '0 0, 0 0, 0 0, 0 0';
4105
- }
4172
+ this._drawLocalSnapGridBitmap(layer, safeStyleKind, safeSmallStep, safeMajorStep);
4106
4173
  if (layer.style.opacity !== opacityValue) {
4107
4174
  layer.style.opacity = opacityValue;
4108
4175
  }
@@ -5502,9 +5569,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
5502
5569
  this.setLocalSnapGridClientPoint?.(Number(clientX), Number(clientY));
5503
5570
  }
5504
5571
 
5505
- recordCameraMotionFastPathStatus(this, 'hit', 'ua-wheel-zoom-direct', {
5506
- coalescedWheelEvents: Number(options?.coalescedWheelEvents || 0)
5507
- });
5572
+ recordCameraMotionFastPathStatus(this, 'hit', 'ua-wheel-zoom-direct');
5508
5573
 
5509
5574
  this._cursorDomDeferredForMotion = true;
5510
5575
 
@@ -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-css3d-flat-wheel-v715" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-css3d-flat-wheel-v715" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260620-css3d-flat-wheel-v717" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-css3d-flat-wheel-v717" />
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-css3d-flat-wheel-v715';
582
+ const scriptVersion = '20260620-css3d-flat-wheel-v717';
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": "MKHv0KED",
2
+ "version": "/7T5wh84",
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-W1ZPZtb6zK+6cKGNIE44BVqVd/JdOYxOfBojVhlaJaE=",
81
+ "hash": "sha256-Ikvk4We4OWmiVUpNYw1cLxJ2rG5jF8Ywn2jYMmIAfUw=",
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-+AycgD82SJsdhRtXzRfY0F/blfwIdnRyQD/9N9f437s=",
837
+ "hash": "sha256-hImUdqfR91Khdb59Xs20+qDOhbAcjjuT67jpBtox6lU=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: MKHv0KED */
1
+ /* Manifest version: /7T5wh84 */
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