@mindexec/cli 0.2.293 → 0.2.294

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.293",
3
+ "version": "0.2.294",
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-pan-v750';
8
+ const MINDMAP_CORE_BUILD_ID = '20260620-css3d-scene-stable-v752';
9
9
  const CanvasPhase = Object.freeze({
10
10
  Booting: 'booting',
11
11
  BoardFileLoading: 'board-file-loading',
@@ -606,6 +606,62 @@
606
606
  return false;
607
607
  }
608
608
 
609
+ function syncCss3dViewportForSceneRender(module, renderer, camera) {
610
+ const container = module?.container || null;
611
+ if (!container || !renderer || typeof renderer.setSize !== 'function') {
612
+ return false;
613
+ }
614
+
615
+ const rect = typeof container.getBoundingClientRect === 'function'
616
+ ? container.getBoundingClientRect()
617
+ : null;
618
+ const width = Math.max(1, Math.round(Number(rect?.width || container.clientWidth || 0)));
619
+ const height = Math.max(1, Math.round(Number(rect?.height || container.clientHeight || 0)));
620
+ if (!(width > 0 && height > 0)) {
621
+ return false;
622
+ }
623
+
624
+ const currentSize = typeof renderer.getSize === 'function'
625
+ ? renderer.getSize()
626
+ : null;
627
+ const currentWidth = Math.round(Number(currentSize?.width || 0));
628
+ const currentHeight = Math.round(Number(currentSize?.height || 0));
629
+ if (Math.abs(currentWidth - width) <= 1 && Math.abs(currentHeight - height) <= 1) {
630
+ return false;
631
+ }
632
+
633
+ try {
634
+ module?._applyRendererPixelRatio?.(false);
635
+ module?.renderer?.setSize?.(width, height, false);
636
+ } catch {
637
+ // CSS3D size still needs to recover even if WebGL resize is unavailable.
638
+ }
639
+
640
+ renderer.setSize(width, height);
641
+ if (camera?.isPerspectiveCamera === true) {
642
+ const nextAspect = width / Math.max(1, height);
643
+ if (Math.abs(Number(camera.aspect || 0) - nextAspect) > 0.0001) {
644
+ camera.aspect = nextAspect;
645
+ camera.updateProjectionMatrix?.();
646
+ }
647
+ }
648
+
649
+ module._lastContainerWidth = width;
650
+ module._lastContainerHeight = height;
651
+ module._lastViewportWidth = width;
652
+ module._lastViewportHeight = height;
653
+ module._lastViewportLeft = Number(rect?.left || 0);
654
+ module._lastViewportTop = Number(rect?.top || 0);
655
+ module._lastViewportDpr = Math.max(1, Number(window.devicePixelRatio || 1));
656
+ window.RuntimeTrace?.emit?.('css3d.viewport.sceneSizeSynced', {
657
+ width,
658
+ height,
659
+ previousWidth: currentWidth,
660
+ previousHeight: currentHeight
661
+ });
662
+ return true;
663
+ }
664
+
609
665
  function renderCss3dSceneForCurrentCamera(module, scene, camera, reason = 'css3d-render') {
610
666
  const renderer = module?.cssRenderer || null;
611
667
  if (!renderer || !scene || !camera) {
@@ -617,20 +673,8 @@
617
673
  return false;
618
674
  }
619
675
 
620
- if (typeof renderer.renderFlat === 'function' &&
621
- canUseFlatCss3dCameraMotion(module, renderer, camera, renderDebugFlags) === true) {
622
- const usedFlatSceneRender = renderer.renderFlat(scene, camera, {
623
- translateBucketPx: CAMERA_MOTION_WEBGL_TRANSFORM_TRANSLATE_BUCKET_PX,
624
- scaleBucket: CAMERA_MOTION_WEBGL_TRANSFORM_SCALE_BUCKET
625
- });
626
- if (usedFlatSceneRender === true) {
627
- module._lastCss3dCameraMotionMode = 'flat';
628
- module._lastCss3dCameraMotionReason = reason;
629
- return true;
630
- }
631
- }
632
-
633
676
  if (typeof renderer.render === 'function') {
677
+ syncCss3dViewportForSceneRender(module, renderer, camera);
634
678
  renderer.render(scene, camera);
635
679
  module._lastCss3dCameraMotionMode = 'matrix3d';
636
680
  module._lastCss3dCameraMotionReason = reason;
@@ -750,6 +750,11 @@
750
750
  -webkit-backface-visibility: visible !important;
751
751
  }
752
752
 
753
+ #css3d-dom-wrapper.is-zooming .css3d-resolution-wrapper,
754
+ #css3d-dom-wrapper.is-panning .css3d-resolution-wrapper {
755
+ visibility: visible !important;
756
+ }
757
+
753
758
  .css3d-resolution-wrapper.node-type-image .node-content-wrapper,
754
759
  .css3d-resolution-wrapper.node-type-video .node-content-wrapper,
755
760
  .css3d-resolution-wrapper.node-type-embed .node-content-wrapper,
@@ -51,7 +51,7 @@
51
51
  // ▲▲▲ [Usage] ▲▲▲
52
52
 
53
53
  // Procedural line rendering settings
54
- const LOD_RENDERER_BUILD_ID = '20260620-css3d-flat-pan-v750';
54
+ const LOD_RENDERER_BUILD_ID = '20260620-css3d-scene-stable-v752';
55
55
  const DirtyKind = Object.freeze({
56
56
  ResidentFullRebuild: 'resident-full-rebuild',
57
57
  ResidentPatch: 'resident-patch',
@@ -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-pan-v750" />
11
- <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-css3d-flat-pan-v750" />
10
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260620-css3d-scene-stable-v752" />
11
+ <link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260620-css3d-scene-stable-v752" />
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-pan-v750';
582
+ const scriptVersion = '20260620-css3d-scene-stable-v752';
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": "Mc/DXRDi",
2
+ "version": "O9KD8Ccz",
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-I3V3gWKzxo7MOYoHmrw4xLebf6DAoBDbOKyi/Yf1ygg=",
81
+ "hash": "sha256-NCe7IQxIcitYL7CRq7Aa7A9CSCFsDxUy8SZSoJm+aPo=",
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-EhlES5jLPO7cMczX09TDrcP1PC/KgkF86AYsA+Oap4I=",
89
+ "hash": "sha256-7EaYYlLCVJUt4lVERVxZG+LFs6pU84WbUElA89mnmlE=",
90
90
  "url": "_content/MindExecution.Shared/js/mind-map-css3d-manager.js"
91
91
  },
92
92
  {
@@ -114,7 +114,7 @@
114
114
  "url": "_content/MindExecution.Shared/js/mind-map-lod-plan-worker.js"
115
115
  },
116
116
  {
117
- "hash": "sha256-xlxha7eUDEjfMacqCq0ovCZPd3+Nxyj1MPdVt8iNNDM=",
117
+ "hash": "sha256-W2y0s/EzYYraueITXUNNzJxXfzpp9L7kuwT4ml7XzN8=",
118
118
  "url": "_content/MindExecution.Shared/js/mind-map-lod-renderer.js"
119
119
  },
120
120
  {
@@ -834,7 +834,7 @@
834
834
  "url": "image-manifest.json"
835
835
  },
836
836
  {
837
- "hash": "sha256-Ob3HKDlRurLtR1gJlYEo/2kPD1z2E+ymjO49AfrDA+M=",
837
+ "hash": "sha256-vGprwakLUDuo6HPZbyxWRw7W4ey7WW87CydvCLezwdI=",
838
838
  "url": "index.html"
839
839
  },
840
840
  {
@@ -1,4 +1,4 @@
1
- /* Manifest version: Mc/DXRDi */
1
+ /* Manifest version: O9KD8Ccz */
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