Skip to content

v0.1.3

Choose a tag to compare

@EchoPing07 EchoPing07 released this 20 Aug 16:17
· 1 commit to main since this release
fix: 修复 chat 流式被 10 分钟总超时强制截断,改为响应头超时并可配置

目的:
上游 chat client 此前用 http.Client.Timeout=10min 作为「全周期总超时」,
而该超时会覆盖到读完整个响应 Body——SSE 流式(含 reasoning 长思考)持续
十几分钟时即被强制截断,严重影响体验。

主要变更:
- upstream/client.go: long client 去掉总超时,改用 Transport 的
  ResponseHeaderTimeout(仅管「上游多久不开始响应即判死」);一旦进入
  流式阶段逐字节读取不再受本端总超时约束,客户端断开由请求 context 兜底。
  Transport 基于 DefaultTransport.Clone(),保留默认连接/TLS/HTTP2 行为。
- config/config.go: 新增 chat_timeout_seconds 配置字段(默认 60),
  走完整 env 覆盖 / Normalize / Update env 保护链路。
- main.go: upstream.New 传入 ChatTimeoutSeconds。
- .env.example / README.md: 登记 BUDDY2API_CHAT_TIMEOUT_SECONDS。

影响范围:
- 仅影响 chat 上游请求路径;billing / OAuth / config 等短交互(short
  client 30s)不变。
- 该值为「构建时一次性」配置(写入 Transport 后固定),未纳入 admin
  settings,改后需重启生效。
- docs/DEVELOPMENT.md 同步更新但该目录被 .gitignore 忽略,不入库。