On main @ 534e49eb, an openai profile pointed at OpenRouter (https://openrouter.ai/api/v1, protocol: chat_completions, model deepseek/deepseek-v4.1-flash) fails every turn with:
InvalidEvent("chat choice after finish reason")
OpenRouter's stream sends the finish_reason: "stop" chunk twice — the second one repeats the choice (empty delta) and carries usage — and apply_chunk in src/albedo/openai_api/chat.gleam:314 rejects any choice once finish is set. Accepting an empty-delta choice whose finish matches would cover it.
Workaround: protocol: responses on the same profile works.
b4f7720c2dde07f936619da3f7dea1a7967dcf6f i havent tested it just yet since im working through a bunch of stuff