Parent
#6
What to build
The fix-generation endpoint must stop accepting AI API keys from the client. Today the request payload can carry an API key (and arbitrary provider/model overrides) that gets forwarded into the AI call chain — the critical finding (C1) in the project security audit. After this slice, AI credentials come exclusively from server-side environment configuration, matching every other AI route. Client-supplied provider/model overrides are honored only when they match a server-configured provider; anything else is ignored. The settings resolver no longer accepts a key from request-derived input anywhere (also covers audit finding M3).
Acceptance criteria
Blocked by
None - can start immediately
Parent
#6
What to build
The fix-generation endpoint must stop accepting AI API keys from the client. Today the request payload can carry an API key (and arbitrary provider/model overrides) that gets forwarded into the AI call chain — the critical finding (C1) in the project security audit. After this slice, AI credentials come exclusively from server-side environment configuration, matching every other AI route. Client-supplied provider/model overrides are honored only when they match a server-configured provider; anything else is ignored. The settings resolver no longer accepts a key from request-derived input anywhere (also covers audit finding M3).
Acceptance criteria
globalThis.fetchswapped);npm testgreenBlocked by
None - can start immediately