(event: Omit<MetadataEvent, 'id' | 'timestamp'>)
| 112 | // ── Recording ──────────────────────────────────────────────────────── |
| 113 | |
| 114 | export function recordEvent(event: Omit<MetadataEvent, 'id' | 'timestamp'>): string { |
| 115 | const id = randomUUID() |
| 116 | const record: MetadataEvent = { |
| 117 | ...event, |
| 118 | id, |
| 119 | timestamp: Date.now(), |
| 120 | } |
| 121 | |
| 122 | events.push(record) |
| 123 | |
| 124 | // Auto-flush to HF when approaching capacity (async, non-blocking) |
| 125 | checkMetadataThreshold(events.length, MAX_EVENTS) |
| 126 | |
| 127 | // Evict oldest if over cap (fallback if HF publish is not configured or failed) |
| 128 | if (events.length > MAX_EVENTS) { |
| 129 | events = events.slice(events.length - MAX_EVENTS) |
| 130 | } |
| 131 | |
| 132 | return id |
| 133 | } |
| 134 | |
| 135 | // ── Error Categorization ───────────────────────────────────────────── |
| 136 |
no test coverage detected