Files
2026-05-27 23:29:53 +01:00

2.3 KiB
Raw Permalink Blame History

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).