Implements ADR-015 in 52 commits. Highlights: - New @repo/core-events package: IEventBus, defineEvent + EventDescriptor, InMemoryEventBus, PayloadJobsEventBus. - New @repo/core-shared/jobs subpath: IJobQueue, InMemoryJobQueue (with register), PayloadJobQueue. - Recording test helpers (RecordingEventBus, RecordingJobQueue) in @repo/core-testing/instrumentation, using local-type-alias pattern to avoid build-graph cycles. - ESLint rules E1 (no-handler-reexport) and J (no-direct-payload-jobs). - Feature binders accept (bus, queue); apps/web-next bindAll resolves Payload-backed in production and in-memory in dev-seed. - Three Plop generators: gen event publish, gen event consume, gen job. Each one threads through fixed // <gen:*> anchor comments enforced by a CI guard. - Proof-of-life flow: signing up in @repo/auth publishes userSignedUpEvent on the shared bus; @repo/marketing-pages subscribes and enqueues a send-welcome-email job; the in-memory queue dispatches it to the wrapped job which records on RecordingMailerService. e2e test at apps/web-next/src/__tests__/sign-up-welcome-email.test.ts. - Documentation: ADR-015, docs/guides/events-and-jobs.md, AGENTS.md + CLAUDE.md + scaffolding-guide updates, vertical-feature-spec deferred lines retired. Workspace green at the merge boundary: typecheck (15/15), lint (16/16), test (17/17), turbo boundaries (clean).
Description
No description provided
Languages
TypeScript
61.1%
JavaScript
24.1%
Handlebars
13.6%
Shell
1%
Dockerfile
0.1%