Danijel Martinek 31fc667c97 Merge branch 'feat/events-and-jobs': cross-feature events and background jobs
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).
2026-05-08 17:26:21 +02:00
Description
No description provided
27 MiB
Languages
TypeScript 61.1%
JavaScript 24.1%
Handlebars 13.6%
Shell 1%
Dockerfile 0.1%