TASK-conversation-console-workflow await stable initial layout before route completion

This commit is contained in:
thePR0M3TH3AN committed 2026-10-01 09:08:47 -04:00
1 parent edbea736f0
commit 6b3dcf7498
2 files changed
+9 -9

No files matched your search

+1 -1
View File
@@ -2619,7 +2619,7 @@ test_integrity_note:
- "No browser requests to live project APIs and no changes to tracked screenshot expectations"
determinism_controls:
- "The existing isolated sample Console, fixed Playwright clock, and fixed desktop/mobile viewports"
- "Manager-wakes routing uses the existing isolated sample Console, a deterministic first-generation completion marker, and browser fragment history without changing project state"
- "Manager-wakes routing uses the existing isolated sample Console, a deterministic two-frame first-generation layout-completion marker, and browser fragment history without changing project state"
- "Newer evidence is introduced through the sample's supported preview/confirm API before an explicit refresh"
- "The browser test advances only the isolated sample API; it never submits the priority form or mutates a live project"
- "No network, live project mutation, retry, sleep, timeout, golden update, or direct fixture-source change"
+8 -8
View File
@@ -1159,14 +1159,14 @@ const refreshScheduler = globalThis.TorchLiveRefresh.createScheduler({
const status = $('#live-refresh-status');
const renderGeneration = ++appliedRefreshes;
status.textContent = `${liveUpdatesPaused ? 'Automatic updates paused.' : 'Updates every 15 seconds while visible.'}${heldPanels ? ' Edited forms and active previews retained; their panels may show older state.' : ''}`;
globalThis.requestAnimationFrame(() => {
if (renderGeneration !== appliedRefreshes) return;
if (viewportBeforeRender && consoleViewRouter.userIntentVersion() === userIntentAtRender) {
globalThis.scrollTo?.({ ...viewportBeforeRender, behavior: 'instant' });
}
if (renderGeneration === 1) consoleViewRouter.afterInitialLayout();
status.dataset.generation = String(renderGeneration);
});
globalThis.requestAnimationFrame(() => globalThis.requestAnimationFrame(() => {
if (renderGeneration !== appliedRefreshes) return;
if (viewportBeforeRender && consoleViewRouter.userIntentVersion() === userIntentAtRender) {
globalThis.scrollTo?.({ ...viewportBeforeRender, behavior: 'instant' });
}
if (renderGeneration === 1) consoleViewRouter.afterInitialLayout();
status.dataset.generation = String(renderGeneration);
}));
},
onError: (caught) => {
const error = $('#console-error');