47 lines
2.3 KiB
Markdown
47 lines
2.3 KiB
Markdown
# Tasks: enterprise-pwa
|
||
|
||
## Scaffolding
|
||
|
||
- [ ] Add `pwa` to `data:` plugin in `scripts/folder-reorg/assignment.yml`.
|
||
- [ ] Create `packages/foundation/data/pwa/` skeleton (`package.json`, `README.md`,
|
||
`tsconfig.lib.json`, `vite.config.ts`, `vitest.config.ts`).
|
||
- [ ] Wire workspace + catalog deps: `@suaveplan/error`, `@suaveplan/opentelemetry`,
|
||
`@suaveplan/types`, `tslib`, `@opentelemetry/api`, `zod`.
|
||
|
||
## Implementation
|
||
|
||
- [ ] `errors/errors.ts` — `PWA_CODES`, `PwaError`, metadata table.
|
||
- [ ] `schemas/schemas.ts` — Zod schemas for sync-queue entry + Web App Manifest.
|
||
- [ ] `observability/observability.ts` + types.
|
||
- [ ] `service-worker/service-worker.ts` — `ServiceWorkerManager` with injectable container.
|
||
- [ ] `update-controller/update-controller.ts` — cross-tab reload via BroadcastChannel.
|
||
- [ ] `sync-queue/memory-store.ts` + `local-storage-store.ts` + `indexeddb-store.ts`.
|
||
- [ ] `sync-queue/version-migration.ts` — forward migrator registry.
|
||
- [ ] `sync-queue/sync-queue.ts` — pluggable queue.
|
||
- [ ] `sync-queue/background-sync.ts` — `SyncManager` bridge + visibility fallback.
|
||
- [ ] `push-notifications/vapid.ts` — URL-safe base64 decoder.
|
||
- [ ] `push-notifications/push-notifications.ts` — `PushNotificationManager`.
|
||
- [ ] `install-prompt/install-prompt.ts` — `InstallPromptManager`.
|
||
- [ ] `caching-strategies/caching-strategies.ts` — 5 strategies.
|
||
- [ ] `caching-strategies/router.ts` — `Router.registerRoute()` + `handle()`.
|
||
- [ ] `manifest/manifest.ts` — `ManifestBuilder`.
|
||
- [ ] `index.ts` — explicit named re-exports (rule 10).
|
||
|
||
## Documentation
|
||
|
||
- [ ] Sibling `.md` next to every `.ts` per CLAUDE rule (≥200 words, 6 sections).
|
||
- [ ] Root `README.md` with quick-start + module links.
|
||
|
||
## Gates
|
||
|
||
- [ ] `bunx turbo lint typecheck test build --filter=@suaveplan/pwa` green.
|
||
- [ ] `bunx turbo test:coverage --filter=@suaveplan/pwa` ≥ 100/100/100/100.
|
||
- [ ] `bun scripts/folder-reorg/generate-manifest.ts` (refresh MANIFEST).
|
||
|
||
## Finalisation
|
||
|
||
- [ ] Fold `specs/pwa/spec.md` into `openspec/specs/pwa/spec.md`.
|
||
- [ ] Move change to `openspec/archive/2026-05-25-enterprise-pwa/`.
|
||
- [ ] Flip `STATUS.md` row from `–` to `✅` and bump counts.
|
||
- [ ] Commit on `feat/migrate-pwa` with Conventional Commit + Claude co-author footer (do not push).
|