// Set once per request in app.ts, so every response carries them (writeHead merges with setHeader). // A plugin route may override any per-response via RouteResult.headers. // The non-obvious parts of the CSP: // - script-src 'self' with no 'unsafe-inline' ⇒ an injected