@mindexec/cli 0.2.336 → 0.2.338

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.336",
3
+ "version": "0.2.338",
4
4
  "description": "MindExec local runtime and bridge CLI",
5
5
  "main": "server.js",
6
6
  "type": "module",
@@ -87,12 +87,14 @@ body.mind-map-scroll-locked {
87
87
  .map-node-note,
88
88
  .map-node-memo,
89
89
  .map-node-code {
90
- -webkit-backface-visibility: visible;
91
- backface-visibility: visible;
90
+ -webkit-backface-visibility: hidden;
91
+ backface-visibility: hidden;
92
92
  /* 텍스트 렌더링 품질 */
93
- -webkit-font-smoothing: auto;
94
- -moz-osx-font-smoothing: auto;
95
- /* 서브픽셀 정렬로 흐림 방지 */
93
+ -webkit-font-smoothing: antialiased;
94
+ -moz-osx-font-smoothing: grayscale;
95
+ text-rendering: optimizeLegibility;
96
+ /* 서브픽셀 정렬로 흐림 방지 */
97
+ transform: translateZ(0);
96
98
  }
97
99
 
98
100
  .css3d-resolution-wrapper > .map-node,
@@ -112,6 +114,22 @@ body.mind-map-scroll-locked {
112
114
  backface-visibility: visible !important;
113
115
  }
114
116
 
117
+ /* Restore reference high-detail text rasterization.
118
+ Media/template surfaces keep their live-surface visible/flat overrides. */
119
+ .css3d-resolution-wrapper:not(.lod-low) > .map-node,
120
+ .css3d-resolution-wrapper:not(.lod-low) > .map-node-bubble,
121
+ .css3d-resolution-wrapper:not(.lod-low) > .map-node-note,
122
+ .css3d-resolution-wrapper:not(.lod-low) > .map-node-memo,
123
+ .css3d-resolution-wrapper:not(.lod-low) > .map-node-file,
124
+ .css3d-resolution-wrapper:not(.lod-low) > .map-node-code {
125
+ -webkit-font-smoothing: antialiased !important;
126
+ -moz-osx-font-smoothing: grayscale !important;
127
+ text-rendering: optimizeLegibility !important;
128
+ -webkit-backface-visibility: hidden !important;
129
+ backface-visibility: hidden !important;
130
+ transform: translateZ(0) !important;
131
+ }
132
+
115
133
  .css3d-resolution-wrapper.node-type-image img,
116
134
  .css3d-resolution-wrapper.node-type-video video,
117
135
  .css3d-resolution-wrapper.node-type-embed iframe,
@@ -1574,9 +1592,9 @@ html.mindcanvas-platform-apple .css3d-resolution-wrapper.is-automation-relation-
1574
1592
  box-sizing: border-box;
1575
1593
  pointer-events: auto;
1576
1594
  transform-origin: 0 0;
1577
- -webkit-font-smoothing: auto;
1578
- -moz-osx-font-smoothing: auto;
1579
- text-rendering: auto;
1595
+ -webkit-font-smoothing: antialiased;
1596
+ -moz-osx-font-smoothing: grayscale;
1597
+ text-rendering: optimizeLegibility;
1580
1598
  contain: layout style paint;
1581
1599
  }
1582
1600
 
@@ -1611,9 +1629,9 @@ html.mindcanvas-platform-apple .css3d-resolution-wrapper.is-automation-relation-
1611
1629
 
1612
1630
  .mind-map-text-overlay-v2-card.is-passive .mind-map-text-overlay-v2-body {
1613
1631
  pointer-events: auto;
1614
- text-rendering: auto;
1615
- -webkit-font-smoothing: auto;
1616
- -moz-osx-font-smoothing: auto;
1632
+ text-rendering: optimizeLegibility;
1633
+ -webkit-font-smoothing: antialiased;
1634
+ -moz-osx-font-smoothing: grayscale;
1617
1635
  }
1618
1636
 
1619
1637
  body.is-panning .mind-map-text-overlay-v2-card.is-passive .mind-map-text-overlay-v2-body {
@@ -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 = '20260621-high-detail-static-edge-v820';
8
+ const MINDMAP_CORE_BUILD_ID = '20260621-fullres-lod-no-motion-throttle-v822';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -141,8 +141,6 @@
141
141
  'pipelinePixelRatio'
142
142
  ]);
143
143
  const LOD_PAN_VISIBILITY_REFRESH_INTERVAL_MS = 120;
144
- const FULL_RES_LOD_PAN_REFRESH_INTERVAL_MS = 96;
145
- const FULL_RES_LOD_ZOOM_REFRESH_INTERVAL_MS = 48;
146
144
  const CAMERA_LERP_BASE_FRAME_MS = 1000 / 60;
147
145
  const CAMERA_KEYBOARD_PAN_LERP_60HZ = 1.0;
148
146
  const CAMERA_MOUSE_PAN_LERP_60HZ = 1.0;
@@ -4398,7 +4396,6 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
4398
4396
  this._lastViewportWidth = 0;
4399
4397
  this._lastViewportHeight = 0;
4400
4398
  this._lastViewportDpr = 0;
4401
- this._lastFullResLodRefreshAt = 0;
4402
4399
  this.lastMousePos = { x: 0, y: 0 };
4403
4400
  this.targetZ = null;
4404
4401
  this.targetX = null;
@@ -9074,31 +9071,13 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
9074
9071
  this.lodRenderer._lastResidentSkipReason = 'core-stable-resident';
9075
9072
  }
9076
9073
  } else {
9077
- const fullResLodRefreshIntervalMs = this.isZooming === true
9078
- ? FULL_RES_LOD_ZOOM_REFRESH_INTERVAL_MS
9079
- : FULL_RES_LOD_PAN_REFRESH_INTERVAL_MS;
9080
- const shouldThrottleFullResLodDuringMotion =
9081
- !isResidentMidFarLodFrame &&
9082
- !hasNonPanForcedUpdate &&
9083
- !isNodeInteracting &&
9084
- !hasPendingNearCssWarmup &&
9085
- !this.isWindowResizing &&
9086
- (this.isPanning === true || this.isZooming === true || isCameraMoving === true) &&
9087
- this.lodRenderer.willLodBandChange?.(this.camera) !== true &&
9088
- (frameStart - Number(this._lastFullResLodRefreshAt || 0)) < fullResLodRefreshIntervalMs;
9089
9074
  const shouldSkipStableResidentLodFrame =
9090
9075
  isResidentMidFarLodFrame &&
9091
9076
  this.lodRenderer.shouldSkipStableResidentFrame?.(this.camera, this) === true;
9092
- if (shouldThrottleFullResLodDuringMotion) {
9093
- lodUpdateSkippedThisFrame = true;
9094
- lodUpdateSkipReason = 'fullres-motion-throttle';
9095
- } else if (!shouldSkipStableResidentLodFrame) {
9077
+ if (!shouldSkipStableResidentLodFrame) {
9096
9078
  lodUpdateCalledThisFrame = true;
9097
9079
  this.lodRenderer.updateLOD(this.camera, this.nodeObjectsById, this);
9098
9080
  lodUpdateBreakdownThisFrame = this.lodRenderer?._lastUpdateLodBreakdown || null;
9099
- if (!isResidentMidFarLodFrame) {
9100
- this._lastFullResLodRefreshAt = frameStart;
9101
- }
9102
9081
  } else {
9103
9082
  lodUpdateSkippedThisFrame = true;
9104
9083
  lodUpdateSkipReason = 'core-stable-resident';
@@ -379,9 +379,9 @@
379
379
  line-height: var(--mind-map-editable-line-height);
380
380
  font-weight: 400;
381
381
  letter-spacing: normal;
382
- -webkit-font-smoothing: auto;
383
- -moz-osx-font-smoothing: auto;
384
- text-rendering: auto;
382
+ -webkit-font-smoothing: antialiased;
383
+ -moz-osx-font-smoothing: grayscale;
384
+ text-rendering: optimizeLegibility;
385
385
  }
386
386
  .markdown-body h1 { font-size: 1.8em; font-weight: bold; margin-top: 1em; margin-bottom: 0.5em; border-bottom: 1px solid #eaecef; padding-bottom: 0.3em; }
387
387
  .markdown-body h2 { font-size: 1.4em; font-weight: bold; margin-top: 1em; margin-bottom: 0.5em; border-bottom: 1px solid #eaecef; padding-bottom: 0.3em; }
@@ -795,11 +795,11 @@
795
795
  .css3d-dynamic-node,
796
796
  [id^="css3d-node-"],
797
797
  .map-node {
798
- -webkit-font-smoothing: auto !important;
799
- -moz-osx-font-smoothing: auto !important;
800
- text-rendering: auto !important;
801
- backface-visibility: visible !important;
802
- -webkit-backface-visibility: visible !important;
798
+ -webkit-font-smoothing: antialiased !important;
799
+ -moz-osx-font-smoothing: grayscale !important;
800
+ text-rendering: optimizeLegibility !important;
801
+ backface-visibility: hidden !important;
802
+ -webkit-backface-visibility: hidden !important;
803
803
  transition: none !important;
804
804
  -webkit-transition: none !important;
805
805
  will-change: auto !important;
@@ -1112,11 +1112,11 @@
1112
1112
  pointer-events: none;
1113
1113
  overflow: visible;
1114
1114
  transform-origin: 0 0;
1115
- -webkit-font-smoothing: auto;
1116
- -moz-osx-font-smoothing: auto;
1117
- text-rendering: auto;
1118
- backface-visibility: visible;
1119
- -webkit-backface-visibility: visible;
1115
+ -webkit-font-smoothing: antialiased;
1116
+ -moz-osx-font-smoothing: grayscale;
1117
+ text-rendering: optimizeLegibility;
1118
+ backface-visibility: hidden;
1119
+ -webkit-backface-visibility: hidden;
1120
1120
  }
1121
1121
 
1122
1122
  .mind-map-text-overlay.mind-map-text-overlay-selectable {
@@ -1171,11 +1171,11 @@
1171
1171
  pointer-events: auto;
1172
1172
  overflow: visible;
1173
1173
  transform-origin: 0 0;
1174
- -webkit-font-smoothing: auto;
1175
- -moz-osx-font-smoothing: auto;
1176
- text-rendering: auto;
1177
- backface-visibility: visible;
1178
- -webkit-backface-visibility: visible;
1174
+ -webkit-font-smoothing: antialiased;
1175
+ -moz-osx-font-smoothing: grayscale;
1176
+ text-rendering: optimizeLegibility;
1177
+ backface-visibility: hidden;
1178
+ -webkit-backface-visibility: hidden;
1179
1179
  }
1180
1180
 
1181
1181
  .mind-map-edit-overlay-card {
@@ -6286,8 +6286,8 @@
6286
6286
  caret-color: #1f2937;
6287
6287
  box-sizing: border-box;
6288
6288
  overflow-y: auto;
6289
- -webkit-font-smoothing: auto;
6290
- text-rendering: auto;
6289
+ -webkit-font-smoothing: antialiased;
6290
+ text-rendering: optimizeLegibility;
6291
6291
  white-space: pre-wrap;
6292
6292
  overflow-wrap: break-word;
6293
6293
  pointer-events: auto;
@@ -20675,8 +20675,8 @@
20675
20675
  overflow-y: auto;
20676
20676
  white-space: pre-wrap;
20677
20677
  overflow-wrap: break-word;
20678
- -webkit-font-smoothing: auto;
20679
- text-rendering: auto;
20678
+ -webkit-font-smoothing: antialiased;
20679
+ text-rendering: optimizeLegibility;
20680
20680
  `;
20681
20681
 
20682
20682
  shell.appendChild(header);
@@ -23426,7 +23426,8 @@
23426
23426
  element.style.transition = 'none';
23427
23427
  element.style.webkitTransition = 'none';
23428
23428
  element.style.willChange = 'auto';
23429
- element.style.backfaceVisibility = 'visible';
23429
+ element.style.backfaceVisibility = info.isMediaNode ? 'visible' : 'hidden';
23430
+ element.style.webkitBackfaceVisibility = info.isMediaNode ? 'visible' : 'hidden';
23430
23431
 
23431
23432
  return {
23432
23433
  element,
@@ -23642,7 +23643,8 @@
23642
23643
  // ▼▼▼ [Perf] GPU acceleration for smooth zoom/pan ▼▼▼
23643
23644
  // 초기에는 꺼둠 (auto). 카메라 이동 시 mind-map-core.js가 setWillChange(true) 호출
23644
23645
  clonedElement.style.willChange = 'auto'; // 'transform';
23645
- clonedElement.style.backfaceVisibility = 'visible';
23646
+ clonedElement.style.backfaceVisibility = isMediaNode ? 'visible' : 'hidden';
23647
+ clonedElement.style.webkitBackfaceVisibility = isMediaNode ? 'visible' : 'hidden';
23646
23648
  // ▲▲▲ [Perf] ▲▲▲
23647
23649
 
23648
23650
  const wrapper = document.createElement('div');
@@ -23674,7 +23676,8 @@
23674
23676
 
23675
23677
  // ▼▼▼ [Perf] GPU acceleration for smooth zoom/pan ▼▼▼
23676
23678
  wrapper.style.willChange = 'auto'; // 'transform';
23677
- wrapper.style.backfaceVisibility = 'visible';
23679
+ wrapper.style.backfaceVisibility = isMediaNode ? 'visible' : 'hidden';
23680
+ wrapper.style.webkitBackfaceVisibility = isMediaNode ? 'visible' : 'hidden';
23678
23681
  wrapper.style.transformStyle = isMediaNode ? 'flat' : '';
23679
23682
  // ▲▲▲ [Perf] ▲▲▲
23680
23683
 
@@ -7430,8 +7430,8 @@ window.MindMapInteractions = (function () {
7430
7430
  caret-color: #1f2937;
7431
7431
  box-sizing: border-box; /* User Request */
7432
7432
  overflow-y: auto; /* User Request */
7433
- -webkit-font-smoothing: auto;
7434
- text-rendering: auto;
7433
+ -webkit-font-smoothing: antialiased;
7434
+ text-rendering: optimizeLegibility;
7435
7435
  white-space: pre-wrap;
7436
7436
  overflow-wrap: break-word;
7437
7437
  `;
@@ -51,7 +51,7 @@
51
51
  // ▲▲▲ [Usage] ▲▲▲
52
52
 
53
53
  // Procedural line rendering settings
54
- const LOD_RENDERER_BUILD_ID = '20260621-high-detail-static-edge-v820';
54
+ const LOD_RENDERER_BUILD_ID = '20260621-fullres-lod-no-motion-throttle-v822';
55
55
  const DirtyKind = Object.freeze({
56
56
  ResidentFullRebuild: 'resident-full-rebuild',
57
57
  ResidentPatch: 'resident-patch',
@@ -1960,8 +1960,8 @@
1960
1960
  copyStyle(null, readComputedStyleValue(computed, null, 'text-wrap'), 'text-wrap');
1961
1961
  copyStyle(null, readComputedStyleValue(computed, null, 'text-wrap-mode'), 'text-wrap-mode');
1962
1962
  copyStyle(null, readComputedStyleValue(computed, null, 'text-wrap-style'), 'text-wrap-style');
1963
- targetElement.style.setProperty('-webkit-font-smoothing', 'auto');
1964
- targetElement.style.setProperty('-moz-osx-font-smoothing', 'auto');
1963
+ targetElement.style.setProperty('-webkit-font-smoothing', 'antialiased');
1964
+ targetElement.style.setProperty('-moz-osx-font-smoothing', 'grayscale');
1965
1965
  }
1966
1966
 
1967
1967
  function getTypographySyncChildren(element) {
@@ -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=20260621-high-detail-static-edge-v820" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260621-high-detail-static-edge-v820" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260621-fullres-lod-no-motion-throttle-v822" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260621-fullres-lod-no-motion-throttle-v822" />
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 = '20260621-high-detail-static-edge-v820';
582
+ const scriptVersion = '20260621-fullres-lod-no-motion-throttle-v822';
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": "4OoECYQK",
2
+ "version": "WeVEVHk3",
3
3
  "assets": [
4
4
  {
5
5
  "hash": "sha256-+CSYMcqLNTsq3VnH11jgYyOCCdxvHzL74CBmo4sCmMU=",
@@ -42,7 +42,7 @@
42
42
  "url": "_content/MindExecution.Shared/css/app.css"
43
43
  },
44
44
  {
45
- "hash": "sha256-P+3Fqot0ueuEG0NuHOGF41810vNn99mxuTVzoLm/Jv4=",
45
+ "hash": "sha256-Ytyz/U4w1wE/ECjNlTAFqh1xWgV0uE+sE7vzlCaiMRw=",
46
46
  "url": "_content/MindExecution.Shared/css/mind-map-overrides.css"
47
47
  },
48
48
  {
@@ -78,7 +78,7 @@
78
78
  "url": "_content/MindExecution.Shared/js/marked.min.js"
79
79
  },
80
80
  {
81
- "hash": "sha256-QiCtj+pVotHqRPp2E0tvXWEkKrM9DCG2O9diN9gDNC8=",
81
+ "hash": "sha256-LOfXR93RxNzg9DNFDYZTgd9mjDYJ8eAWR6cyAi9fN/0=",
82
82
  "url": "_content/MindExecution.Shared/js/mind-map-core.js"
83
83
  },
84
84
  {
@@ -86,7 +86,7 @@
86
86
  "url": "_content/MindExecution.Shared/js/mind-map-core.js.backup"
87
87
  },
88
88
  {
89
- "hash": "sha256-ThNiOIWPJNcuTCxormzHYE31Qr8s9X3Xueg31Xq/tlc=",
89
+ "hash": "sha256-XB6UFTVZbfLWFunK4KVesvR0KhzQpXQuVHbVB8klcBQ=",
90
90
  "url": "_content/MindExecution.Shared/js/mind-map-css3d-manager.js"
91
91
  },
92
92
  {
@@ -106,7 +106,7 @@
106
106
  "url": "_content/MindExecution.Shared/js/mind-map-glow-shader.js"
107
107
  },
108
108
  {
109
- "hash": "sha256-1taPMgvVhV1m1iz9G0GYUmAyJ4jhfrVOjlvWJTZK8wQ=",
109
+ "hash": "sha256-uq9ATzcgBbr8qDYE1KS5X3IG/eN9/z56UTAO4IJacfo=",
110
110
  "url": "_content/MindExecution.Shared/js/mind-map-interactions.js"
111
111
  },
112
112
  {
@@ -114,7 +114,7 @@
114
114
  "url": "_content/MindExecution.Shared/js/mind-map-lod-plan-worker.js"
115
115
  },
116
116
  {
117
- "hash": "sha256-4KCltkq5C3X4HS2vksqXncmh4qXF5IM4ohOKVaLe7h4=",
117
+ "hash": "sha256-5F9mmMafjt8xKi0mGVEHhwqMttbPCzDd//aW+cW8Pm4=",
118
118
  "url": "_content/MindExecution.Shared/js/mind-map-lod-renderer.js"
119
119
  },
120
120
  {
@@ -154,7 +154,7 @@
154
154
  "url": "_content/MindExecution.Shared/js/mind-map-text-lod-system.js"
155
155
  },
156
156
  {
157
- "hash": "sha256-1FUmvCT+V+WMFwn6SyIpmOGWo+jEWIdhKItXOxPmSdE=",
157
+ "hash": "sha256-GSc+L9nnGTom3Ay1vGtzi4arj627Ej7slawLaOc0TAE=",
158
158
  "url": "_content/MindExecution.Shared/js/mind-map-text-overlay-v2.js"
159
159
  },
160
160
  {
@@ -834,7 +834,7 @@
834
834
  "url": "image-manifest.json"
835
835
  },
836
836
  {
837
- "hash": "sha256-pUkdNzCDIoX+QfYpPRsOtT5IF7UteaYv7g1uA2KORVM=",
837
+ "hash": "sha256-T8JJlMtnIp0O4CTKQwNsV1gn2gLF869CITLB/4n4MrY=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: 4OoECYQK */
1
+ /* Manifest version: WeVEVHk3 */
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