()
| 270 | * URLs, file writes (per Codex review tension #2 — canary covers all channels). |
| 271 | */ |
| 272 | export function generateCanary(): string { |
| 273 | // 12 hex chars = 48 bits of entropy, astronomically low collision. |
| 274 | return `CANARY-${randomBytes(6).toString('hex').toUpperCase()}`; |
| 275 | } |
| 276 | |
| 277 | /** |
| 278 | * Append the canary instruction to a system prompt. Claude is told never to |
no outgoing calls
no test coverage detected