Goal
Response augmentation + block handling for Mode B.
Scope
- Add
x_lemonade_route object to the chat.completion response + an x-lemonade-route header.
verdict=block → synthesized refusal, finish_reason:"content_filter", no backend call.
- Streaming variant:
chat.completion.chunk + header.
Acceptance
- Non-stream, stream, and block paths tested.
- A vanilla OpenAI client ignoring the extra field still works unchanged.
Depends on: #2385, #2376
Goal
Response augmentation + block handling for Mode B.
Scope
x_lemonade_routeobject to the chat.completion response + anx-lemonade-routeheader.verdict=block→ synthesized refusal,finish_reason:"content_filter", no backend call.chat.completion.chunk+ header.Acceptance
Depends on: #2385, #2376