[0957] chat 协议升级:%chat 协议定稿(四字段)+ base_url 下沉 scheme 拼接 + 假 goldfish 协议回传 - #4515
Merged
Conversation
…zer 透传修正 - chat-protocol.scm:<chat-input> 七字段;params 写入 model/baseUrl/thinking/search/default_system;移除 images 图片链路 - qt_chat_controller:发送前从 ChatModelStore 取 baseUrl(拼 site,复用 account 模块 current-stem-site)与 defaultSystem(仅首轮非空) - tm-llm.scm:%chat 解析后协议原格式回传(content 换假回复文本),utf8: 通道回显,不联网 - init-llm.scm:llm-serialize 对 % 开头单字符串文档原样透传(object->string 会加引号转义包外壳)
da-liii
reviewed
Sep 7, 2026
da-liii
reviewed
Sep 7, 2026
da-liii
reviewed
Sep 7, 2026
da-liii
reviewed
Sep 7, 2026
da-liii
reviewed
Sep 7, 2026
da-liii
reviewed
Sep 7, 2026
da-liii
reviewed
Sep 7, 2026
da-liii
reviewed
Sep 8, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概述
PR-M5 协议升级:把发送链路升级为 LLM.tmu 新协议,使「模型切换」真正下发到子进程。前置 PR-M3(#4511,ChatModelStore 模型清单)已合入。
改动内容
Scheme 协议层(
chat-protocol.scm)<chat-input>record 扩为六字段(新增base-url)chat-tab-send/chat-tab-session-send由 4 参数扩为 5 参数%chatparams 定稿为{model, baseUrl, thinking, search}(baseUrl驼峰,值域enabled|disabled);系统提示词不下发,由服务端或子进程插件配置(评审定稿)chat-tab-resolve-base-url:http开头原样;为空原样(子进程兜底);相对路径在 scheme 侧拼接 site——文件顶部直接(use-modules (account liii))复用既有current-stem-site,不新增配置项(liii json):chat-input->json辅助函数以有序 alist 构造协议对象 +json->string,build-context-input只做 cork 转换与拼行images数组随协议移除,chat-tab-collect-images/chat-tab-image-node->pair/chat-tab-suffix->mime及组装代码一并删除(图片上传属第二阶段)C++ 发送路径(
qt_chat_controller)onSendRequested只透传清单原值base_url与thinking/search开关,site 拼接、首轮判定等逻辑均下沉 scheme(评审要求 C++ 层保持干净)ChatModelInfo.defaultSystem字段与解析删除;内置清单liii_llm_menu.json的default_system键删除假 goldfish(
tm-llm.scm,不联网)%chat前缀,(liii json)本地解析后以 %chat 协议原格式回传:content替换为[fake-llm] 我收到了你的消息:<原输入>,params/sessionId 原样保留(全保真回显协议字段)utf8:通道(scheme:通道会把自由文本首词解析成树标签导致渲染丢失 + 轮次超时,见下)(liii http),不发起任何网络请求serializer 透传修正(
init-llm.scm,G7 核查结论)object->string对(document "%chat …")输出带引号、转义并包外壳,旧链路上%chat并非原样透传%开头的单字符串文档原样输出 +\n<EOF>\n(mogan 内%前缀仅%chat一个发送方,其他输入维持旧行为)manifest 迁移确认
find()兜底保证发送路径session->model恒为清单内 key,发送后落盘即真实模型 id验证
xmake b --yes stem通过;qt_chat_model_test19 项全过、qt_chat_controller_test20 项全过default_system;\/、\"转义经 string->json / json->string 回环保真gf fmt --changed-since=main已运行,无无关改动手工验证记录
baseUrl拼好 site 的绝对地址)scheme:通道渲染只剩**fake-llm]**标签且轮次超时,定位为scheme_to_tree对自由文本的解析问题,改走utf8:通道修复;回显格式按用户要求调整为 %chat 协议原格式回传chat-tab-send外其余 C++→Scheme 签名未动;chat-tab-cancel/持久化/恢复/导出未触碰;chat 标签页与 dock 侧边栏共用发送路径任务文档:
devel/0957.md