2.3 KiB
2.3 KiB
Tasks: enterprise-web-workers
Scaffolding
- Add
web-workerstodata:plugin inscripts/folder-reorg/assignment.yml. - Create
packages/foundation/data/web-workers/skeleton (package.json,README.md,tsconfig.lib.json,vite.config.ts,vitest.config.ts). - Wire workspace catalog deps:
@suaveplan/error,@suaveplan/events,@suaveplan/opentelemetry,@suaveplan/types,tslib,@opentelemetry/api.
Implementation
errors/errors.ts—WEB_WORKERS_CODES,WebWorkersError, metadata table.types/web-workers.types.ts— public type surface.observability/observability.ts+observability.types.ts.helpers/define-worker.ts—defineWorker({ url, type })returnsWorkerFactory.circuit-breaker/circuit-breaker.ts— per-worker breaker.base-manager/base-manager.ts+base-manager.types.ts— shared lifecycle, RPC pending map, AbortSignal, transfer, backpressure, breaker, OTel emission,EventBuswiring.worker-manager/worker-manager.ts— classic-Worker concrete manager.shared-worker-manager/shared-worker-manager.ts—SharedWorkerport-per-client concrete manager.streaming/stream.ts—sendStreamasync-iterable RPC.worker-pool/scheduler.ts— round-robin + least-busy.worker-pool/worker-pool.ts— FIFO queue, scheduler, restart-on-crash, health probe.message-bus/message-bus.ts— pub/sub + once + broadcast + registerHandler + request (with timeout + AbortSignal).index.ts— explicit named re-exports (rule 10).
Documentation
- Sibling
.mdnext to every.tsper CLAUDE rule (≥200 words, 6 sections). - Root
README.mdwith quick-start + module links.
Gates
bunx turbo lint typecheck test build --filter=@suaveplan/web-workersgreen.bunx turbo test:coverage --filter=@suaveplan/web-workers≥ 100/100/100/100.bun scripts/folder-reorg/generate-manifest.ts(refresh MANIFEST).
Finalisation
- Fold
specs/web-workers/spec.mdintoopenspec/specs/web-workers/spec.md. - Move change to
openspec/archive/2026-05-25-enterprise-web-workers/. - Flip
STATUS.mdrow from–to✅and bump counts. - Commit on
feat/migrate-web-workerswith Conventional Commit + Claude co-author footer (do not push).