v0.5.0
v0.4.1 -> v0.5.0
Summary
Unifies cross-provider token streaming behind a shared SSE layer and brings remaining backends online, including Gemini. Hardens stream error surfaces with typed failures and clearer upstream diagnostics.
翻譯
以共用 SSE 層統一跨供應商 token 串流,並補齊其餘後端(含 Gemini)。以型別化錯誤與更清楚的上游診斷強化串流失敗表面。
⚠️ Breaking Changes
core.OpenStream no longer returns HTTP status
Before:
func OpenStream(ctx context.Context, client *http.Client, url string, headers map[string]string, body map[string]any, label string) (*http.Response, int, error)After:
func OpenStream(ctx context.Context, client *http.Client, url string, headers map[string]string, body map[string]any, label string) (*http.Response, error)Migration:
// Old
resp, code, err := core.OpenStream(ctx, client, url, headers, body, label)
if err != nil {
// use code or err
_ = code
}
// New — status lives on *core.StreamError when the request fails
resp, err := core.OpenStream(ctx, client, url, headers, body, label)
if err != nil {
var se *core.StreamError
if errors.As(err, &se) {
code := se.Code
_ = code
}
return err
}
defer resp.Body.Close()翻譯
OpenStream 不再回傳 HTTP status int。失敗時改以 *core.StreamError 承載 Code/Body/inner Err,呼叫端請用 errors.As 取出狀態碼。
Changes
BREAKING
- Change OpenStream to drop status and return StreamError (@pardnchiu) [95b26bb]
翻譯
- 變更 OpenStream 簽章:移除 status 回傳並改回 StreamError (@pardnchiu) [95b26bb]
FEAT
- Add shared SSE streaming support across LLM providers (@pardnchiu) [d3988b0]
- Add Grok/Compat streaming and unify SSE parsing (@pardnchiu) [fcec9e0]
- Add Grok OAuth and Codex streaming support (@pardnchiu) [568315e]
- Add Gemini streaming with ThoughtSignature on tool deltas (@pardnchiu) [95b26bb]
翻譯
- 新增跨 LLM 供應商的共用 SSE 串流支援 (@pardnchiu) [d3988b0]
- 新增 Grok/Compat 串流並統一 SSE 解析 (@pardnchiu) [fcec9e0]
- 新增 Grok OAuth 與 Codex 串流支援 (@pardnchiu) [568315e]
- 新增 Gemini 串流,並在 tool delta 帶 ThoughtSignature (@pardnchiu) [95b26bb]
UPDATE
- Change OpenAI fast-mode service_tier from fast to priority (@pardnchiu) [568315e]
- Prefer a single reasoning delta field over concatenating both (@pardnchiu) [95b26bb]
- Improve provider stream/send error prefixes and body limits (@pardnchiu) [95b26bb]
翻譯
- 將 OpenAI fast mode 的 service_tier 由 fast 改為 priority (@pardnchiu) [568315e]
- reasoning delta 改為擇一輸出,不再串接雙欄位 (@pardnchiu) [95b26bb]
- 改善各供應商串流/同步錯誤前綴與 body 長度上限 (@pardnchiu) [95b26bb]
REFACTOR
- Route Claude streaming through OpenStream and ScanSSE (@pardnchiu) [95b26bb]
- Export stream body/error size limit constants (@pardnchiu) [95b26bb]
翻譯
- Claude 串流改走 OpenStream 與 ScanSSE (@pardnchiu) [95b26bb]
- 匯出串流 body/錯誤大小上限常數 (@pardnchiu) [95b26bb]
Scope
core/stream.go,core/sse.go,core/type.go— BREAKING, FEAT, UPDATE, REFACTORcore/gemini/— FEAT (stream.go,send.go)core/openai/,core/deepseek/,core/nvidia/,core/openRouter/,core/copilot/— FEATcore/grok/,core/compat/,core/claude/— FEAT, REFACTORcore/grokOauth/,core/openaiCodex/— FEAT, UPDATEcore/cloudflare/— FEAT (stream.gostub)core/*/send.go— UPDATE (error prefixes, limits)
Generated by SKILL