Canonical TelemetryEmitter interface + createGatewayEmitter factory.
~120 call sites migrated from gateway/observability.ts.
model-fallback and message-store now import TelemetryEmitter from here.
Old observability.ts deleted. 3 tests.
- New @joelclaw/model-fallback with TelemetryEmitter port (DI)
- Gateway imports from package, passes emitGatewayOtel adapter
- FallbackConfig type owned by model-fallback package
- 6/6 unit tests passing (fake timers, telemetry, recovery)
- Removed gateway/src/model-fallback.ts