@mindexec/cli 0.2.404 → 0.2.405

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.405",
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-pan-wheel-resident-defer-v840';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -6050,6 +6050,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6050
6050
  const residentBandChanging = isResidentMidFarLodFrame &&
6051
6051
  this.lodRenderer?.willLodBandChange?.(this.camera) === true;
6052
6052
  let canDeferResidentDirtyIdleFrame = false;
6053
+ let canDeferResidentDirtyMotionFrame = false;
6053
6054
  if (isResidentMidFarLodFrame &&
6054
6055
  residentDirty === true &&
6055
6056
  residentBandChanging !== true &&
@@ -6062,9 +6063,20 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
6062
6063
  typeof this.lodRenderer?.shouldSkipStableResidentFrame === 'function') {
6063
6064
  canDeferResidentDirtyIdleFrame = this.lodRenderer.shouldSkipStableResidentFrame(this.camera, this) === true;
6064
6065
  }
6066
+ if (isResidentMidFarLodFrame &&
6067
+ residentDirty === true &&
6068
+ residentBandChanging !== true &&
6069
+ (isCameraMoving === true || this.isPanning === true || this.isZooming === true) &&
6070
+ !isNodeInteracting &&
6071
+ !hasNonCameraNavigationForcedUpdate &&
6072
+ !hasPendingNearCssWarmup &&
6073
+ typeof this.lodRenderer?.shouldSkipStableResidentFrame === 'function') {
6074
+ canDeferResidentDirtyMotionFrame = this.lodRenderer.shouldSkipStableResidentFrame(this.camera, this) === true;
6075
+ }
6065
6076
  const residentDirtyRequiresUpdate =
6066
6077
  residentDirty === true &&
6067
- canDeferResidentDirtyIdleFrame !== true;
6078
+ canDeferResidentDirtyIdleFrame !== true &&
6079
+ canDeferResidentDirtyMotionFrame !== true;
6068
6080
  const residentMidFarStable =
6069
6081
  isResidentMidFarLodFrame &&
6070
6082
  residentDirtyRequiresUpdate !== true &&
@@ -7079,6 +7091,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
7079
7091
  freezeFullRes: shouldFreezeFullResDuringMotion === true,
7080
7092
  residentMidFarStable: residentMidFarStable === true,
7081
7093
  residentDirty: residentDirty === true,
7094
+ residentDirtyDeferredIdle: canDeferResidentDirtyIdleFrame === true,
7095
+ residentDirtyDeferredMotion: canDeferResidentDirtyMotionFrame === true,
7082
7096
  residentBandChanging: residentBandChanging === true,
7083
7097
  viewSyncMode: String(lodUpdateBreakdownThisFrame?.mode || ''),
7084
7098
  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-pan-wheel-resident-defer-v840';
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": "XYf0od9b",
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-wF7sNtiWqtPIT1yTShG5wGJcivHKBmeSGeQb74YmpXY=",
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-V3WKTP7gwOIAz2U2CHddB9UiDVeemE29Fgo0Ng4Z2EI=",
830
830
  "url": "index.html"
831
831
  },
832
832
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: vDcp7eeb */
1
+ /* Manifest version: XYf0od9b */
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