Replay at recorded pace; extension version check + hot overlay from the server
Replay: pauses are no longer compressed — steps fire on absolute recorded
clocks (1:1 with the recording), the cursor stays on the track, a 200ms
settle follows scrolls so the next click resolves on the scrolled page,
and the clock re-anchors after page loads (load time is not recorded time).

Version + hot overlay: the extension version now comes from the root
package.json; the server publishes the current version and the overlay
module (overlay.js + overlay.css) at /api/ext/manifest + /api/ext/assets
(POST /api/ext/publish, manifest written last as the commit point). The
content script imports the server overlay straight from its URL — public
assets answer ACAO * because page-origin imports are the only module path
that works in an isolated world (blob/data imports and eval are all
blocked by the MV3 CSP) — and falls back to the statically bundled copy
on any failure; the version gate never downgrades the UI below the core.
Core updates surface as a popup banner linking to /download; the download
page shows the published version and versioned zips (npm run package also
emits them). make ext-publish ships the overlay from a built dist.

E2E covers the whole hot-overlay round trip: publish a marked 9.9.9
overlay, reload → data-overlay-source="remote", popup banner, dead-server
fallback → "bundled", then republish the pristine assets.

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent 316e3fe commit 668e07a1b2b0fb0501f797a84c553771d22ece34
@Eugene Sukhodolskiy Eugene Sukhodolskiy authored 13 hours ago
Showing 28 changed files
View
Makefile
View
docker-compose.prod.yml
View
docker-compose.yml
View
packages/extension/e2e.mjs
View
packages/extension/package.json
View
packages/extension/scripts/build-manifest.mjs
View
packages/extension/scripts/build.mjs
View
packages/extension/scripts/package.mjs
View
packages/extension/scripts/publish.mjs 0 → 100644
View
packages/extension/src/background/index.ts
View
packages/extension/src/background/settings.ts
View
packages/extension/src/background/version.ts 0 → 100644
View
packages/extension/src/content/index.ts
View
packages/extension/src/content/overlay/index.ts 0 → 100644
View
packages/extension/src/content/overlay/mount.ts
View
packages/extension/src/lib/messages.ts
View
packages/extension/src/popup/Popup.vue
View
packages/extension/vite.config.ts
View
packages/shared/src/index.ts
View
packages/shared/src/version.ts 0 → 100644
View
packages/web/src/i18n/en.json
View
packages/web/src/i18n/ru.json
View
packages/web/src/i18n/uk.json
View
packages/web/src/pages/DownloadPage.vue
View
server/app/config.py
View
server/app/main.py
View
server/app/routers/ext_assets.py 0 → 100644
View
server/app/schemas.py