github jasonxu114514/opencode2api v1.4.6

2 hours ago

🐛 修正:免費層 429 的三個身份觸發點

  • 派生會話 ID 按進程加鹽:重啟後同一會話獲得新的 ses_…,不再沿用已被免費層計費的舊會話;進程內保持穩定(親和性、粘性代理、上游 prompt cache 不受影響),官方客戶端自帶的會話 ID 仍原樣轉發。
  • 客戶端工具名不再上線:整形後的免費請求把客戶端工具改名為不透明摘要(clint_ + SHA-256 前 12 位 hex),攜帶 Claude Code 工具名(如 ReportFindings、ScheduleWakeup)的代理會話不再被免費層以 429 FreeUsageLimitError 拒絕;響應與流式分片仍以客戶端聲明的名稱返回。
  • 探測與 Playground 各自持有身份:可用性探測每次使用新鮮規範會話與隨機項目 ID,Playground 每次點擊生成新會話,不再共用單一額度桶導致健康模型被誤判不可用一小時。

🐛 修正:協議轉換與錯誤報告

  • 串流 reasoning 增量保留空白:跨協議轉換不再把 "We" + " need" 拼成 "Weneed",純空白分片不再被丟棄。
  • 客戶端可操作狀態碼:未知模型返回 404 model_not_found(原 400);上游遲遲讀不完請求體(寫入階段超時)返回 413 payload_too_large(原 504),其餘階段仍為 504。

🆕 新增:WebUI

  • 深色主題:頂欄主題按鈕,自動(跟隨系統)/ 淺色 / 深色循環,按瀏覽器持久化,首幀前套用避免閃爍。
  • 請求流水分頁:請求路由與上游嘗試支持每頁 50/100/200/500 條。
  • 免費模型「刷新狀態」改為真正觸發重新探測(新管理端點 POST /api/models/probe),而非僅重載緩存視圖。
  • 長代理列表折疊:配置中心只渲染前 100 個條目並提供展開切換,大型代理池不再卡死頁面。
  • 新增界面文案補齊 English / Tiếng Việt / Italiano 翻譯。

⚠️ 升級注意

  • 客戶端工具的線上名稱由 clint_<name> 改為不透明摘要;依賴線上名稱格式的集成需要跟進。響應路徑不受影響,仍還原為客戶端聲明的名稱。
  • 重啟後派生會話 ID 改變:與上游的會話級狀態(如 prompt cache 親和)會在重啟後重建——這正是讓已燒穿的會話恢復可用的機制。
  • 管理端點文檔新增 POST /api/models/probe 條目。

What's Changed

  • fix(identity): salt derived session ids per process so a restart re-mints them by @cheerc in #160
  • fix(free-tier): hide client tool names from shaped requests by @cheerc in #161
  • fix(probe): give probes and the Playground bench their own identity by @cheerc in #162
  • fix(protocol): preserve whitespace in streamed reasoning deltas by @ai-daming in #152
  • fix(gateway): report client-actionable status codes (404 for unknown models, 413 for oversized payloads) by @SK-DEV-AI in #139
  • feat(webui): theme toggle, paged ledger, working refresh status, and collapsed proxy chips by @jasonxu114514 in 58f5667

Full Changelog: v1.4.5...v1.4.6

Don't miss a new opencode2api release

NewReleases is sending notifications on new releases.