diff --git a/.agents/skills/impeccable/scripts/live-inject.mjs b/.agents/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.agents/skills/impeccable/scripts/live-inject.mjs +++ b/.agents/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.claude/skills/impeccable/scripts/live-inject.mjs b/.claude/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.claude/skills/impeccable/scripts/live-inject.mjs +++ b/.claude/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.cursor/skills/impeccable/scripts/live-inject.mjs b/.cursor/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.cursor/skills/impeccable/scripts/live-inject.mjs +++ b/.cursor/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.gemini/skills/impeccable/scripts/live-inject.mjs b/.gemini/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.gemini/skills/impeccable/scripts/live-inject.mjs +++ b/.gemini/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.github/skills/impeccable/scripts/live-inject.mjs b/.github/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.github/skills/impeccable/scripts/live-inject.mjs +++ b/.github/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.kiro/skills/impeccable/scripts/live-inject.mjs b/.kiro/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.kiro/skills/impeccable/scripts/live-inject.mjs +++ b/.kiro/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.opencode/skills/impeccable/scripts/live-inject.mjs b/.opencode/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.opencode/skills/impeccable/scripts/live-inject.mjs +++ b/.opencode/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.pi/skills/impeccable/scripts/live-inject.mjs b/.pi/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.pi/skills/impeccable/scripts/live-inject.mjs +++ b/.pi/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.rovodev/skills/impeccable/scripts/live-inject.mjs b/.rovodev/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.rovodev/skills/impeccable/scripts/live-inject.mjs +++ b/.rovodev/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.trae-cn/skills/impeccable/scripts/live-inject.mjs b/.trae-cn/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.trae-cn/skills/impeccable/scripts/live-inject.mjs +++ b/.trae-cn/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/.trae/skills/impeccable/scripts/live-inject.mjs b/.trae/skills/impeccable/scripts/live-inject.mjs index 9bbc345ac..daf44cde8 100644 --- a/.trae/skills/impeccable/scripts/live-inject.mjs +++ b/.trae/skills/impeccable/scripts/live-inject.mjs @@ -137,8 +137,18 @@ function commentClose(syntax) { return syntax === 'jsx' ? '*/}' : '-->'; } function buildTagBlock(syntax, port) { const open = commentOpen(syntax); const close = commentClose(syntax); + // Inline pre-restore: runs before the external live.js is fetched. Sets + // scrollRestoration='manual' and jumps to the saved scrollY *synchronously* + // during HTML parse, beating the browser's animated reload-restore. + // Hardcoded key matches live-browser.js: PREFIX ('impeccable-live') + + // LS_KEY suffix ('-session') + SCROLL_KEY_SUFFIX ('-scroll'). + const preRestore = + ''; return ( open + ' ' + MARKER_OPEN_TEXT + ' ' + close + '\n' + + preRestore + '\n' + '\n' + open + ' ' + MARKER_CLOSE_TEXT + ' ' + close + '\n' ); diff --git a/public/index.html b/public/index.html index e159aac80..6c638efcc 100644 --- a/public/index.html +++ b/public/index.html @@ -724,8 +724,9 @@ - -
Impeccable is built by Renaissance Geek. I work with enterprise teams on rollouts, integrations, and training.
+Impeccable is built by Renaissance Geek. Rollouts, integrations, training.