@mindexec/cli 0.2.403 → 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 +1 -1
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-core.js +50 -11
- package/wwwroot/_content/MindExecution.Shared/js/mind-map-lod-renderer.js +13 -3
- package/wwwroot/index.html +1 -1
- package/wwwroot/service-worker-assets.js +4 -4
- package/wwwroot/service-worker.js +1 -1
package/package.json
CHANGED
|
@@ -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 = '
|
|
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',
|
|
@@ -3165,6 +3165,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
3165
3165
|
this._lastImmediateCameraFeedbackStatus = null;
|
|
3166
3166
|
this._immediateCameraFeedbackCount = 0;
|
|
3167
3167
|
this._immediateCameraFeedbackCss3dCount = 0;
|
|
3168
|
+
this._immediateCameraFeedbackWebglCount = 0;
|
|
3168
3169
|
this._immediateCameraFeedbackEdgeCount = 0;
|
|
3169
3170
|
// Match background-themes.js 'XYGrid' size1.
|
|
3170
3171
|
this.GRID_SIZE = 10;
|
|
@@ -4117,6 +4118,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
4117
4118
|
automationEdges: false,
|
|
4118
4119
|
motionGrid: false,
|
|
4119
4120
|
localSnapGrid: false,
|
|
4121
|
+
webgl: false,
|
|
4120
4122
|
skippedReason: '',
|
|
4121
4123
|
count: Number(this._immediateCameraFeedbackCount || 0),
|
|
4122
4124
|
updatedAt: now
|
|
@@ -4199,6 +4201,24 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
4199
4201
|
status.css3dCount = this._immediateCameraFeedbackCss3dCount;
|
|
4200
4202
|
}
|
|
4201
4203
|
|
|
4204
|
+
const canRenderWebglCamera = !!(
|
|
4205
|
+
this.renderer &&
|
|
4206
|
+
this.scene &&
|
|
4207
|
+
flags.enableWebglRender !== false &&
|
|
4208
|
+
this.isLoading !== true &&
|
|
4209
|
+
(this.lodRenderer?.isInLODMode === true || status.css3dCamera !== true)
|
|
4210
|
+
);
|
|
4211
|
+
if (canRenderWebglCamera === true) {
|
|
4212
|
+
try {
|
|
4213
|
+
this.renderer.render(this.scene, this.camera);
|
|
4214
|
+
status.webgl = true;
|
|
4215
|
+
this._immediateCameraFeedbackWebglCount = Number(this._immediateCameraFeedbackWebglCount || 0) + 1;
|
|
4216
|
+
status.webglCount = this._immediateCameraFeedbackWebglCount;
|
|
4217
|
+
} catch (err) {
|
|
4218
|
+
status.webglError = err?.message || String(err || 'unknown');
|
|
4219
|
+
}
|
|
4220
|
+
}
|
|
4221
|
+
|
|
4202
4222
|
if (this._shouldTouchMotionGridLayerForCameraNavigation?.() === true) {
|
|
4203
4223
|
status.motionGrid = this._syncMotionGridLayerForCameraNavigation?.() === true;
|
|
4204
4224
|
}
|
|
@@ -5787,6 +5807,15 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
5787
5807
|
}
|
|
5788
5808
|
: () => { };
|
|
5789
5809
|
|
|
5810
|
+
const lastImmediateCameraFeedbackAtFrameStart = this._lastImmediateCameraFeedbackStatus || null;
|
|
5811
|
+
const lastImmediateCameraFeedbackAgeAtFrameStart =
|
|
5812
|
+
frameStart - Number(lastImmediateCameraFeedbackAtFrameStart?.updatedAt || 0);
|
|
5813
|
+
const hasFreshImmediateCameraFeedbackAtFrameStart = !!(
|
|
5814
|
+
lastImmediateCameraFeedbackAtFrameStart?.used === true &&
|
|
5815
|
+
lastImmediateCameraFeedbackAgeAtFrameStart >= 0 &&
|
|
5816
|
+
lastImmediateCameraFeedbackAgeAtFrameStart <= 120
|
|
5817
|
+
);
|
|
5818
|
+
|
|
5790
5819
|
// 1. Camera Movement Interpolation
|
|
5791
5820
|
// ----------------------------------------------------------------
|
|
5792
5821
|
// ?�▼??[Changed] Time-normalized camera smoothing ?�▼?? // Mouse move events can arrive at an uneven cadence even when rAF is 60fps.
|
|
@@ -5804,7 +5833,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
5804
5833
|
|
|
5805
5834
|
// Check delta
|
|
5806
5835
|
const deltaMove = this.camera.position.distanceToSquared(this._tmpOldCamPos);
|
|
5807
|
-
const
|
|
5836
|
+
const didCameraPositionChange = deltaMove > 0.0001;
|
|
5837
|
+
const isCameraMoving = didCameraPositionChange || hasFreshImmediateCameraFeedbackAtFrameStart;
|
|
5808
5838
|
if (isCameraMoving) {
|
|
5809
5839
|
this._viewStatePersistAfterMotion = true;
|
|
5810
5840
|
}
|
|
@@ -6020,6 +6050,7 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
6020
6050
|
const residentBandChanging = isResidentMidFarLodFrame &&
|
|
6021
6051
|
this.lodRenderer?.willLodBandChange?.(this.camera) === true;
|
|
6022
6052
|
let canDeferResidentDirtyIdleFrame = false;
|
|
6053
|
+
let canDeferResidentDirtyMotionFrame = false;
|
|
6023
6054
|
if (isResidentMidFarLodFrame &&
|
|
6024
6055
|
residentDirty === true &&
|
|
6025
6056
|
residentBandChanging !== true &&
|
|
@@ -6032,9 +6063,20 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
6032
6063
|
typeof this.lodRenderer?.shouldSkipStableResidentFrame === 'function') {
|
|
6033
6064
|
canDeferResidentDirtyIdleFrame = this.lodRenderer.shouldSkipStableResidentFrame(this.camera, this) === true;
|
|
6034
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
|
+
}
|
|
6035
6076
|
const residentDirtyRequiresUpdate =
|
|
6036
6077
|
residentDirty === true &&
|
|
6037
|
-
canDeferResidentDirtyIdleFrame !== true
|
|
6078
|
+
canDeferResidentDirtyIdleFrame !== true &&
|
|
6079
|
+
canDeferResidentDirtyMotionFrame !== true;
|
|
6038
6080
|
const residentMidFarStable =
|
|
6039
6081
|
isResidentMidFarLodFrame &&
|
|
6040
6082
|
residentDirtyRequiresUpdate !== true &&
|
|
@@ -6799,14 +6841,9 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
6799
6841
|
|
|
6800
6842
|
_profileSection('webglRender');
|
|
6801
6843
|
// ?�▼??[FIX] LOD 모드(MID/FAR)?�서??CSS3D ?�더???�출 건너?�기 ?�▼?? // CSS3D가 모두 display:none?�어???�더?��? 813�?객체�??�회?�면???�간 ?�비
|
|
6802
|
-
const lastImmediateCameraFeedback =
|
|
6803
|
-
const lastImmediateCameraFeedbackAgeMs =
|
|
6804
|
-
const hasFreshImmediateCameraFeedback =
|
|
6805
|
-
lastImmediateCameraFeedback?.used === true &&
|
|
6806
|
-
(this.isPanning === true || this.isZooming === true) &&
|
|
6807
|
-
lastImmediateCameraFeedbackAgeMs >= 0 &&
|
|
6808
|
-
lastImmediateCameraFeedbackAgeMs <= 120
|
|
6809
|
-
);
|
|
6844
|
+
const lastImmediateCameraFeedback = lastImmediateCameraFeedbackAtFrameStart;
|
|
6845
|
+
const lastImmediateCameraFeedbackAgeMs = lastImmediateCameraFeedbackAgeAtFrameStart;
|
|
6846
|
+
const hasFreshImmediateCameraFeedback = hasFreshImmediateCameraFeedbackAtFrameStart;
|
|
6810
6847
|
const canUseCss3dCameraFastPath = !!(
|
|
6811
6848
|
this.cssRenderer &&
|
|
6812
6849
|
typeof this.cssRenderer.renderCamera === 'function' &&
|
|
@@ -7054,6 +7091,8 @@ ${summaryLines.map(line => `<div>${escapeNodeFrameDebugHtml(line)}</div>`).join(
|
|
|
7054
7091
|
freezeFullRes: shouldFreezeFullResDuringMotion === true,
|
|
7055
7092
|
residentMidFarStable: residentMidFarStable === true,
|
|
7056
7093
|
residentDirty: residentDirty === true,
|
|
7094
|
+
residentDirtyDeferredIdle: canDeferResidentDirtyIdleFrame === true,
|
|
7095
|
+
residentDirtyDeferredMotion: canDeferResidentDirtyMotionFrame === true,
|
|
7057
7096
|
residentBandChanging: residentBandChanging === true,
|
|
7058
7097
|
viewSyncMode: String(lodUpdateBreakdownThisFrame?.mode || ''),
|
|
7059
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 = '
|
|
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
|
-
|
|
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) {
|
package/wwwroot/index.html
CHANGED
|
@@ -579,7 +579,7 @@
|
|
|
579
579
|
}
|
|
580
580
|
|
|
581
581
|
const base = '_content/MindExecution.Shared/js/';
|
|
582
|
-
const scriptVersion = '20260628-
|
|
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": "
|
|
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-
|
|
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-
|
|
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-
|
|
829
|
+
"hash": "sha256-V3WKTP7gwOIAz2U2CHddB9UiDVeemE29Fgo0Ng4Z2EI=",
|
|
830
830
|
"url": "index.html"
|
|
831
831
|
},
|
|
832
832
|
{
|