Parent
#6
What to build
Two hardening gaps from the security audit (H2, H3), shipped together because both are response-attribute concerns. First, the workspace session cookie gains HttpOnly and SameSite=Lax always, and the Secure flag when the request arrives over HTTPS or when an environment flag forces it (for TLS-terminating proxies). Second, every response carries standard security headers via framework-level header configuration: X-Content-Type-Options, Referrer-Policy, X-Frame-Options/frame-ancestors protection, Permissions-Policy, and a Content-Security-Policy in report-only mode (enforcement is explicitly out of scope).
Acceptance criteria
Blocked by
None - can start immediately
Parent
#6
What to build
Two hardening gaps from the security audit (H2, H3), shipped together because both are response-attribute concerns. First, the workspace session cookie gains HttpOnly and SameSite=Lax always, and the Secure flag when the request arrives over HTTPS or when an environment flag forces it (for TLS-terminating proxies). Second, every response carries standard security headers via framework-level header configuration: X-Content-Type-Options, Referrer-Policy, X-Frame-Options/frame-ancestors protection, Permissions-Policy, and a Content-Security-Policy in report-only mode (enforcement is explicitly out of scope).
Acceptance criteria
npm testgreenBlocked by
None - can start immediately