Primary finding
Telemetry flush() swallows all errors silently — data loss with no signal
- src/providers/telemetry.ts:195-202
On a failed transaction, the queued metricUpdates/decisionQueue/failureQueue are NOT cleared after rollback. That means they will be retried on next flush, which is OK for retry, BUT: (a) if the failure is deterministic (e.g., bad schema column), the queues grow unbounded forever; (b) the error is completely silent — no console.warn, no logging. Telemetry data loss happens with zero diagnostics. Combined with FLUSH_EVENT_COUNT=10, the queues can grow to memory exhaustion if DB is broken.
Recommendation
Log errors (at least once), and add an upper bound on queue size with policy to drop oldest events when retention threshold is exceeded.