@mindexec/cli 0.2.404 → 0.2.406

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.404",
3
+ "version": "0.2.406",
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 = '20260627-midfar-border-soft-v835';
8
+ const MINDMAP_CORE_BUILD_ID = '20260628-local-grid-null-pointer-v841';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -3677,6 +3677,10 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3677
3677
  const left = Number(viewportMetrics.left || 0);
3678
3678
  const top = Number(viewportMetrics.top || 0);
3679
3679
  const hasPointer =
3680
+ this._lastSnapGridClientX !== null &&
3681
+ this._lastSnapGridClientX !== undefined &&
3682
+ this._lastSnapGridClientY !== null &&
3683
+ this._lastSnapGridClientY !== undefined &&
3680
3684
  Number.isFinite(Number(this._lastSnapGridClientX)) &&
3681
3685
  Number.isFinite(Number(this._lastSnapGridClientY));
3682
3686
  const centerX = hasPointer
@@ -3791,6 +3795,10 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
3791
3795
  const left = Number(viewportMetrics.left || 0);
3792
3796
  const top = Number(viewportMetrics.top || 0);
3793
3797
  const hasPointer =
3798
+ this._lastSnapGridClientX !== null &&
3799
+ this._lastSnapGridClientX !== undefined &&
3800
+ this._lastSnapGridClientY !== null &&
3801
+ this._lastSnapGridClientY !== undefined &&
3794
3802
  Number.isFinite(Number(this._lastSnapGridClientX)) &&
3795
3803
  Number.isFinite(Number(this._lastSnapGridClientY));
3796
3804
  const centerX = hasPointer
@@ -6050,6 +6058,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6050
6058
  const residentBandChanging = isResidentMidFarLodFrame &&
6051
6059
  this.lodRenderer?.willLodBandChange?.(this.camera) === true;
6052
6060
  let canDeferResidentDirtyIdleFrame = false;
6061
+ let canDeferResidentDirtyMotionFrame = false;
6053
6062
  if (isResidentMidFarLodFrame &&
6054
6063
  residentDirty === true &&
6055
6064
  residentBandChanging !== true &&
@@ -6062,9 +6071,20 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6062
6071
  typeof this.lodRenderer?.shouldSkipStableResidentFrame === 'function') {
6063
6072
  canDeferResidentDirtyIdleFrame = this.lodRenderer.shouldSkipStableResidentFrame(this.camera, this) === true;
6064
6073
  }
6074
+ if (isResidentMidFarLodFrame &&
6075
+ residentDirty === true &&
6076
+ residentBandChanging !== true &&
6077
+ (isCameraMoving === true || this.isPanning === true || this.isZooming === true) &&
6078
+ !isNodeInteracting &&
6079
+ !hasNonCameraNavigationForcedUpdate &&
6080
+ !hasPendingNearCssWarmup &&
6081
+ typeof this.lodRenderer?.shouldSkipStableResidentFrame === 'function') {
6082
+ canDeferResidentDirtyMotionFrame = this.lodRenderer.shouldSkipStableResidentFrame(this.camera, this) === true;
6083
+ }
6065
6084
  const residentDirtyRequiresUpdate =
6066
6085
  residentDirty === true &&
6067
- canDeferResidentDirtyIdleFrame !== true;
6086
+ canDeferResidentDirtyIdleFrame !== true &&
6087
+ canDeferResidentDirtyMotionFrame !== true;
6068
6088
  const residentMidFarStable =
6069
6089
  isResidentMidFarLodFrame &&
6070
6090
  residentDirtyRequiresUpdate !== true &&
@@ -7079,6 +7099,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
7079
7099
  freezeFullRes: shouldFreezeFullResDuringMotion === true,
7080
7100
  residentMidFarStable: residentMidFarStable === true,
7081
7101
  residentDirty: residentDirty === true,
7102
+ residentDirtyDeferredIdle: canDeferResidentDirtyIdleFrame === true,
7103
+ residentDirtyDeferredMotion: canDeferResidentDirtyMotionFrame === true,
7082
7104
  residentBandChanging: residentBandChanging === true,
7083
7105
  viewSyncMode: String(lodUpdateBreakdownThisFrame?.mode || ''),
7084
7106
  lodUpdateCalled: lodUpdateCalledThisFrame === true,
@@ -51,7 +51,7 @@
51
51
  // ▲▲▲ [Usage] ▲▲▲
52
52
 
53
53
  // Procedural line rendering settings
54
- const LOD_RENDERER_BUILD_ID = '20260627-midfar-border-soft-v835';
54
+ const LOD_RENDERER_BUILD_ID = '20260628-pan-wheel-resident-defer-v840';
55
55
  const DirtyKind = Object.freeze({
56
56
  ResidentFullRebuild: 'resident-full-rebuild',
57
57
  ResidentPatch: 'resident-patch',
@@ -6551,14 +6551,24 @@
6551
6551
  // Update line disable flag based on current instance count
6552
6552
  // Full rebuild if dirty, otherwise only update positions if dragging
6553
6553
  _prof('instanceUpdate');
6554
+ let residentFullBuildBlockedThisFrame = false;
6554
6555
  if (this._instancesDirty &&
6555
6556
  this._instancesDirtyReason !== 'line-details' &&
6556
6557
  !this._canRunResidentFullRebuild(this._instancesDirtyReason, lodBand)) {
6557
6558
  this._logBlockedResidentFullRebuild(this._instancesDirtyReason, module, lodBand);
6558
- this._clearInstancesDirty();
6559
+ residentFullBuildBlockedThisFrame = true;
6560
+ this._residentRebuildPending = true;
6561
+ const now = typeof performance !== 'undefined' ? performance.now() : Date.now();
6562
+ this._residentRebuildDeferredUntil = Math.max(
6563
+ Number(this._residentRebuildDeferredUntil || 0),
6564
+ now + LOD_RESIDENT_REBUILD_SETTLE_MS
6565
+ );
6566
+ if (module) {
6567
+ module._forceUpdateFrames = Math.max(Number(module._forceUpdateFrames || 0), 4);
6568
+ }
6559
6569
  }
6560
6570
 
6561
- if (this._instancesDirty) {
6571
+ if (this._instancesDirty && residentFullBuildBlockedThisFrame !== true) {
6562
6572
  perfTime('lodResidentApply', () => {
6563
6573
  const fullBuildReason = String(this._instancesDirtyReason || 'unknown');
6564
6574
  if (module?.isLoading !== true && this.isInLODMode !== true) {
@@ -579,7 +579,7 @@
579
579
  }
580
580
 
581
581
  const base = '_content/MindExecution.Shared/js/';
582
- const scriptVersion = '20260628-css3d-only-v839';
582
+ const scriptVersion = '20260628-local-grid-null-pointer-v841';
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": "vDcp7eeb",
2
+ "version": "4eOXZ4N/",
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-CXpctY+gWYeJj4A/6kq7DpEMrGvKPI/3qypdhkpBaqM=",
81
+ "hash": "sha256-9DQzC60xfV16Y02CgzgifUHD5AEXGy7zHA7+lkrWe5s=",
82
82
  "url": "_content/MindExecution.Shared/js/mind-map-core.js"
83
83
  },
84
84
  {
@@ -114,7 +114,7 @@
114
114
  "url": "_content/MindExecution.Shared/js/mind-map-lod-plan-worker.js"
115
115
  },
116
116
  {
117
- "hash": "sha256-jI+OWo3GHQ5BpPt9JpxGTGTa8mzi67ufinIizGeHxSs=",
117
+ "hash": "sha256-g0yoIH7FxuwbhZ9k3ByYUWQFMFq5l4N28u3hcqNurQM=",
118
118
  "url": "_content/MindExecution.Shared/js/mind-map-lod-renderer.js"
119
119
  },
120
120
  {
@@ -826,7 +826,7 @@
826
826
  "url": "icon-512.png"
827
827
  },
828
828
  {
829
- "hash": "sha256-prIQFaS+GGMIB15zcGBrRYbhMP5bfUNG2D+LV6lMCOs=",
829
+ "hash": "sha256-bLpiP/ywiAFLflFuYzyRFy07OpsOaSe3zVg2cOYW4Ko=",
830
830
  "url": "index.html"
831
831
  },
832
832
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: vDcp7eeb */
1
+ /* Manifest version: 4eOXZ4N/ */
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