Skip to content

v1.8.0

Latest

Choose a tag to compare

@sigpanic sigpanic released this 01 Nov 15:24
· 1 commit to master since this release
bf7eaa4

v1.8.0

一句话总结:本次发布把 LLM 能力升级为四种协议原生适配,并带来按会话记忆的模型选择、聊天图片输入与历史分页,以及配套的升级迁移。

本次发布包含 154 个提交、454 个文件变更(新增约 4.8 万行),是 Goink 创建以来改动量最大的一次版本发布。

新增功能

四种 LLM 协议原生适配

  • 新增 OpenAI Responses、Anthropic Messages、Gemini Interactions 三套原生适配,与原有 OpenAI Chat 并列;每个服务商实例可选择协议并填写完整端点,覆盖流式输出、工具调用、推理内容与多协议切换(对应 #56、#49)。
  • 新增协议级服务商配置:同一协议内实例名必须唯一,同一会话中可以跨协议、跨服务商切换模型。
  • 模型发现与连接测试按协议执行:先探测已保存的完整端点,再尝试常见候选路径;限流类提示不会被误报为验证通过。
  • 新增调试抓包:设置 GOINK_DEBUG=1 启动后,LLM 的 HTTP 请求与响应会写入 ~/Goink_debug,URL 与请求头中的凭证已脱敏。

按会话保存模型选择

  • 模型选择改为结构化保存(协议 / 服务商实例 / 模型 / 推理程度),每个会话独立记忆,未选中会话时只修改全局默认。
  • 推理程度会贯穿普通对话、自动与手动压缩、子 Agent。
  • 设置页支持为自定义服务商选择四种协议,新增 OpenAI / Claude / Gemini / Kimi / GLM 品牌图标,服务商列表按显示名排序。

聊天图片输入

  • 输入框支持选图和直接粘贴,图片按小说存放(原图 + 等比缩放标准图),消息只保存引用,不把 Base64 写入数据库。
  • 四种协议均支持图片请求;OpenAI Chat 的工具消息只接受文本,会把工具中的图片转换为带来源标注的用户消息。
  • 单次请求限制 8 MiB 图片总量,并按所选模型能力校验;草稿中移除图片会同步删除文件,导入错误提供可本地化的提示。

聊天历史与交互

  • 消息历史按完整轮次分页加载:首屏只取最近 20 轮,滚动到顶部再加载更早内容,长会话不再一次性渲染。
  • 正常完成的回复会把中间过程折叠成可展开的历史;失败、停止或中断的轮次保持展开。
  • 用户消息与最终回复支持复制原始 Markdown,悬停或聚焦显示本地时间。
  • 思考过程支持折叠预览;加密或不可见推理只显示状态行,不再留下无法展开的空白。

改进

  • 请求前用 token 估算检查模型上下文,超过窗口 95% 时提示换用更大上下文的模型,避免发出注定失败的请求。
  • 消息持久化失败时立即停止当前运行并保留原始错误,不再继续后续请求。
  • 配置文件与加密 LLM 配置改为临时文件 + 原子替换,写入失败不会截断原配置。
  • 升级迁移:加密服务商配置自动转换为协议分组格式;旧的全局模型选择转换为结构化字段。
  • 新增历史升级验证:冻结历史版本的数据库与小说仓库,在三个平台运行当前迁移流程,校验业务数据、schema、Git 历史与失败恢复。
  • MCP 设置页启用服务时使用当前草稿中的端口与工具;启动失败后开关恢复为关闭,可直接重试,且不会丢失未保存的草稿。

修复

  • 修复聊天请求失败被归类为“系统中断”的问题,现在能区分普通错误与主动中断。
  • 修复消息写入数据库失败时仍继续执行、可能把未保存的回复当作成功的问题。
  • 修复 MCP 设置页修改端口后直接打开开关仍使用旧端口的问题。
  • 修复配置文件非原子写入可能被截断的问题。
  • 修复推理程度选项重复显示“推理”后缀、按钮过宽的问题。

说明

  • 旧会话只保存过裸模型 ID,无法可靠还原服务商,升级后这部分选择会重置,需要重新选择一次模型。
  • 附件自动清理、read 工具读取图片结果、更多图片格式尚未实现;已发送消息引用的图片会保留。
  • 图片 token 按尺寸估算,仅用于上下文预算,不代表各厂商的计费口径。
  • 未内置的模型只提供基础请求支持,不会猜测其思考能力;接入中转站时需要手动填写完整端点。