diff --git a/README.md b/README.md
index 577c48c..83b5332 100644
--- a/README.md
+++ b/README.md
@@ -26,7 +26,9 @@ is a Tabata whether or not anything is labelled "Tabata".
- **Accurate by construction** — state is derived from a wall-clock timestamp with a pure
`phaseAt(elapsed, routine)`; nothing accumulates ticks, so nothing drifts.
- **Offline-first** — precached service worker, no backend, no accounts, no analytics. Installable as
- **Timer**; updates are picked up on page reload, not via a modal prompt.
+ **Timer**; waiting updates apply immediately when no Routine is active.
+- **Automatic updates** — an active or paused Routine defers a waiting worker until Done or Reset. The
+ new build reloads automatically, then the bottom version shows green **NEW vx.x.x** for that reload only.
- **Progressive enhancement** — audio session, Wake Lock and vibration are feature-detected and no-ops
where absent. The app is fully correct without any of them.
- **Semantic and accessible** — [Pico CSS](https://picocss.com/) classless, WCAG 2.2 AA in every slice.
diff --git a/astro.config.mjs b/astro.config.mjs
index 2035987..fd86400 100644
--- a/astro.config.mjs
+++ b/astro.config.mjs
@@ -6,7 +6,7 @@ import { defineConfig } from "astro/config";
export default defineConfig({
integrations: [
AstroPWA({
- registerType: "autoUpdate",
+ registerType: "prompt",
manifest: {
name: "Timer",
short_name: "Timer",
diff --git a/docs/spec.md b/docs/spec.md
index 2c278c9..5705bf3 100644
--- a/docs/spec.md
+++ b/docs/spec.md
@@ -328,7 +328,7 @@ No theme override — `prefers-color-scheme` only, and nothing is stored for it.
The whole prototype is one `.astro` file: plain DOM, CSS custom properties, `rAF`, native
``. Nothing in the UI justifies an island, and nothing in the PWA layer
-does either — registration, update prompt, Wake Lock, audio session and haptics are all plain DOM APIs.
+does either — registration, update activation, Wake Lock, audio session and haptics are all plain DOM APIs.
---
@@ -416,11 +416,26 @@ layer below is feature-detected, adds capability where present, and is a no-op w
`virtual:pwa-register` by hand; (2) **`workbox-window` must be an explicit devDependency** under
pnpm, or the build fails with `Rolldown failed to resolve import "workbox-window"`.
- Add `/// ` to `src/env.d.ts` for the virtual-module types.
-- **`registerType: 'prompt'`, never `autoUpdate`** — an auto-reload mid-Routine would destroy the
- running clock. The update prompt is a plain `.astro` component with a `