Commit Graph
3 Commits
Author SHA1 Message Date
yetone 9abfbff607 cleanup: gofmt the 15 Go files main had unformatted — whitespace, comment alignment and three one-line funcs gofmt opens up; nothing else. go build and vet -tags nogui pass. 2026-10-06 07:43:47 +08:00
yetone 2122b5a8a2 gateway: a provider's floor on max_tokens said with >= or > is read, so a one-token probe to Command Code is asked again at 16 instead of failing with a 400 (#260 HuHong-Tao: "Expected a value >= 16, but got 1 instead." — Claude Desktop's gateway check reported the model unavailable)
tokenFloor read the error from the body magpie had re-encoded for the agent, where Go's JSON encoder had escaped > as >, so the >= and > wordings never matched and the request wasn't retried. The pattern now also takes the escaped sign (a vendor may send it that way too), a trailing = meaning the number is the floor itself; and writeJSON no longer escapes <, > and &, as withFields already didn't, so the agent sees the vendor's words as written — the same JSON either way. Tests: TestTokenFloor gains the escaped and > cases; TestTooFewTokensSaidWithSigns goes through the gateway on /v1/messages (streaming) and /v1/chat/completions with Command Code's wording (asked again at 16), "max_tokens must be > 2" (at 3) and a vendor that sends > itself. Both fail without the change (a 400 after one request). Not tried against Command Code itself.
2026-09-30 11:30:11 +08:00
yetone 9e7853906c gateway: a request for a reply of a token or two reaches a provider that answers no less (#64) — an app checking a model is up asks for max_tokens 1, which some providers turn away with 400 "max_tokens must be greater than 2"; the least the provider named is read from that error, and the request is sent once more asking for it (max_tokens, max_completion_tokens, max_output_tokens or Gemini's maxOutputTokens, whichever it set), before any of the reply reaches the app; the routing page says so 2026-09-25 21:40:20 +08:00