@mindexec/cli 0.2.305 → 0.2.307
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 +1 -1
- package/wwwroot/_content/MindExecution.Shared/css/mind-map-overrides.css +117 -4
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +78 -39
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-css3d-manager.js +9 -0
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-renderer.js +18 -2
- package/wwwroot/index.html +3 -3
- package/wwwroot/service-worker-assets.js +6 -6
- package/wwwroot/service-worker.js +1 -1
package/package.json
CHANGED
|
@@ -1417,6 +1417,26 @@ html.mindcanvas-platform-apple .css3d-resolution-wrapper.is-automation-relation-
|
|
|
1417
1417
|
display: block !important;
|
|
1418
1418
|
}
|
|
1419
1419
|
|
|
1420
|
+
.css3d-resolution-wrapper.lod-low .markdown-content,
|
|
1421
|
+
.css3d-resolution-wrapper.lod-low .map-node-memo__body,
|
|
1422
|
+
.css3d-resolution-wrapper.lod-low .map-node-memo__body-view,
|
|
1423
|
+
.css3d-resolution-wrapper.lod-low .map-node-memo__agent-plan-body,
|
|
1424
|
+
.css3d-resolution-wrapper.lod-low .map-node-memo__agent-console-body,
|
|
1425
|
+
.css3d-resolution-wrapper.lod-low .node-response,
|
|
1426
|
+
.css3d-resolution-wrapper.lod-low .note-content,
|
|
1427
|
+
.css3d-resolution-wrapper.lod-low .code-content,
|
|
1428
|
+
.css3d-resolution-wrapper.lod-low .text-content {
|
|
1429
|
+
display: none !important;
|
|
1430
|
+
}
|
|
1431
|
+
|
|
1432
|
+
.css3d-resolution-wrapper.lod-low .simple-content {
|
|
1433
|
+
display: block !important;
|
|
1434
|
+
}
|
|
1435
|
+
|
|
1436
|
+
.css3d-resolution-wrapper.lod-low {
|
|
1437
|
+
--mind-node-detail-opacity: 0.72;
|
|
1438
|
+
}
|
|
1439
|
+
|
|
1420
1440
|
.mind-map-text-overlay-v2-layer {
|
|
1421
1441
|
position: absolute;
|
|
1422
1442
|
inset: 0;
|
|
@@ -3387,13 +3407,13 @@ html body .css3d-resolution-wrapper.node-type-embed .map-node.selected {
|
|
|
3387
3407
|
outline-offset: 0 !important;
|
|
3388
3408
|
}
|
|
3389
3409
|
|
|
3390
|
-
/* Text nodes
|
|
3410
|
+
/* Text nodes keep a visible but alpha-soft edge now that decorative glow/shadow is gone.
|
|
3391
3411
|
Keep this scoped away from template, MDM, media, CSV, and remote-control cards. */
|
|
3392
3412
|
html body .css3d-resolution-wrapper > .map-node-bubble,
|
|
3393
3413
|
html body .css3d-resolution-wrapper > .map-node-note,
|
|
3394
3414
|
html body .css3d-resolution-wrapper > .map-node-code,
|
|
3395
3415
|
html body .css3d-resolution-wrapper > .map-node-memo:not(.map-node-agent):not(.map-node-automation):not(.map-node-template-card):not(.map-node-remote-fleet) {
|
|
3396
|
-
border: 1px solid rgba(17, 24, 39, 0.
|
|
3416
|
+
border: 1px solid rgba(17, 24, 39, 0.42) !important;
|
|
3397
3417
|
-webkit-box-shadow: none !important;
|
|
3398
3418
|
box-shadow: none !important;
|
|
3399
3419
|
-webkit-filter: none !important;
|
|
@@ -3434,7 +3454,7 @@ html body .css3d-resolution-wrapper > .map-node-automation:focus-within:not(.map
|
|
|
3434
3454
|
}
|
|
3435
3455
|
|
|
3436
3456
|
/* Final node edge policy:
|
|
3437
|
-
- unselected text-like surfaces use a
|
|
3457
|
+
- unselected text-like surfaces use a soft dark edge because glow is removed
|
|
3438
3458
|
- selected nodes, including AI task nodes, use the same blue edge as notes */
|
|
3439
3459
|
html body .css3d-resolution-wrapper.node-type-text > .map-node,
|
|
3440
3460
|
html body .css3d-resolution-wrapper.node-type-markdown > .map-node,
|
|
@@ -3444,7 +3464,7 @@ html body .css3d-resolution-wrapper > .map-node-agent:not(.map-node-template-car
|
|
|
3444
3464
|
html body .css3d-resolution-wrapper > .map-node-automation:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3445
3465
|
html body .mind-map-text-overlay-v2-shell.type-text,
|
|
3446
3466
|
html body .mind-map-text-overlay-v2-shell.type-markdown {
|
|
3447
|
-
border: 1px solid rgba(17, 24, 39, 0.
|
|
3467
|
+
border: 1px solid rgba(17, 24, 39, 0.42) !important;
|
|
3448
3468
|
-webkit-box-shadow: none !important;
|
|
3449
3469
|
box-shadow: none !important;
|
|
3450
3470
|
-webkit-filter: none !important;
|
|
@@ -3467,3 +3487,96 @@ html body .css3d-resolution-wrapper > .map-node-automation:focus-within:not(.map
|
|
|
3467
3487
|
-webkit-filter: none !important;
|
|
3468
3488
|
filter: none !important;
|
|
3469
3489
|
}
|
|
3490
|
+
|
|
3491
|
+
/* Low-detail CSS3D proxy policy.
|
|
3492
|
+
NORMAL/MID overview cards are not a readable text surface. Keeping the full
|
|
3493
|
+
DOM body or a hard 1px edge at that scale turns content into aliasing noise,
|
|
3494
|
+
so non-selected low-detail text-like nodes collapse to a plain lightweight
|
|
3495
|
+
surface. NEAR and selected nodes remain high-detail. */
|
|
3496
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-text > .map-node,
|
|
3497
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-markdown > .map-node,
|
|
3498
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-note > .map-node-note,
|
|
3499
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-code > .map-node-code,
|
|
3500
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-memo > .map-node-memo:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3501
|
+
html body .css3d-resolution-wrapper.lod-low > .map-node-agent:not(.map-node-template-card):not(.map-node-remote-fleet),
|
|
3502
|
+
html body .css3d-resolution-wrapper.lod-low > .map-node-automation:not(.map-node-template-card):not(.map-node-remote-fleet) {
|
|
3503
|
+
background: rgba(255, 255, 255, 0.92) !important;
|
|
3504
|
+
border: 0 !important;
|
|
3505
|
+
outline: 0 !important;
|
|
3506
|
+
-webkit-box-shadow: none !important;
|
|
3507
|
+
box-shadow: none !important;
|
|
3508
|
+
-webkit-filter: none !important;
|
|
3509
|
+
filter: none !important;
|
|
3510
|
+
}
|
|
3511
|
+
|
|
3512
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-text .node-prompt-row,
|
|
3513
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-markdown .node-prompt-row,
|
|
3514
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-note .node-prompt-row,
|
|
3515
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-code .node-prompt-row,
|
|
3516
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-text .node-prompt,
|
|
3517
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-markdown .node-prompt,
|
|
3518
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-note .node-prompt,
|
|
3519
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-code .node-prompt,
|
|
3520
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-text .ai-loading-row,
|
|
3521
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-markdown .ai-loading-row,
|
|
3522
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-note .ai-loading-row,
|
|
3523
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-code .ai-loading-row,
|
|
3524
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-text hr,
|
|
3525
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-markdown hr,
|
|
3526
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-note hr,
|
|
3527
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-code hr,
|
|
3528
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-memo .map-node-memo__header,
|
|
3529
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-memo .map-node-memo__body,
|
|
3530
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-memo .map-node-memo__body-view,
|
|
3531
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-memo .map-node-memo__agent-actions,
|
|
3532
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-memo .map-node-memo__agent-plan-panel,
|
|
3533
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-memo .map-node-memo__agent-console-panel,
|
|
3534
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-memo .map-node-memo__agent-results,
|
|
3535
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-memo .map-node-memo__automation-pins,
|
|
3536
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-memo .map-node-memo__automation-pin,
|
|
3537
|
+
html body .css3d-resolution-wrapper.lod-low .map-node-memo__automation-pins,
|
|
3538
|
+
html body .css3d-resolution-wrapper.lod-low .map-node-memo__automation-pin,
|
|
3539
|
+
html body .css3d-resolution-wrapper.lod-low .map-node-memo__automation-pin-dot,
|
|
3540
|
+
html body .css3d-resolution-wrapper.lod-low .map-node-memo__automation-pin-label,
|
|
3541
|
+
html body .css3d-resolution-wrapper.lod-low > .map-node-agent .map-node-memo__header,
|
|
3542
|
+
html body .css3d-resolution-wrapper.lod-low > .map-node-automation .map-node-memo__header,
|
|
3543
|
+
html body .css3d-resolution-wrapper.lod-low > .map-node-agent .map-node-memo__automation-pins,
|
|
3544
|
+
html body .css3d-resolution-wrapper.lod-low > .map-node-agent .map-node-memo__automation-pin,
|
|
3545
|
+
html body .css3d-resolution-wrapper.lod-low > .map-node-automation .map-node-memo__automation-pins,
|
|
3546
|
+
html body .css3d-resolution-wrapper.lod-low > .map-node-automation .map-node-memo__automation-pin,
|
|
3547
|
+
html body .css3d-resolution-wrapper.lod-low .css3d-resize-hit-layer {
|
|
3548
|
+
display: none !important;
|
|
3549
|
+
}
|
|
3550
|
+
|
|
3551
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-text .node-content-wrapper,
|
|
3552
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-markdown .node-content-wrapper,
|
|
3553
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-note .node-content-wrapper,
|
|
3554
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-code .node-content-wrapper,
|
|
3555
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-memo .map-node-memo__shell,
|
|
3556
|
+
html body .css3d-resolution-wrapper.lod-low > .map-node-agent .map-node-memo__shell,
|
|
3557
|
+
html body .css3d-resolution-wrapper.lod-low > .map-node-automation .map-node-memo__shell {
|
|
3558
|
+
background: transparent !important;
|
|
3559
|
+
padding: 0 !important;
|
|
3560
|
+
border: 0 !important;
|
|
3561
|
+
overflow: hidden !important;
|
|
3562
|
+
}
|
|
3563
|
+
|
|
3564
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-video > .map-node {
|
|
3565
|
+
background: rgba(255, 255, 255, 0.9) !important;
|
|
3566
|
+
border: 0 !important;
|
|
3567
|
+
-webkit-box-shadow: none !important;
|
|
3568
|
+
box-shadow: none !important;
|
|
3569
|
+
outline: 0 !important;
|
|
3570
|
+
overflow: hidden !important;
|
|
3571
|
+
}
|
|
3572
|
+
|
|
3573
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-video .node-response,
|
|
3574
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-video .ai-loading-row,
|
|
3575
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-video video,
|
|
3576
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-video canvas.mind-map-video-proxy,
|
|
3577
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-video .video-content > video,
|
|
3578
|
+
html body .css3d-resolution-wrapper.lod-low.node-type-video .video-content > canvas.mind-map-video-proxy {
|
|
3579
|
+
display: none !important;
|
|
3580
|
+
opacity: 0 !important;
|
|
3581
|
+
pointer-events: none !important;
|
|
3582
|
+
}
|
|
@@ -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-
|
|
8
|
+
const MINDMAP_CORE_BUILD_ID = '20260621-soft-fullres-edge-v780';
|
|
9
9
|
const CanvasPhase = Object.freeze({
|
|
10
10
|
Booting: 'booting',
|
|
11
11
|
BoardFileLoading: 'board-file-loading',
|
|
@@ -124,7 +124,9 @@
|
|
|
124
124
|
'note',
|
|
125
125
|
'memo',
|
|
126
126
|
'markdown',
|
|
127
|
-
'code'
|
|
127
|
+
'code',
|
|
128
|
+
'image',
|
|
129
|
+
'embed'
|
|
128
130
|
]);
|
|
129
131
|
const CAMERA_STATIONARY_INTERACTION_FRAME_DELAY_MS = 48;
|
|
130
132
|
const CAMERA_ZOOM_END_DELAY_MS = 150;
|
|
@@ -695,7 +697,8 @@
|
|
|
695
697
|
mode: 'flat-settled',
|
|
696
698
|
reason,
|
|
697
699
|
visibleCount: flatScene.visibleCount,
|
|
698
|
-
unsafeCount: flatScene.unsafeCount
|
|
700
|
+
unsafeCount: flatScene.unsafeCount,
|
|
701
|
+
visibleSource: flatScene.usedVisibleSet === true ? 'visible-set' : 'fallback-scan'
|
|
699
702
|
};
|
|
700
703
|
return true;
|
|
701
704
|
}
|
|
@@ -711,7 +714,8 @@
|
|
|
711
714
|
reason,
|
|
712
715
|
flatSkipReason: flatScene.reason,
|
|
713
716
|
visibleCount: flatScene.visibleCount,
|
|
714
|
-
unsafeCount: flatScene.unsafeCount
|
|
717
|
+
unsafeCount: flatScene.unsafeCount,
|
|
718
|
+
visibleSource: flatScene.usedVisibleSet === true ? 'visible-set' : 'fallback-scan'
|
|
715
719
|
};
|
|
716
720
|
return true;
|
|
717
721
|
}
|
|
@@ -851,7 +855,7 @@
|
|
|
851
855
|
Math.abs(Number(rotation.z || 0)) <= 1e-5;
|
|
852
856
|
}
|
|
853
857
|
|
|
854
|
-
function
|
|
858
|
+
function isCss3dEntryRenderableForFlatScene(entry) {
|
|
855
859
|
const cssObject = entry?.cssObject || null;
|
|
856
860
|
const element = cssObject?.element || null;
|
|
857
861
|
if (!cssObject || !element) {
|
|
@@ -862,52 +866,94 @@
|
|
|
862
866
|
return false;
|
|
863
867
|
}
|
|
864
868
|
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
: null;
|
|
868
|
-
const rect = typeof element.getBoundingClientRect === 'function'
|
|
869
|
-
? element.getBoundingClientRect()
|
|
870
|
-
: null;
|
|
871
|
-
return style?.display !== 'none' &&
|
|
872
|
-
style?.visibility !== 'hidden' &&
|
|
873
|
-
Number(rect?.width || 0) > 0 &&
|
|
874
|
-
Number(rect?.height || 0) > 0;
|
|
869
|
+
return element.style.display !== 'none' &&
|
|
870
|
+
element.style.visibility !== 'hidden';
|
|
875
871
|
}
|
|
876
872
|
|
|
877
873
|
function isCss3dEntryUnsafeForSettledFlatScene(entry) {
|
|
878
874
|
const model = entry?.model || {};
|
|
879
875
|
const type = String(model.contentType ?? model.ContentType ?? '').trim().toLowerCase();
|
|
880
|
-
|
|
876
|
+
const element = entry?.cssObject?.element || null;
|
|
877
|
+
const classList = element?.classList || null;
|
|
878
|
+
const isLowDetailVideoProxy =
|
|
879
|
+
type === 'video' &&
|
|
880
|
+
classList?.contains?.('node-type-video') === true &&
|
|
881
|
+
classList?.contains?.('lod-low') === true;
|
|
882
|
+
|
|
883
|
+
if (!CSS3D_SETTLED_TEXT_FLAT_SAFE_TYPES.has(type) && isLowDetailVideoProxy !== true) {
|
|
881
884
|
return true;
|
|
882
885
|
}
|
|
883
886
|
|
|
884
|
-
if (type === '
|
|
885
|
-
type === 'video' ||
|
|
886
|
-
type === 'embed' ||
|
|
887
|
+
if ((type === 'video' && isLowDetailVideoProxy !== true) ||
|
|
887
888
|
type === 'csv-table' ||
|
|
888
889
|
type === 'templatelauncher') {
|
|
889
890
|
return true;
|
|
890
891
|
}
|
|
891
892
|
|
|
892
|
-
const element = entry?.cssObject?.element || null;
|
|
893
893
|
if (!element) {
|
|
894
894
|
return true;
|
|
895
895
|
}
|
|
896
896
|
|
|
897
|
-
|
|
898
|
-
if (classList?.contains?.('node-type-image') === true ||
|
|
899
|
-
classList?.contains?.('node-type-video') === true ||
|
|
900
|
-
classList?.contains?.('node-type-embed') === true ||
|
|
897
|
+
if ((classList?.contains?.('node-type-video') === true && isLowDetailVideoProxy !== true) ||
|
|
901
898
|
classList?.contains?.('node-type-csv-table') === true ||
|
|
902
899
|
classList?.contains?.('node-type-templatelauncher') === true) {
|
|
903
900
|
return true;
|
|
904
901
|
}
|
|
905
902
|
|
|
903
|
+
if (isLowDetailVideoProxy === true) {
|
|
904
|
+
return false;
|
|
905
|
+
}
|
|
906
|
+
|
|
906
907
|
return !!element.querySelector?.(
|
|
907
|
-
'iframe, video, canvas
|
|
908
|
+
'iframe, video, canvas, .map-node-template-card, .map-node-remote-fleet, .csv-table-scroll, [data-remote-fleet-resize-handle="true"]'
|
|
908
909
|
);
|
|
909
910
|
}
|
|
910
911
|
|
|
912
|
+
function collectVisibleCss3dEntriesForSettledFlatScene(module) {
|
|
913
|
+
const nodeObjectsById = module?.nodeObjectsById || null;
|
|
914
|
+
if (!(nodeObjectsById instanceof Map)) {
|
|
915
|
+
return { entries: [], usedVisibleSet: false };
|
|
916
|
+
}
|
|
917
|
+
|
|
918
|
+
const visibleIds = module._visibleIds instanceof Set && module._visibleIds.size > 0
|
|
919
|
+
? module._visibleIds
|
|
920
|
+
: (module._prevVisibleIds instanceof Set && module._prevVisibleIds.size > 0
|
|
921
|
+
? module._prevVisibleIds
|
|
922
|
+
: null);
|
|
923
|
+
if (visibleIds) {
|
|
924
|
+
const entries = [];
|
|
925
|
+
visibleIds.forEach(nodeId => {
|
|
926
|
+
const entry = nodeObjectsById.get(nodeId);
|
|
927
|
+
if (isCss3dEntryRenderableForFlatScene(entry) === true) {
|
|
928
|
+
entries.push(entry);
|
|
929
|
+
}
|
|
930
|
+
});
|
|
931
|
+
return { entries, usedVisibleSet: true };
|
|
932
|
+
}
|
|
933
|
+
|
|
934
|
+
const entries = [];
|
|
935
|
+
nodeObjectsById.forEach(entry => {
|
|
936
|
+
if (isCss3dEntryRenderableForFlatScene(entry) === true) {
|
|
937
|
+
entries.push(entry);
|
|
938
|
+
}
|
|
939
|
+
});
|
|
940
|
+
return { entries, usedVisibleSet: false };
|
|
941
|
+
}
|
|
942
|
+
|
|
943
|
+
function syncVisibleCss3dDetailLevelForFlatScene(module, entries) {
|
|
944
|
+
const lodRenderer = module?.lodRenderer || null;
|
|
945
|
+
if (!lodRenderer ||
|
|
946
|
+
typeof lodRenderer._setCss3dLodClass !== 'function' ||
|
|
947
|
+
typeof lodRenderer._shouldUseHighCss3dDetail !== 'function' ||
|
|
948
|
+
!Array.isArray(entries)) {
|
|
949
|
+
return;
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
for (const entry of entries) {
|
|
953
|
+
lodRenderer._setCss3dLodClass(entry, lodRenderer._shouldUseHighCss3dDetail(entry, module));
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
|
|
911
957
|
function canUseSettledTextFlatCss3dSceneRender(module, scene, camera, renderDebugFlags = null) {
|
|
912
958
|
const renderer = module?.cssRenderer || null;
|
|
913
959
|
if (CSS3D_SETTLED_TEXT_FLAT_RENDER_ENABLED !== true ||
|
|
@@ -923,34 +969,27 @@
|
|
|
923
969
|
return { ok: false, reason: 'automation-edge-active', visibleCount: 0, unsafeCount: 0 };
|
|
924
970
|
}
|
|
925
971
|
|
|
926
|
-
const
|
|
927
|
-
|
|
928
|
-
|
|
972
|
+
const visibleEntries = collectVisibleCss3dEntriesForSettledFlatScene(module);
|
|
973
|
+
const entries = visibleEntries.entries;
|
|
974
|
+
syncVisibleCss3dDetailLevelForFlatScene(module, entries);
|
|
929
975
|
let visibleCount = 0;
|
|
930
976
|
let unsafeCount = 0;
|
|
931
977
|
for (const entry of entries) {
|
|
932
|
-
if (isCss3dEntryVisibleForFlatScene(entry) !== true) {
|
|
933
|
-
continue;
|
|
934
|
-
}
|
|
935
|
-
|
|
936
978
|
visibleCount++;
|
|
937
979
|
if (isCss3dEntryUnsafeForSettledFlatScene(entry) === true) {
|
|
938
980
|
unsafeCount++;
|
|
939
|
-
if (unsafeCount > 0) {
|
|
940
|
-
break;
|
|
941
|
-
}
|
|
942
981
|
}
|
|
943
982
|
}
|
|
944
983
|
|
|
945
984
|
if (visibleCount <= 0) {
|
|
946
|
-
return { ok: false, reason: 'no-visible-css3d', visibleCount, unsafeCount };
|
|
985
|
+
return { ok: false, reason: 'no-visible-css3d', visibleCount, unsafeCount, usedVisibleSet: visibleEntries.usedVisibleSet };
|
|
947
986
|
}
|
|
948
987
|
|
|
949
988
|
if (unsafeCount > 0) {
|
|
950
|
-
return { ok: false, reason: 'unsafe-live-css3d-surface', visibleCount, unsafeCount };
|
|
989
|
+
return { ok: false, reason: 'unsafe-live-css3d-surface', visibleCount, unsafeCount, usedVisibleSet: visibleEntries.usedVisibleSet };
|
|
951
990
|
}
|
|
952
991
|
|
|
953
|
-
return { ok: true, reason: 'text-only-css3d', visibleCount, unsafeCount };
|
|
992
|
+
return { ok: true, reason: 'text-only-css3d', visibleCount, unsafeCount, usedVisibleSet: visibleEntries.usedVisibleSet };
|
|
954
993
|
}
|
|
955
994
|
|
|
956
995
|
function syncBusinessAutomationEdgesForCameraNavigation(module, transformOnly = false, allowDraftRender = false) {
|
|
@@ -9253,7 +9292,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
9253
9292
|
const shouldUseAnimationCadenceForWebglFrame =
|
|
9254
9293
|
isCameraNavigationOnlyInteractiveFrame === true
|
|
9255
9294
|
? false
|
|
9256
|
-
:
|
|
9295
|
+
: shouldUseAnimation60Fps === true;
|
|
9257
9296
|
const shouldHoldWebglCanvasTransformDuringCameraNavigation = !!(
|
|
9258
9297
|
isWebglRenderEnabled &&
|
|
9259
9298
|
isCameraNavigationOnlyInteractiveFrame === true &&
|
|
@@ -577,6 +577,15 @@
|
|
|
577
577
|
pointer-events: auto !important;
|
|
578
578
|
}
|
|
579
579
|
|
|
580
|
+
.css3d-resolution-wrapper.lod-low.node-type-note .note-content,
|
|
581
|
+
.css3d-resolution-wrapper.lod-low.node-type-note .node-response.note-content,
|
|
582
|
+
.css3d-resolution-wrapper.lod-low.node-type-note .markdown-body,
|
|
583
|
+
.css3d-resolution-wrapper.lod-low.node-type-note .map-node-memo__automation-pins,
|
|
584
|
+
.css3d-resolution-wrapper.lod-low.node-type-note .map-node-memo__automation-pin {
|
|
585
|
+
display: none !important;
|
|
586
|
+
pointer-events: none !important;
|
|
587
|
+
}
|
|
588
|
+
|
|
580
589
|
.note-textarea::-webkit-scrollbar,
|
|
581
590
|
.note-content::-webkit-scrollbar,
|
|
582
591
|
.markdown-body::-webkit-scrollbar,
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
// ▲▲▲ [Usage] ▲▲▲
|
|
52
52
|
|
|
53
53
|
// Procedural line rendering settings
|
|
54
|
-
|
|
54
|
+
const LOD_RENDERER_BUILD_ID = '20260621-soft-fullres-edge-v780';
|
|
55
55
|
const DirtyKind = Object.freeze({
|
|
56
56
|
ResidentFullRebuild: 'resident-full-rebuild',
|
|
57
57
|
ResidentPatch: 'resident-patch',
|
|
@@ -4478,6 +4478,22 @@
|
|
|
4478
4478
|
this._setNodeDetailLevel(entry, isHigh ? 'HIGH' : 'LOW');
|
|
4479
4479
|
}
|
|
4480
4480
|
|
|
4481
|
+
_shouldUseHighCss3dDetail(entry, module) {
|
|
4482
|
+
const cameraZ = Number(module?.camera?.position?.z || 0);
|
|
4483
|
+
const lodBand = this._currentLodBand || getLodBandForCameraZ(cameraZ);
|
|
4484
|
+
if (lodBand === 'NEAR') {
|
|
4485
|
+
return true;
|
|
4486
|
+
}
|
|
4487
|
+
|
|
4488
|
+
const nodeId = String(entry?.model?.id || entry?.model?.Id || entry?.glObject?.userData?.nodeId || '').trim();
|
|
4489
|
+
const selectedNodeId = String(module?.selectedNodeIdJs || module?.selectedNodeId || '').trim();
|
|
4490
|
+
if (nodeId && selectedNodeId && nodeId === selectedNodeId) {
|
|
4491
|
+
return true;
|
|
4492
|
+
}
|
|
4493
|
+
|
|
4494
|
+
return false;
|
|
4495
|
+
}
|
|
4496
|
+
|
|
4481
4497
|
_shouldKeepMountedEmbedResident(entry) {
|
|
4482
4498
|
return getNodeContentType(entry?.model) === 'embed' &&
|
|
4483
4499
|
window.MindMapCss3DManager?.hasMountedEmbedIframe?.(entry.cssObject) === true;
|
|
@@ -4759,7 +4775,7 @@
|
|
|
4759
4775
|
}
|
|
4760
4776
|
// ▲▲▲ [FIX] ▲▲▲
|
|
4761
4777
|
|
|
4762
|
-
this._setCss3dLodClass(entry,
|
|
4778
|
+
this._setCss3dLodClass(entry, this._shouldUseHighCss3dDetail(entry, module));
|
|
4763
4779
|
|
|
4764
4780
|
// ▼▼▼ [CRITICAL] Sync content BEFORE making CSS visible ▼▼▼
|
|
4765
4781
|
// Prevents one-frame display of stale/blurred text while dirty DOM is being updated.
|
package/wwwroot/index.html
CHANGED
|
@@ -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-
|
|
11
|
-
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260621-
|
|
10
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/app.css?v=20260621-soft-fullres-edge-v780" />
|
|
11
|
+
<link rel="stylesheet" href="_content/MindExecution.Shared/css/mind-map-overrides.css?v=20260621-soft-fullres-edge-v780" />
|
|
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-
|
|
582
|
+
const scriptVersion = '20260621-soft-fullres-edge-v780';
|
|
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": "
|
|
2
|
+
"version": "087bIbjC",
|
|
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-
|
|
45
|
+
"hash": "sha256-HlPWvXUm8UFkLAf1uuozOcAqpuOcRhX3a+SfAIkEwsA=",
|
|
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-
|
|
81
|
+
"hash": "sha256-HteTygKSo5gNms4y1Ut5uxyKTA++GF7xgkaoAzm/6OA=",
|
|
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-
|
|
89
|
+
"hash": "sha256-Fqn/yDEDcOO23DxXXIBdQgS4u6ukCYTkfNfn8xYMAwM=",
|
|
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-
|
|
117
|
+
"hash": "sha256-mL3Q1c1XFya6P4MFDYyZPNqKE74qwLxWkTZGbeij0rc=",
|
|
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-
|
|
837
|
+
"hash": "sha256-am6VNZK+U0a3vIEZvec0UOBP2dLEqtLhlankGTlaD88=",
|
|
838
838
|
"url": "index.html"
|
|
839
839
|
},
|
|
840
840
|
{
|