Repository navigation
Releases
Version 7.2.0
发布说明
发布日期:2026-11-05
Version 7.2.0 把「这次对话花了多少钱、花在哪儿」做成可查、可导出的本地账本;把设置页从弹窗里的折叠表单改成独立分页。电脑版与安卓版同时修复了交互模式卡片文本被引号、全角标点截断的问题,并让卡片内的文本字段恢复 Markdown 渲染;安卓版与鸿蒙版修正了模式胶囊切换后误入历史会话的问题。鸿蒙版另有一轮针对闪退、后台存活与长会话的性能专项。
自 Version 7.2.0-beta 1 起,各仓库的 Release 将仅提供与该仓库对应的发布包。例如,hmos 仓库仅提供鸿蒙版 HAP 发布包,不再同时提供电脑版、安卓版发布包。如需其他平台的发布包,请前往对应仓库的 Release 页面获取。
同时,鸿蒙版开始提供永久邀请测试分享链接,可以直接通过官方渠道获取最新测试版本:https://appgallery.huawei.com/apptest/955nTWBlvx0
本次更新一览
| 更新内容 | Windows 版 | Android 版 | HarmonyOS 版 |
|---|---|---|---|
| 用量与成本:逐请求记账、53 周热力图 | ✅ | ✅ | ✅ |
| 设置页改为独立分类页面、自动保存 | ✅ | ✅ | ✅ |
| 交互模式卡片文本不再被引号 / 全角标点截断 | ✅ | ✅ | — |
| 卡片内文本字段恢复 Markdown 渲染 | ✅ | ✅ | — |
| 模式切换进入目标形态的新建对话 | — | ✅ | ✅ |
| 附件先行解析默认关闭 | ✅ | ✅ | 已是关闭 |
| 设置页新增「检查更新」 | — | — | ✅ |
| 设置页新增「工具」只读目录 | — | — | ✅ |
| 稳定性与性能专项(存档 / 后台 / 长会话) | — | — | ✅ |
—表示该端本次更新记录未列入,不代表功能不可用。电脑版与安卓版共用同一份 HTML 渲染层;鸿蒙版为 ArkUI 原生界面,不走该渲染管线。
一、用量与成本(全平台)
新增本地用量账本和「用量与成本」页。每个完成的 LLM 响应在结束时归一化一次 usage,按「日期 → 服务商 → 模型 → 高峰 / 空闲」聚合。统计覆盖主对话、工作模式 Agent Loop、子代理、标题生成、上下文压缩、交互模式补救请求;电脑版 / 安卓版还覆盖命令自动审阅、多模态解析与表格识别。
记账与计价
- 三协议统一口径:Anthropic 合并
message_start(输入与缓存读写)与message_delta(累计输出);Responses 同时识别response.completed与response.incomplete;Completions 优先使用prompt_cache_hit_tokens/prompt_cache_miss_tokens,并只对确认支持的服务商补stream_options.include_usage,避免严格网关因未知字段直接 400。 - DeepSeek 峰谷:按北京时间(UTC+8,与机器时区无关)归日与判断峰谷。工作日 09:00–12:00、14:00–18:00 为高峰,其余时段与法定节假日为空闲;Flash / Pro 按缓存命中、未命中、输出分项计价,服务端联网搜索 / 抓取按 5 元 / 1000 次计入,页面按 1 USD = 7.2 CNY 折算展示。电脑版对未收录价目的模型只标记「未收录价目请求」,不硬套价格。
- OpenCode Go:按网关返回的
opencode.tokens、allowance、cost、list_cost、billing_source统计,套餐内显示额度消耗与等价成本,不按模型名误套 DeepSeek 峰谷价。 - 缺失与失败:缺失
usage的请求如实计数,不猜测成本;失败或被中止的请求不计费;统计或写盘异常不会影响聊天与 Agent 主流程。 - 本地、轻量:账本只保留按日聚合(约 400 天;鸿蒙版另有最近 8 天的小时桶),不保存逐请求明细,也不写进消息存档。页面只在打开时读取快照,不扫描历史、不轮询、不带后台任务;鸿蒙版首笔请求懒加载账本,聊天页不挂载统计对象。
页面与平台差异
- 电脑版:独立全窗口页面,左侧分类导航;从侧栏「用量」或设置「账户与用量 → 用量与成本」进入。今日 / 近 7 天 / 本月 / 本月预计四张汇总卡,53 周热力图,费用 / Tokens / 请求数切换;点击某天查看按模型拆分、峰谷、联网搜索与 OpenCode 额度。支持月预算、CSV 导出;DeepSeek 余额手动刷新,6 小时节流。
- 安卓版:独立页面,手机端筛选区纵向堆叠,刷新 / 导出 CSV 独立成行;服务商与主指标合并为全局筛选,切换指标时汇总卡、热力图、日详情与模型占比一起联动,汇总卡与热力图在窄屏保持完整宽度。设置页把「用量与成本」拆成独立「用量」分组;DeepSeek 余额 10 分钟节流。
- 鸿蒙版:设置「模型」分组内的独立页面,宽屏侧边栏底部有「用量」快捷入口,工作区详情显示「最近一轮 Token / 费用」。53 周热力图首次打开自动滚到最近日期,之后尊重手动滚动;DeepSeek / OpenCode 两张卡片始终显示,未填 Key 标注「未启用」;汇率 / 预算 / 额度收在带遮罩的底部弹层;OpenCode 支持近 5 小时、近 7 天与本月额度窗口;账本额外保留 8 天小时桶。
补充说明:
- 峰谷节假日表按端内置:电脑版 / 安卓版覆盖 2024–2026 年,鸿蒙版内置 2026–2027 年节假日;安卓版对 2027 年及以后尚未公布年份按工作日高峰保守估算。
- 热力图与对账:DeepSeek 余额只作对账,不计入热力图和每日统计;OpenCode 使用网关返回的等价成本,不套用 DeepSeek 峰谷价。
- 导出:CSV 带 UTF-8 BOM,包含人民币折算列;鸿蒙版同时支持清空统计。
二、设置页改版(全平台)
不再把所有配置塞进一个弹窗、靠折叠栏逐段展开;设置改为独立页面,模型配置、搜索、多模态、朗读、语音各自成页(鸿蒙版另有系统信息页),字段修改后自动保存。
- 电脑版:铺满窗口,左侧分类导航、右侧当前分类;分组为模型配置、高级模型参数、本地联网搜索、多模态解析、用量与成本、自动朗读、语音输入。输入停顿后自动写入当前配置方案,移除保存 / 取消按钮;Esc 可关闭;顶部左侧线性返回箭头。
- 安卓版:整页布局,一级列表 / 二级详情;一级按模型、能力、声音、系统分组,首屏只显示模块入口。二级页字段 350ms 防抖自动落盘;返回键先从二级详情回到一级列表,再退出设置;朗读与终端后端即时生效。
- 鸿蒙版:按需 push 的独立路由页;模型配置、高级参数、本地联网搜索、多模态解析各成页,另有声音(朗读)与系统(终端)分组。所有分页共享同一份草稿,防抖自动保存;返回或切换方案前先冲刷草稿;聊天页不再常驻挂载整棵设置表单。
共同变化:
- 模型配置合并:配置方案、配置名称、接入方式、Base URL、API Key 与模型列表收进同一页;方案可直接切换、新建与删除。电脑版与安卓版保存到当前配置方案;鸿蒙版切换方案前先把未保存草稿落盘,避免输入被静默丢弃。
- 自动保存:去掉手动保存按钮,输入停顿后写盘;离开页面或切换方案时再同步一次,降低流式刷新时对配置项的重复求值。
- 视觉统一:卡片式分组、开关式布尔项、字段级提示与填充式输入框;安卓版一级列表使用白色列表卡、无底色线性图标与分组摘要;电脑版放大正文字号并加宽版心;鸿蒙版沿用系统 SymbolGlyph 图标与品牌色。
- 终端环境页(鸿蒙版):设置「系统 → 终端」新增只读环境页,展示原生 Shell、原生 CPython 3.12 等运行组件,以及应用版本、系统版本、API 等级、设备类型、芯片平台与指令集。
三、交互模式:卡片文本与 Markdown(Windows 版 / Android 版)
两端共用同一份 HTML 渲染层,修复完全一致;鸿蒙版使用 ArkUI 原生组件,本轮更新记录没有这一项。
卡片文本不再被截断
- 根因:界面程序由模型手写,字符串里偶尔出现未转义的引号、单引号包裹的英文撇号、以反斜杠结尾的 Windows 路径;旧词法器一见引号就收口,后面的中文被当成新 token 丢掉,表现为卡片标题、副标题、正文只显示前半截。全角逗号 / 括号 / 引号、少写逗号、用反引号包字符串还会让参数错位,严重时把后面的组件整段吞掉。
- 修复:电脑版新增
GuncatUiSourceRepair源码修复层,在词法分析前把字符串内部的成对引号补成\"、把字符串外的全角标点归一成 ASCII,并让缺逗号、括号深度、注释与跨行续行都有明确处理;安卓版改为「只有引号后紧跟合法边界才收口」,整行无法干净解析时按行重切并做有上限的收尾重试。 - 安卓版顺带修复:单字段文本上限与整程序上限对齐,不再悄悄砍到 4000 字;控件状态只在用户真的操作过控件后写回,且不再随每个流式 token 重建 400ms 定时器;短字段里的 Markdown 链接引用定义不再被整行吃掉。
- 性能:电脑版修复层是单趟字符扫描,没有异常字符时直接返回原串、不产生副本,正常卡片解析仍在毫秒级;安卓版只在整行无法干净解析时才按行重切,正常路径不增加额外解析。流式重绘不会因此变卡。
卡片内所有文本字段恢复 Markdown
- 范围:此前只有
TextContent/MarkDownRenderer走 Markdown 管线;CardHeader、Callout、InlineHeader、Text、BoldText、IconText、ImageText、指标、标签、表格、键值清单、列表、步骤、卡片块、表单标签与按钮等仍把字符串原样输出。 - 修复:新增行内 Markdown 渲染器
InlineMarkdown,复用 CommonMark + GFM 行内子集,自动去掉块级节点外壳,避免在表格单元格、按钮、标签里产生<p>破坏行内布局;Callout正文、ContextCardItem正文、ListBlock副标题、StepsItem详情等多行字段走完整Markdown管线。提问卡片的问题与选项、下拉框选项也一并处理,原生<option>只显示剥掉记号后的纯文本。 - 样式:卡片内的段落、列表、标题、引用、表格、链接与行内代码补齐紧凑间距,深浅色沿用现有 CSS 变量,既有卡片布局不变。
- 回归:电脑版
render-check新增 6 项截断断言、5 项 Markdown 断言;安卓版新增七类截断断言与 14 项 Markdown 断言,覆盖粗体、行内代码、链接、多段落,并断言产物不再残留**、交互元素内不产生嵌套<a>。
四、模式切换:进入目标形态的新建对话(Android 版 / HarmonyOS 版)
- 问题:胶囊与侧栏底部的形态切换原先走
setMode → selectAgent,而selectAgent的语义是「打开该引擎的最新会话」。工作模式一旦有历史会话,从交互模式的新建页切过去就会直接进入最近一条工作会话,用户还没开始新任务就被带进旧上下文。 - 修复:形态切换改为「目标形态的新建对话」——先在该形态的会话里找
messageCount === 0的空会话,按updatedAt取最新一条复用;没有空会话才新建。侧栏 / 抽屉的智能体列表仍保留「打开最新会话」的原行为,只有胶囊换挡走新逻辑。 - 鸿蒙版补充:换挡不清理另一模式的空对话;交互 / 工作两个模式各自保留一份未使用的新对话,来回切换始终停在同一份草稿上,不会反复建 / 删,也不会越换越多。
五、附件先行解析默认关闭(Windows 版 / Android 版)
- 默认值:多模态配置的
preparseEnabled默认由开启改为关闭。新安装、以及配置里没有写过该字段的旧数据,图片和文档会直接交给当前接入方式的主模型处理,不再默认先调用独立的多模态解析接口。 - 不覆盖用户选择:已经显式保存过「先行解析附件」开关的配置保持原值,不会被这次默认值调整覆盖;关闭时也不会因未配置多模态 Key 而先走一次失败解析。
- 鸿蒙版:现有实现默认即为关闭,本次没有行为变化。
六、界面与体验优化(HarmonyOS 版)
- 检查更新:设置「系统」分组底部新增「检查更新」。点击优先通过
apptest://Deep Linking 直达 AppTest 公开测试页;已安装 AppTest 时直接拉起,未安装时回退到官方公开链接,避免只弹出「链接无法打开」。应用声明了apptestscheme 查询能力。 - 工具目录:设置「系统」分组新增「工具」,进入只读目录页,按阅读与检索、写入与编辑、计算与执行、文档产出、联网与上下文、任务与协作、技能七组展示全部 47 项工具,每项只保留名称与一句用途说明。页首用锁定的开关组件展示「工具自动管理」,只作状态说明,不引入设置项或运行时逻辑;目录使用静态快照,打开页面不构造工具定义、不注册监听、不发起异步任务。
- 侧边栏新建对话图标:抽屉侧栏的「新建对话」保留品牌浅蓝底胶囊,文字与图标同用品牌色;不再用文字
+,改用系统plusSymbolGlyph(15vp),避免看起来像文字加号或图标过小。
七、稳定性与性能(HarmonyOS 版)
针对「大工具输出闪退、历史积累后闪退、后台跑久回前台卡死、闪退后对话丢失」做的一轮系统性收敛:
- 会话存档与崩溃恢复:从「每次工具步骤把全部会话
toJson + stringify + 同步写盘」改为 800ms 合并写,切后台 / 停止生成 / 退出前强制刷盘;写盘改为逐会话流式序列化,峰值内存从「全部历史之和」降到「最大单会话」;输出文件直接写字符串,去掉TextEncoder + ArrayBuffer的整份复制。存档采用「主文件 +.bak+.tmp」三段式原子提交,主文件损坏时自动回退.bak,首次写入中途被杀也能从.tmp恢复;修复loadOk误判导致孤儿清扫删工作区的问题。 - 大输出与长历史:IEC 输出边收边解码,去掉 8MB 字节块合并副本与二次扫描;shell 输出上限 8MB → 2MB;Python stdout / stderr / meta / diag 按头尾保留、总上限 2MB;附件、分享文件、工作区 zip 导出在分配内存前检查大小。消息时间线只渲染最近 40 条并可向前加载;聊天模式请求按 300k 字符滑动窗口裁剪,工作模式增加 2M 字符硬上限;压缩只改请求副本,不再永久截断用户记录;旧工具参数超 16KB 时替换为合法 JSON 占位;历史图片只重发最近 3 条用户消息。
- 后台保活:切后台先申请长时任务再落盘;修复后台启动任务不申请保活与 start/stop 竞态;后台期间暂停页面整页刷新、1s / 100ms 轮询、气泡 50ms 文本刷新与 250ms 收尾采样,回前台补一次刷新。新增短时任务(约 3 分钟硬窗口)与长时任务分层保活:退后台先
requestSuspendDelay,再按设备申请dataTransfer(2in1 优先taskKeeping);WantAgent 改用运行时 bundleName / abilityName,避免 beta / 正式包名不一致导致申请失败;监听长时任务取消 / 暂停,仅在系统取消且任务仍在跑时重试一次,用户取消 / 删除通知 / 低速率 / 违规不重试;短时任务超时回调与长时任务暂停时各补一次落盘;AI 与朗读的长时任务按各自continuousTaskId停止,不会互相误停。 - 消息跟随:自动置底从「无条件跟随」改为「贴底才跟随」;用户上翻后彻底停止
scrollTo,Fling 惯性结束前不恢复,避免生成过程中与手势抢滚动造成抖动;回到底部自动恢复跟随;消息区底部新增系统 SymbolGlyph 的圆形「回到底部」按钮,不依赖 emoji。滚动帧内只更新普通字段,按钮显隐仅在跨越底部状态时写@State,并合并同一帧内多次置底请求。 - 主线程与资源:VM 通知 60ms 合并;工作区文件树 / 任务清单 / 目标 / 定时提醒按 mtime 缓存;目录列表每条目只 stat 一次;流式文本与思考按 80ms 批量上抛,降低逐 token 的 O(n²) 字符串复制;Markdown 表格规范化增加结果缓存。会话日志常驻 fd 限制为 8 个(LRU);历史内联图片超过 12MB 后从最旧消息释放
dataUrl(保留缩略图);设置面板按需挂载。
八、下载与产物
| 平台 | 安装包 | 版本 | 大小 |
|---|---|---|---|
| Windows 版(exe) | Guncat-Work-7.2.0-setup.exe |
7.2.0 | 104.6 MB(应用载荷 103.3 MB,解压后 385.0 MB) |
| Android 版(apk) | Guncat-Work-7.2.0-android.apk |
7.2.0 / versionCode 29898142 | 246.7 MB |
| HarmonyOS 版(hap) | entry-default-unsigned.hap |
7.2.0 / versionCode 720 | 420.0 MiB(未签名,需自行签名后安装) |
鸿蒙版邀请测试分享链接(永久):https://appgallery.huawei.com/apptest/955nTWBlvx0
鸿蒙版构建环境:DevEco Studio 6.1.1 / HarmonyOS SDK API 24,hvigorw assembleApp --mode project -p product=default -p buildMode=release。
九、验证(按平台)
电脑版
usage-check68 项通过:三协议归一化、峰谷边界与节假日、北京时间归日、OpenCode 字段、日聚合 / 400 天裁剪 / CSV、缺失usage降级、原子落盘与余额解析。render-check338 项通过:新增用量页(汇总 / 热力图 / 服务商卡 / 预算 / 页脚)与「本轮费用 / 本轮 tokens」统计卡断言。ipc-check534 项通过:新增 5 个 usage 通道,并验证真实 API 响应逐请求入账与当日明细。npm run typecheck:node/typecheck:web通过;npm run dist:setup重新打包。
安卓版
npm run typecheck(node / web / mobile)通过。- 本轮新增回归覆盖:用量
smoke22 / 22b 两组断言;交互模式七类文本截断用例与 14 项 Markdown 断言;设置页一级列表 / 二级详情与自动保存断言;模式胶囊「空会话优先、多个空会话取最新、无空会话才新建」四类断言;android-check同步改用新的设置页根节点与返回按钮定位。
鸿蒙版
test/guncat-harness逻辑测试 760 项通过。7.2.0/versionCode 720的 HAP 已构建完成;性能专项覆盖会话存档原子提交与恢复、大输出上限、长历史裁剪、后台短时 / 长时任务分层保活、消息跟随与主线程批处理。
十、说明与边界
- 用量账本只在本地:不云同步、不上传;清除应用数据或卸载后账本随之丢失。DeepSeek 余额仅作对账,不参与热力图与每日统计。
- 统计范围:只统计本应用内完成的 LLM 请求;缺失
usage的响应会计数但不猜成本;第三方客户端或其他设备的调用不在账本内。 - 峰谷与额度:DeepSeek 峰谷按北京时间计算,节假日表按端内置;OpenCode 额度与成本以网关返回为准。
- 后台保活不是无限常驻:HarmonyOS 仍可能回收后台进程;本版的目标是提高存活优先级,并在超时 / 暂停 / 退出前把已生成内容落盘。
- 平台差异是刻意的:电脑版 / 安卓版共用 HTML 渲染层,鸿蒙版使用 ArkUI 原生界面;设置页、用量页与模式切换的交互形态按各端屏幕与系统能力分别实现,功能口径保持一致。
Version 7.1.0
Version 7.1.0 发布说明
发布日期:2026-11-01
本次更新一览
| 更新内容 | Windows 版 | Android 版 | HarmonyOS 版 |
|---|---|---|---|
| Agent 跨轮次思考记忆 | ✅ | ✅ | ✅ |
| Word 公式修复 + 写盘前自检 | ✅ | ✅ | ✅ |
docx_render 文档渲染自查 |
✅ | — | — |
TextContent 的 Markdown 渲染 |
✅ | ✅ | 此前已修复 |
| 插件热加载后工具注册修复 | ✅ | — | — |
一、Agent 内核:跨轮次思考记忆
平台:电脑版 · 安卓版 · 鸿蒙版(三端同步)
问题根因:历史轮次的 reasoning 一直存在会话里,但重建请求时被整段丢掉——工作 / 交互模式只搬正文;Chat Completions 请求体里普通 assistant 消息不写 reasoning_content,聊天模式还只在服务端联网搜索开启时才回传;Anthropic 的 thinking 签名只存内存、没随消息落盘;Responses 的 reasoning output item 则完全没有保存。
结果是第二轮起模型看不到自己上一轮推理过的结论;带 tools 的 DeepSeek 思考模式甚至会直接 400。
修复:三种协议按各自规范回传
- OpenAI 兼容 Chat Completions:历史 assistant 的
reasoning_content一律回传,带tool_calls的消息也带;无论请求是否携带tools都不跳过(不带时服务端自动忽略)。 - Anthropic Messages:
thinking块随历史回传并置于消息首位,signature与redacted_thinking随消息持久化、跨轮次与重启后原样带回;DeepSeek / Opencode 等兼容端点接受无签名块,官方api.anthropic.com仅对「历史 + 无签名」跳过。历史被修剪 / 摘要压缩 / 整条裁剪后旧签名绑定的前缀已失效,会先清掉再发,避免Invalid signature400。 - OpenAI / DeepSeek Responses:保存
response.output_item.done里的 reasoning item,下一轮原样作为reasoninginput item 回传;DeepSeek 等兼容端点额外支持明文content兜底,官方 OpenAI 只回传带id/encrypted_content的原始 item。请求同时声明include: ["reasoning.encrypted_content"]。
顺带:只有思考、没有正文的 assistant 历史消息不再整条跳过;思考内容全量落盘并计入上下文预算,长任务不会因为多带思考而悄悄超出预算。
二、Word 工具链:公式修复与写盘前自检
平台:电脑版 · 安卓版 · 鸿蒙版(三端同步)
OmmlConverter/DocxBuilder三端共用同一份实现,本次按真机自检报告里的 8 类公式问题逐条修正。
- 命令后的上下标不再被吞:
\mu_0、\alpha_2、\bar{I}^2、\left(...\right)^2此前会丢失并留下空m:t。现在命令、字符、{...}组、\left...\right定界符统一走「原子 + 上下标」绑定路径;\sum等 nary 没有上下限时改用合法的<m:sub/>/<m:sup/>。 - 矩阵与对齐:
bmatrix右定界符改为](此前左右都写成[);cases生成左大括号而不是裸矩阵;aligned/align/split改用m:eqArr,不再退化成两列矩阵,等号能对齐;array/alignedat的列格式参数不再混进公式正文。 - 单位与范数:
\mathrm{m/s^2}先按数学解析再套正体,^不再原样漏出;\|映射为‖并把下标绑到双竖线上。 - 符号缺失:命名定界符(
\langle/\lfloor/\rfloor/\mid)不再被截成字母,直接映射为符号;\mathbb{R}^n的空心体与上标都保留。 - 常见写法有明确处理:未知环境、
\tag{}、\hline、\not=、\overset、\underbrace、\boxed等不再静默漏进正文。 - 写盘前自检:
write_docx/edit_docx在写盘前扫描document.xml,空m:t、LaTeX 残留、未识别命令、公式父元素不合规都会拒绝写盘并返回具体原因(含示例命令),不再出现“已生成 xxx.docx”但文件里是坏公式的情况。 - 返回值给证据:成功时附带可核对的自检结果,例如
2 公式段 / 4 行内公式 / 空 m:t 节点 0 / LaTeX 残留 0 / 未识别命令 0。 - 结构与字体(电脑版 / 安卓版记录):
\bar/\overline改用一层m:bar,不再重复上划线;\underbrace用合法的m:groupChr;m:oMath/m:oMathPara直接挂在w:p下;普通文本按字符范围拆 run——CJK 用宋体、Unicode 下标/数学符号用 Cambria Math,Uₐ不再因缺字形变成U。
平台差异:docx_render
仅电脑版新增
- 电脑版:新增
docx_render(path, page?, page_count?, width?),把 .docx 经 LibreOffice(优先)或 Microsoft Word COM 转 PDF,再用 PDF.js 逐页渲染成docx_render/<文件名>/pNNN.png,返回图片路径供view_image自查;未安装 LibreOffice/Word 时返回明确错误,结构自检不依赖渲染。 - 安卓版:不提供该工具——内置 Shell 明确不支持
libreoffice/soffice,也没有 Word COM,避免提供一个必然失败的能力。 - 鸿蒙版:本次更新记录未包含该工具。
三、交互模式:TextContent 的 Markdown 现在真的会渲染
平台:电脑版 · 安卓版(两端共用同一份渲染层,修复完全一致;鸿蒙版此前版本已修复此问题)
组件契约明确允许行内 **粗体**、[链接](…) 与 `行内代码`,但渲染层 renderNode 直接输出了原始字符串——用户看到的是 **1,284 万** 而不是加粗数字。
现在 TextContent 改走与消息正文相同的 Markdown 管线(CommonMark + GFM + LaTeX),行内语法与段落、列表、表格、代码块等块级语法一次性对齐;size 档位与卡片内排版保持不变,并为 Markdown 生成的段落补上首尾边距归零规则。MarkDownRenderer 仍是需要完整排版时的首选组件。
四、工具注册:插件热加载后核心工具定义不再丢失
平台:仅电脑版
插件热加载会先把 ToolRegistry.synced 置 true,导致之后核心工具定义不再补同步,schema 校验、只读/变更标记与工具清单都可能缺失。现在核心工具用独立标记 + 幂等 sync 补同步,插件与核心工具可以共存。
五、下载与产物
| 平台 | 安装包 | 大小 |
|---|---|---|
| 电脑版(Windows) | Guncat-Work-7.1.0-setup.exe |
104 MB |
| 安卓版(arm64) | Guncat-Work-7.1.0-android.apk(versionCode 29892038) |
246.7 MB |
| 鸿蒙版(HAP) | entry-default-unsigned.hap |
427.3 MB |
鸿蒙版构建环境:DevEco Studio 6.1.1 / HarmonyOS SDK API 24,hvigorw assembleApp --mode project -p product=default -p buildMode=release。
六、验证(按平台)
电脑版
typecheck:node/typecheck:web通过;run-smoke167 项、ipc-check529 项、render-check318 项通过。- 用本机 Microsoft Word 实测
docx_render:含封面/目录/行内公式/显示公式/矩阵/中文的文档成功转 PDF 并渲染 3 页 PNG。
安卓版
typecheck(node / web / mobile)通过;run-smoke190 项、ipc-check546 项、render-check317 项通过。
鸿蒙版
test/guncat-harness逻辑测试 760 项通过;test/docx-harness新增 16 项公式断言,setup → test-build → validate.py → deep-check.py全过。
三端共同覆盖的回归:三种协议 × 工作 / 聊天模式的跨轮次思考(含 Anthropic 签名与 Responses reasoning item 的持久化往返)、\mu_0 / \alpha_2 / \bar{I}^2 上下标绑定、\bar 只有一层、正常公式无空 m:t、未知命令被自检拒绝、矩阵/对齐/单位/范数等真机用例。
Version 7.0.0-alpha
Version 7.0.0-alpha
| 项目 | 内容 |
|---|---|
| 版本 | 7.0.0-alpha |
| 发布日期 | 2026-10-30 |
| 适用平台 | HarmonyOS · Windows |
7.0.0-alpha 相比 7.0.0 的核心变化是 HarmonyOS 版 shell 的执行核:从 QEMU 虚拟机内的 Alpine 换成 IEC 原生执行核。命令现在是随包的 HarmonyOS 原生 .so,没有虚拟机、没有指令翻译,也没有镜像冷启动。同时,Windows 版带来一批配置、界面、文件拖拽与粘贴文件等方面的改动,优化现有的交互体验。
Android 版相比7.0.0没有增加新的改动。请前往 7.0.0 release 获取 Android 版本
下载
| 平台 | 文件 | 大小 | 说明 |
|---|---|---|---|
| HarmonyOS | entry-default-unsigned.hap |
约 453 MB | 未签名,需自行签名后安装 |
| Windows | Guncat-Work-7.0.0-setup.exe |
约 105 MB | 安装包 |
主要更新
HarmonyOS:Shell 执行核换血(QEMU → IEC)
- 不再模拟一台电脑:旧实现在应用里跑 QEMU + Alpine,每条命令都要逐条解释,重命令动辄数秒到数十秒。现在
shell的命令都是原生.so,由 IEC 的 exec 服务加载并fork执行,常见命令耗时回到 0.2~1.5 秒量级。 - 同一份文件系统:不再有 virtio-9p 与宿主机、虚拟机两份视图。
cwd就是会话工作区,shell写出的文件其它工具立刻可见,其它工具写入的脚本也能直接执行。 - 环境像一个系统:注入
PATH/HOME/TMPDIR(HOME/TMPDIR按会话隔离),/etc映射到 sysroot;id、whoami、logname等命令有正确结果;#!/usr/bin/env sh之类的 shebang 可以直接工作。/tmp刻意不提供——沙箱只映射open/opendir,保留它只会得到半挂载;临时文件统一用$TMPDIR或mktemp ./x.XXXXXX。 - mksh 走真语义:管道、重定向、通配符、命令替换、here-doc、
case/for/while都由 mksh 执行;算术按 64 位重编,$((2000000000+2000000000))不再溢出成负数。 - CA 与网络开箱可用:内置证书统一导出为
GIT_SSL_CAINFO/SSL_CERT_FILE/CURL_CA_BUNDLE,git clone https://…、curl与 Python 的ssl都能直接校验证书。 - 旧栈移除:QEMU 桥、内核、rootfs、EFI ROM、
libqemu/libslirp与相关构建链全部删除,约 94 MB;不保留慢速回退,执行核没接上时直接报错。
HarmonyOS:随包命令集
| 类别 | 命令 |
|---|---|
| shell 与基础工具 | sh / mksh;toybox 70+ applet(ls / cat / grep / sed / awk / find / xargs / dd / md5sum / od 等) |
| 压缩与归档 | tar / bsdtar、unzip、zip、cpio / bsdcpio |
| 网络与传输 | git(含 HTTPS)、ssh / scp / key 工具(dropbear)、sftp、curl、nc |
| 数据与文本 | jq、bc、hexdump / hd、diff |
| 语言运行时 | node / nodejs 22.19、npm / npx、python3 / python |
- 所有命令都是独立
.so,不再有apk add这一步,也不依赖镜像预装;能力边界由随包命令集决定。 npm的纯 JS 树随包放置,首次启动解到 sysroot,以“整包解完”的完成标记判断是否可用。- 自编的
nc/hexdump/diff与 BSD / util-linux /git diff --no-index语义对齐,并有宿主侧逐字节对拍。
HarmonyOS:shell 里的 python3
- 同一个 Python 3.12:shell 里的
python3与run_python共用libpython3.12.so、标准库与 site-packages,不再经过虚拟机,npy桥随之移除。 - 独立进程,崩溃隔离:常驻 runner 为每次请求
fork一个孙进程加载 CPython,单次崩溃或被SIGKILL只影响那一次,后续调用不继承上一次的解释器状态。 - 退出码原样回传:
sys.exit(7)返回 7。 - 超时与取消收干净:调用方消失或作业被取消时,连同进程组一起收掉。
- 边界:shell 里的
python3不能subprocess起sh,需要管道时写在外层 shell。
HarmonyOS:shell 语义与资源治理
- 超时由执行核强制:默认 60 秒、上限 240 秒;到点先
TERM后KILL。 - 输出有界且可追溯:stdout / stderr 各截断到 60 KB,完整内容落
.spill/并给出相对路径;区分“引擎因上限丢弃的字节”与“壳层截断”。 - 二进制不装作文本:输出含非法 UTF-8 或 NUL 时标记
binary=true,提示改用重定向或base64。 - 状态行说人话:区分
exit 0、非零退出、超时终止、被信号终止、启动失败与“未观测到退出状态”。 - 并发有上限:同一时刻最多 8 条命令,超出排队。
- 作业级取消:每条命令带作业标识,取消时整棵进程树一并结束;启动时清理上次遗留的孤儿进程。
- stdin 不会挂住:带数据的
stdin先落成文件再重定向;没有stdin时接/dev/null,不会因等输入而超时。 - 路径与脚本兼容:
cwd必须是工作区内的相对路径;相对路径脚本与没有 shebang 的文本脚本有可预期的回落,不再直接127。 - UTF-8 统一:工具与
/bin/sh(含sh -c、sh script.sh、#!/bin/sh)默认按字符处理,${#中文}=2、切片正确;直接mksh script.sh仍需mksh -U。printf的字段宽度仍按字节(toybox),对齐用 awk/python。 - 后台进程回收:命令结束后收掉残留的
&后台进程,不跨调用泄漏。 - 软链跨工具可见:文件工具统一解析
.IEC_SYMLINK,删除与移动作用于链接本身;越界与环境变量保护仍在。
HarmonyOS: 附件先行解析默认关闭并清除旧开启记忆
- 考虑到现在绝大多数模型都是多模态模型,因此多模态附件先行解析属于过时能力,改为默认关闭。新增 preparseUserSet 标记区分用户显式选择:旧存档没有该标记时忽略历史 preparseEnabled 值,统一回落为关闭,只有用户在设置里手动打开才会被记住。
Windows:预置方案与多模型对齐 Android & HarmonyOS
- 新增两套预置配置方案:
Deepseek(https://api.deepseek.com)与Opencode Go,都走 Anthropic Messages 接入,各预留一个模型。装上就有,补一个 API Key 即可使用。 - 老用户升级只播一次:已配过
api.deepseek.com的方案做兼容合并,Key、模型列表与多模态配置搬进预置项,不留两个同名同址的方案。 - 一个方案可以填多个模型:设置里的「模型」改为多行输入(每行一个,也接受逗号 / 分号分隔),保存时去重;当前生效的模型被删除时退回列表第一个。老数据按单模型处理,原样保存。
- 顶栏模型胶囊升级为「方案 + 模型」菜单:点开列出所有已填 API Key 方案下的全部模型,一点即切换。表格提取的模型下拉同步展开,没填 Key 的方案不列出,不让人选到一个必然失败的模型。
- Opencode Go 网关适配:
x-opencode-session请求头统一补上,会话 id 在整轮请求中保持稳定。
Windows:设置面板对齐 Android & HarmonyOS
- 「自动朗读回答」与「语音输入(录音转文字)」改为与上方三节同款的折叠栏,缺省收起,面板一打开就是常用项。
Windows:文件拖拽按模式自动分流
- 聊天模式:文件拖到对话区或底部输入区,自动加入底部附件预览条;若右侧「工作区」面板展开且拖到该面板上,则导入当前会话工作区。遮罩层实时提示落点去向。
- 工作模式 / 交互模式:文件或整个文件夹拖入窗口任意区域,自动导入当前会话工作区(递归收录文件夹内文件),导入后文件树立即刷新。
- 拖拽兼容性加固:从浏览器、截图工具等无本地路径的来源拖入内存文件时,自动落入临时目录再走统一链路;拖离窗口的判定与复位更稳;拦住非应用内 URL 的导航,避免误触发浏览器默认的文件打开行为。
- 安装后首启降权:安装程序完成页拉起应用时,未勾选「始终以管理员身份运行」则经由
explorer.exe降权启动,避免新装首启继承管理员令牌后拦截资源管理器的拖拽。
Windows: 输入框粘贴图片或文件
- 在输入框 Ctrl+V 粘贴时,接管剪贴板里真的带文件的内容,普通文字粘贴不受影响。
- 去向与拖拽共用同一套判定:
- 聊天模式 → 加入底部附件预览条(与回形针、拖拽共用 attachments:addPaths 的后台解析与缩略图链路)。
- 工作 / 交互模式 → 导入当前会话工作区(面板未展开时自动展开,文件树立即刷新)。
- 截图、浏览器、聊天软件复制的图片没有磁盘路径,会自动经 files:stageTemp 落到应用临时目录(按 MIME 补全扩展名)再走统一链路。
- 路径提取抽到共享的 src/renderer/src/intakeFiles.ts,拖拽与粘贴不会再出现“只修好一处”的问题。
- 输入框占位文案与回形针提示同步写明可直接粘贴。
Windows: 命令审批默认档位改为「自动审批」
- CommandGuard.normalizePermission 的空档位 / 非法档位兜底从 ask-risk 改为 auto。
- 新会话与未设置档位的旧数据默认进入模型审阅:判 low/medium 且明确放行才静默执行,判 high、结论矛盾、解析失败、超时、没配模型都退回人工卡。
- 面板中「默认档」标记移到「自动审批」;ask / ask-risk / full-access 语义不变,硬禁表仍然优先。系统提示词与工具说明里的档位描述同步更正。
平台能力对照
| 能力 | HarmonyOS | Windows |
|---|---|---|
| 命令执行 | IEC 原生执行核(随包 .so) |
系统 cmd |
| 原生 Python | 进程内 CPython 3.12 + shell 内 python3 |
系统已安装解释器 |
| 命令审批 | —(沙箱工作区内执行) | 支持 |
| 后台任务 | —(同步执行) | 支持 |
| 多模型与预置方案 | 支持 | 支持 |
| 文件拖拽分流 | — | 支持 |
升级说明
- HarmonyOS:HAP 未签名,需自行签名后安装。不需要迁移镜像,首次使用
shell不再释放镜像或冷启动。旧版本可能在应用私有目录残留 QEMU 镜像,新版本不再读取。 - HarmonyOS:仅提供 arm64-v8a;x86_64 模拟器上 IEC 的 NAPI 加载失败,
shell不可用。 - Windows:可直接覆盖安装;明文 API Key 在下次写盘时转为密文,跨机器复制的配置中无法解密的条目会被剔除并提示重新填写。
- 配置迁移:模型配置自动迁移,旧存档的单模型转为
models列表;旧的 Deepseek 方案并入预置方案。
已知限制
- HarmonyOS:没有真 pty 与 job control,依赖终端的交互式 TUI 不适用;
&可以起后台进程,但没有Ctrl+Z/fg/bg。 - HarmonyOS:不再提供
apk add式的包管理器扩展;需要新命令时通过 IEC 构建链编成.so随包。 - Windows:安装包未签名,首次双击 SmartScreen 会拦一下,点「更多信息 → 仍要运行」即可。
数据与隐私
- 对话记录、工作区文件与会话日志保存在应用私有目录;删除会话时同步删除对应工作区。
- 模型请求与所附文件只发送到用户自行配置的模型服务。
- Windows 的 API Key 经系统凭据库加密后落盘(
enc:v1:)。 - HarmonyOS 的命令在会话工作区内执行,
run_python的安装目录(标准库与三方库)只读。
完整更新记录见 CHANGELOG.md 的「7.0.0-alpha」一节;架构细节见 IEC 执行核。
有问题或建议欢迎提 Issue。
Version 7.0.0
Guncat Work 7.0.0
| 项目 | 内容 |
|---|---|
| 版本 | 7.0.0 |
| 发布日期 | 2026-10-28 |
| 适用平台 | HarmonyOS · Windows · Android |
7.0.0 是 Guncat Work 的首个三端同版发布:Windows 与 Android 由此前的 0.2.1 测试版进入正式版,并与 HarmonyOS 统一版本号。变化集中在运行环境——HarmonyOS 版引入命令执行与进程内 CPython 3.12 运行时,手机端具备完整的 Linux 用户态与原生 Python 环境;Windows 与 Android 版补齐命令审批、后台任务与终端能力。功能层面,新增@ 引用工作区文件、编辑前读取校验与项目指令等功能。
下载
| 平台 | 文件 | 大小 | 说明 |
|---|---|---|---|
| HarmonyOS | entry-default-unsigned.hap |
382 MB | 未签名,需自行签名后安装 |
| Windows | Guncat-Work-7.0.0-setup.exe |
105 MB | 安装包;另有便携目录形态 |
| Android | Guncat-Work-7.0.0-android.apk |
247 MB | 安装包 |
主要更新
新增 Shell 命令执行
模型可直接调用系统命令行工具,管道、重定向、通配符与命令替换均为真实语义,grep、sed、awk、find、tar、xargs、sort、cut 等标准工具可用。工作目录即会话工作区,因此 cat data/a.csv与 read_file("data/a.csv") 指向同一文件。三端的运行环境不同:
| 平台 | 运行环境 | 首次使用 |
|---|---|---|
| HarmonyOS | QEMU 虚拟机内的 Alpine 3.22(内核 6.12),以 TCG 解释器(TCI)执行指令,不生成机器码 | 释放镜像并冷启动,约数十秒 |
| Windows | 系统命令解释器(cmd /d /s /c) |
无额外准备 |
| Android | 内置 Termux 用户态;无可用 shell 时回退 /system/bin/sh |
解压约 684 MB |
共用语义:
- 输出有界:stdout 与 stderr 各截断到 60 KB,全文写入工作区的
.spill/供后续读取。 - 退出码:非零退出码不判为工具失败(
grep无匹配返回 1 属正常语义),由模型结合 stderr 判断。 - 可扩展:HarmonyOS 可用
apk add,Android 可用pkg install,两者均可在 shell 内pip install。
平台差异:
- HarmonyOS:工作区经 virtio-9p 挂载进虚拟机,虚拟机与工具层看到同一批文件,没有同步环节;镜像预装 python3、pip、jq 与 CA 证书;虚拟机内存 2 GB,空闲 10 分钟后关机释放,应用进程退出时虚拟机随之销毁;命令默认超时 60 秒,上限 240 秒。
- Windows:环境变量按白名单传递;超时后连同子进程一并终止。
- Android:Termux 用户态包含 bash、coreutils、grep / sed / awk、tar、curl、git、jq、sqlite3、apt / dpkg 与 Python 3.14;执行前将会话工作区写入设备目录,结束后回写;仅提供 arm64。
新增原生 Python(HarmonyOS)
Shell的引入带来强大的Python工具。Windows 使用机器上已安装的Python,Android 使用 Termux 自带的 Python 3.14 与预置库,可离线使用。
HarmonyOS 由于无法获取到JIT权限,在虚拟机内解释执行效率极低,因此引入了原生编译的CPython。
HarmonyOS 版的 run_python 使用在应用进程内执行的 CPython 3.12,而非虚拟机中的 python3。解释器编译为 HarmonyOS 原生 .so(libpython3.12.so,5.8 MB;标准库 9.6 MB),中间没有指令翻译层,CPU 密集型负载比虚拟机内的解释器快两到三个数量级。
- 运行参数:工作目录为会话工作区;默认超时 30 秒,上限 180 秒;输出上限 20000 字符,超出部分写入
.spill/。 - 随包库:numpy、pandas、scipy、matplotlib、lxml、sympy、python-docx、python-pptx;另有 regex、psutil、PyCryptodome、reportlab、watchdog、qrcode、XlsxWriter 与
guncat_mp。随包思源黑体,matplotlib 中文标签无需额外安装字体。 - 标准库补全:
ssl(含 118 张 CA 证书)、sqlite3、bz2、lzma与完整zoneinfo时区数据。 npy桥:虚拟机内的npy把 Python 转发给宿主原生解释器,可在管道中使用(npy gen.py | jq ...);单次往返约 134 ms,而在虚拟机内启动python3 -c pass需要 3.1 秒。- 超时与隔离:AST 截止检查在纯 Python 层抛出
TimeoutError,宿主在超过时限后放弃等待并拒绝本会话的新调用;每次调用前后对进程级状态做快照与回滚;安装目录只读。 - 内存:调用结束清空上一次的全局字典,仅在 RSS 超过 400 MB 时触发 GC;matplotlib 字体缓存固定在应用 cache 目录;接近内存阈值时在结果前追加提示。
新增工作区引用、读取校验与项目指令
@ 引用工作区文件
- 输入
@弹出文件候选(最多 8 项),选中后插入路径;发送时附加文件正文,会话记录保留原话。 - 预算为单文件 24000 字符、单轮 60000 字符、最多 8 份。
- 目录、二进制文件、不存在与越界路径均返回原因,越界路径不读取;邮箱与 URL 中的
@不触发。 - 插话中同样可用;完整附上的文件按「已读取」登记,可直接编辑。
编辑前读取校验
read_file、write_file、append_file成功后登记版本指纹,edit、str_replace_editor执行前校验。- 未读取返回
FS_NOT_OBSERVED,读取后文件发生变化返回FS_STALE_VERSION,并给出「先读再改」指引。 - 指纹由文件大小、mtime 与首 8 KB 的 FNV-1a 组成;
delete_file、move_file清除登记。
项目指令
- 工作区根目录的
AGENTS.md、CLAUDE.md、GUNCAT.md作为项目指令提供给模型:开工前读取,「以后都按这个来」写入AGENTS.md。 - 项目指令是数据而非权限,不能解除审批或扩大工作区范围;与用户当前消息冲突时以用户消息为准。
- Windows 与 Android 按会话快照注入;HarmonyOS 由提示词约束,模型自行读取。
新增命令审批(Windows / Android)
四档审批:ask、ask-risk、auto、full-access。163 条规则覆盖硬禁命令、危险操作、意图不明的写法、脚本内容、命令位、越界路径与编码载荷;auto 档由模型审阅,无法判定时转人工确认。
判定文本取三层:命令原文、去伪装还原(^、@ 前缀、%ComSpec%、引号拆词)与脚本拆出的内容。脚本按进程 cwd 与脚本所在目录分别解析,裸名按 PATHEXT 候选后缀查找;绝对 POSIX 路径落在工作区外即判为危险。Android 与 Windows 共用同一判定层,判定逻辑可脱离真实进程断言。
HarmonyOS 不设审批:命令运行在仅挂载会话工作区的虚拟机内,破坏性操作限于虚拟机内部沙箱工作区,影响范围有限,考虑到此功能对性能造成的影响,设立危险命令审批的必要性不强。
新增后台任务(Windows / Android)
提供 run_in_background、job_list、job_output、job_kill 四个工具。单会话最多 8 个任务;输出写入环形缓冲并落盘,读取带游标;应用重启后未结束的任务标记为「已中断」。Android 上息屏与切后台期间任务继续执行,保活方式见「长任务保活」。
HarmonyOS 暂不提供后台任务功能。原因在于后台任务本身对性能负载要求较高;HarmonyOS 系统管控较严(不支持 JIT 等),虚拟机内命令执行与原生 CPython 运行的负载均偏高,内存压力较大,不适宜执行后台任务。
新增长任务保活
- HarmonyOS:前台运行期间保持屏幕常亮,流式回复与 Agent 循环不会因熄屏中断;切到后台时若流式仍在进行,申请数据搬运长时任务继续运行,回到前台立即释放。
- Android:以前台服务与常驻通知,配合部分唤醒锁、Wi-Fi 锁与电池优化白名单,息屏与切后台期间任务照常推进。
- Windows:不存在进程挂起,窗口最小化后继续执行。
新增预置服务商(HarmonyOS / Android)
- 预置方案:Deepseek(Anthropic Messages,
deepseek-flash)与 OpenCode Go(Anthropic Messages,deepseek-v4.1-flash)。启动时只补缺失项,已填 Key 的方案不覆盖。 - 旧配置迁移:
https://api.deepseek.com方案并入 Deepseek 预置,Key、模型、参数与多模态配置一并迁移;正在使用的方案保留其当前模型。 - 多模型:单个配置支持多个模型(
models列表可增删),旧存档的单model自动迁移。 - 选择器:按「方案 × 模型」逐行展示,胶囊显示模型名,菜单显示服务商;未填 Key 的方案不出现。
- 配置管理:可删除自建配置;默认配置与预置方案受保护;删除当前方案后自动切换到相邻方案。
- 会话头:OpenCode Go 网关按文档补
x-opencode-session会话头,绑定当前对话,流式对话、Agent Loop 与 Files API 三处统一注入。
优化多端适配体验
Windows
- 会话绑定磁盘目录:会话可指定任意磁盘目录,一键恢复默认;侧栏文件树按需加载、按类型打开:图片进入灯箱,Markdown 走对话流渲染,代码高亮,Office 与 PDF 交给系统默认程序。
- 代码沙箱:
run_js改由node:vm执行,死循环可被引擎中断,不再使用「放弃等待、后台继续占 CPU」的兜底。 - 凭据保险库:API Key 经系统凭据库加密(
enc:v1:);跨机器解密失败时剔除对应项并提示;历史明文配置仍可读取,下次写盘转为密文。 - 分发与诊断:提供便携目录与安装包两种形态;安装包支持
--silent、--dir等静默参数,卸载可选是否删除本地数据;产物内含diagnose.cmd/diagnose.ps1,另有兼容模式、管理员模式与桌面快捷方式脚本。
Android
- 窄屏界面:会话抽屉、全屏工作区与设置、安全区适配、44 px 触控目标、16 px 输入字号、表格横向滚动、返回键分层处理;模型、推理强度、配置方案、接入方式、搜索引擎与命令审批统一使用底部选择器。
- 触屏交互:不保留 hover 态;复制有原生桥回退;流式输出自动置底时不会打断正在拖动的选区。
- 设备接入:原生相机(不依赖 AndroidX)、相册与文件选择、系统分享接收、系统 TTS 朗读、端侧语音识别(API 31 及以上,失败时回退服务商转写)。
HarmonyOS
- 搜索条数:设置面板新增「单次结果条数」,范围 1~20,默认 8;读取时对历史值与字符串做夹取。
修复
HarmonyOS
- 自动重试从未生效:兜底
catch把所有LoopError重新包成protocol,429、5xx、传输中断与流截断在分类层即被判为不可重试,RetryPolicy一次也未执行。现分类错误原样上抛,仅限流、服务端、传输与空响应进入重试;工作模式 5 次、聊天模式 3 次,Retry-After单独封顶 60 秒;重试前清除上一次的半截输出,提示改为临时 toast,不再写入回答正文。 - 响应截断被当成正常结束:三种协议此前只要 HTTP 200 且数据流结束就判定完成,半截正文进入会话,表现为任务静默停住。现要求收到终止事件(
finish_reason/[DONE]、message_stop/stop_reason、response.completed/response.incomplete),否则按传输错误重试。 - 大请求体固定 30 秒超时:使用
view_image后请求体变大,连接阶段超时导致重复重连失败。connectTimeout改为按请求体大小放大:256 KB 以内维持 30 秒,之后按约 100 KB/s 预留,封顶 180 秒。 - 重试重复携带内联图片:传输或空响应失败后仍带着同一张图重试。现于重试前将内联图片从循环历史中移除并说明原因,由模型按需重新读取。
- 多图只送达最后一张:一轮内多次调用
view_image共用一个imageDataUrl,后一次覆盖前一次。现按调用逐张追加为独立视觉消息,标注序号与来源路径;子代理同步修复。 - 大图无法送达:超过 8 MB 的图片此前直接失败。现按 2048/90、1600/82、1280/72 逐级压缩,结果注明原图与压缩后大小;三档仍超限则如实报错,8 MB 以下按原图发送。
- 提问答案被丢弃:
ask_user_question外层护栏 180 秒短于卡片 300 秒的等待,第 3~5 分钟作答不会送达。护栏提高到 360 秒,卡片不再在无人等待时继续显示。 - 跨会话消息误入其他会话:A 会话执行中在 B 会话发送,消息被插入 A 的插话队列。现按运行期会话判定归属:其他会话发送时给出提示,提问卡与定时提醒只进入所属会话。
- 插话发送无响应:执行中发送被界面层的
isStreaming判断拦截,文字清空但任务无感知。现正常入队并回执「本轮执行完就接手」;插话只在轮边界注入,不打断在途工具与流式输出。 - 连续两次超时导致 Python 不可用:软超时计数只增不减,两次后本会话所有 Python 调用被拒,只能重启应用。现仅统计软超时,任务结束即回退计数;原生侧在忙碌时直接拒绝新调用,不再覆盖队列槽位。
- 进程级状态跨调用泄漏:
os.environ、sys.path、logging级别、warnings.filters、random种子与numpy 打印选项在常驻解释器中保留到下一次调用。现每次调用前后快照与回滚,sys.modules导入缓存保留。 - 输出捕获不完整:
sys.stdout为裸StringIO,os.write(1, …)绕过捕获漏到宿主 stdout。现把fd 1/2dup2到真实文件并以TextIOWrapper包装,print、buffer.write、fileno()与os.write均落入同一份输出。 - 解释器安装目录可写:
sys.prefix下的文件对此后每次调用、每个会话生效,写入即构成跨会话代码注入。现以审计钩子拦截写操作并抛出PermissionError,读取与工作区写入不受影响。 multiprocessingspawn 静默失败:嵌入式解释器没有可重新执行的 Python 主体,子进程以exitcode=255结束且start()/join()不抛异常。现于首次 import 后替换spawn.get_executable,直接抛出说明改用 fork、guncat_mp或线程的RuntimeError。- Python 闪退:6 份崩溃日志堆栈一致(
SIGSYS(SYS_SECCOMP),syscall 235),根因是 OpenBLAS 在blas_memory_alloc中调用mbind被沙箱拒绝。已避开该路径,同时修复 extras 未解压与guncat_mp.available()恒为真的探测缺陷。 - 工作区残留:删除会话时若任务仍在运行,收尾阶段会把刚删除的目录写回。现删除前停止任务、收尾补删,并在会话存档读取成功时清扫孤儿工作区与会话日志;空会话自动清理时同步删除目录。
- 交互卡片渲染回归:围栏判定收紧后,交互模式整条消息不再渲染卡片;现恢复空 info 围栏并补充构建路径。工作模式改为结构性禁用卡片,不再出现不属于它的交互卡片。
Windows
- 流式超时:
readTimeout曾按整段时长计时,工作模式 5 分钟、聊天模式 3 分钟必被中断。改为按读空闲计时,另设connectTimeout覆盖等待响应头阶段。 - 定时提醒:到期无动作,模型承诺的定时提醒不会发生。现每秒推进,到期注入提醒并唤醒工作循环。
- 第二轮丢失上下文:
runWork每次开任务重建循环消息,只带本轮一句。现重放历史正文,不搬toolCalls,避免工具结果撑爆预算与协议断链。 - PDF 解析:后端缺失(
backend === null),任何 PDF、任何来源都返回「文档结构损坏」。现接入 PDF.js与 canvas 渲染。 - SVG 栅格化:
nativeImage只解码位图,输入 SVG 必然失败;改用 canvas 的loadImage。 - Mermaid 图表偶发退回源码:三个独立原因分别导致不渲染——模型输出 Unicode 箭头、同帧挂载的两张图生成同一毫秒 id、
render不可重入导致多图与流式重绘互踩。现分别做箭头归一化、模块级自增 id 与串行排队,排队期间被新 token 顶掉的重绘直接跳过。 - 无语言标记的代码围栏:此前被当成界面围栏,工具回显、公式与命令示例各画一个空块并吃掉正文;现按内容判定,不像程序则交回 Markdown 渲染。
- 停止状态显示:轮次正文末尾标注停止、上限或失败,折叠栏标题改为「已停止」。
- 推理强度档位:档位曾写死在主进程,工作模式拿不到 Max;现按形态分键持久化,顶栏与设置均可选。
- 设置面板:修复一处静默丢配置;占位符与多模态字段按接入方式整组显隐。
Android
- 流式超时:与 Windows 同因(按总时长计时),改为读空闲计时,长流式不再因总时长被掐断。
- 响应截断重试:必须收到终止事件才算完成,否则按传输错误重试。
- 选择器文件:选择器返回的是一次性
File,内核只认路径;改为先落盘到工作区再交给内核。
平台能力对照
| 能力 | HarmonyOS | Windows | Android |
|---|---|---|---|
| 命令执行 | 虚拟机内 Alpine | 系统 cmd |
Termux 用户态 |
| 原生 Python | 进程内 CPython 3.12 | 系统已安装解释器 | Termux Python 3.14 |
| @ 引用、读取校验、项目指令 | 支持 | 支持 | 支持 |
| 命令审批 | —(虚拟机隔离) | 支持 | 支持 |
| 后台任务 | —(同步执行) | 支持 | 支持 |
| 长任务保活 | 屏幕常亮 + 长时任务 | 不适用 | 前台服务 |
| 绑定任意磁盘目录 | — | 支持 | — |
| 凭据保险库 | — | 支持 | — |
| 诊断与安装选项 | — | 支持 | — |
升级说明
- HarmonyOS:HAP 未签名,需自行签名后安装;首次执行命令触发镜像释放与冷启动(数十秒);运行库版本变化时会重新释放镜像。
- Windows:可直接覆盖安装;首次启动出现一次自我重启属预期(
--no-sandbox在真实命令行生效);明文 API Key 在下次写盘时转为密文,跨机器复制的配置中无法解密的条目会被剔除并提示重新填写。 - Android:首次使用内置终端解压约 684 MB;
pkg install安装的包路径写死com.termux,不保证直接可用;targetSdk 28是执行私有目录二进制的前提,仅适合 sideload。 - 配置迁移:模型配置自动迁移,旧存档的单模型转为
models列表;HarmonyOS 的旧 Deepseek 方案并入预置方案。
数据与隐私
- 对话记录、工作区文件与会话日志保存在应用私有目录;删除会话时同步删除对应工作区,启动时清理历史残留产生的孤儿目录(HarmonyOS)。
- 模型请求与所附文件只发送到用户自行配置的模型服务。
- Windows 的 API Key 经系统凭据库加密后落盘(
enc:v1:),历史明文配置在下次写入时转为密文。 - 命令执行的环境隔离:HarmonyOS 的命令运行在仅挂载会话工作区的虚拟机内;
run_python的安装目录(标准库与三方库)只读。
Version 6.3.0-fix
Guncat Work 6.3.0-fix
6.3.0 发布后的同版本补充修复:把交互模式的文件入口收回到沙箱工作区,顺手修掉三处真机观感问题,
再让「快」真正落到请求与提示词本身上。共 10 个提交。
版本 6.3.0-fix(应用版本号仍为 6.3.0 / versionCode 720)· commit 38ac632 · 日期 2026-10-11 · tag v6.3.0-fix
🩹 修复
拍照与系统分享只进工作区(本版最主要的一条)
- 交互模式点拍照,照片会掉进待发送附件区、再被当作聊天附件发给模型——门禁写成了
workMode。
现在统一用agentLoopMode:工作 / 交互模式拍照直接落沙箱工作区,聊天模式没有工作区,照片照旧走聊天附件。 - 系统分享"有概率不同步到工作区":分享数据可能早于视图模型初始化完成到达,那一刻会话还是空的,
同步被静默跳过(只剩附件区一个缩略图)。现在等初始化完成再消费,并在发送前对未落盘的暂存文件补写一次
(按会话 + 源 uri去重,不会留重复副本)。 - "同步过、工作区里却丢了":分享 / 拍照是先落工作区、用户还没发消息,旧逻辑只看消息条数就把这种空会话
清理掉,工作区目录成了孤儿。现在会话工作区里已有文件就不清。 - 口径澄清:附件区在工作 / 交互模式里只是系统分享的暂存位(留给"切回聊天模式后仍能作为附件发出"),
发送时不再进入模型请求;模型从工作区读文件,图片用view_image看。
卡片里的 **加粗** 不再原样露出星号
- 提示条(
Callout/TextCallout)的标题与正文此前是裸Text,不解析任何行内标记。现在与正文同一条
行内富文本路径:**粗体**/`行内代码`/[文字](url)都按内容渲染,标题字重与正文行高保持不变。
卡片文字支持长按自由复制
- 交互模式的卡片是"能读的界面",但长按毫无反应:ArkUI 的
Text默认不可复制,渲染器里 71 处Text一个都没挂。
现在 50 处内容型Text全开copyOption(标题 / 正文 / 表格单元 / 指标值 / 代码块 / 来源…),
19 处控件标签刻意豁免(整块区域就是点击热区,挂上会抢自己的点击手势),豁免写法是行尾// copy-off: 原因。 - 新增源码级护栏
check-ui-copy.mjs并接入 CI:漏挂、豁免没写原因、豁免又挂copyOption,三种都会点名到行。
⚡ 交互模式更快的两件事
工具面物理裁剪:45 → 27
- 纪律落到请求本身:
todo_write/goal_*/schedule_*/subagent/session_search/record_search/
ask_user_question/edit/str_replace_editor/delete_file/move_file/edit_docx|xlsx|ppt
等 18 个长程与维护类工具在交互模式不再下发——"模型调不到"比提示词里写十遍更有效。
只过滤不重排,工具面顺序稳定,KV 缓存前缀不受影响。 - 技能段降为极小索引(只列 docx / xlsx / ppt / svg / data 五支格式技能)。
提示词重排与去重
- 「最高优先级 · 快」提到整段提示词的第 0 段:此前它待在底座的 85% 处,前面隔着 8.3k 组件清单、
3.5k 丰富度、2.2k 示例,等于纪律写在长上下文尾部。先立规矩,再给语言能力。 - 新增「思考纪律: 短」:思考只做三件事(定界面骨架 → 定数据来源 → 定标题与结论),
禁止在思考里复述语法与组件清单、预先草拟正文、逐位心算数字。 - 一条规则只留一个权威的家:23.9k → 21.3k 字符(组件清单 8.3k 不动,砍的是重复表述:反例 -45%、
职责段 -55%、示例 -28%)。
🔧 工程
- harness 生成物不再进版本库:
git rm --cached398 个文件(gen/、check/、png.b64、
调试输出、本机 npm 缓存),补齐.gitignore;被跟踪文件 906 → 508。 - 堵住"CI 可能校验旧产物":产物改为"先删除、再构建、校验前断言存在";
docx 步骤补上此前漏跑的makepng.py(它过去能通过,只是因为旧png.b64恰好被跟踪着)。 - CI 修掉 Node 20 弃用告警与 runner 漂移:action 升到 Node 24 版本,
runs-on由ubuntu-latest固定为ubuntu-24.04。
✅ 验证
- 纯逻辑单测 507 → 521 项全绿:新增 45→27 裁剪断言、「快」必须在第 0 段的顺序断言、
"职责段不再复述语法 / 丰富度 / 真实数据"的长回来守卫。 - 服务层类型检查
tscexit 0;DevEco 真实编译assembleHapBUILD SUCCESSFUL(CompileArkTS0 error)。 - 发布前重跑:单测 521 全绿、
tscexit 0、BUILD SUCCESSFUL、check-ui-copy50 可复制 / 19 豁免。 dump-interactive-prompt.mjs可随时导出当前提示词(14 段结构 + 逐段全文),本次组装结果第 0 段即「快」。
📦 安装
与 6.3.0 相同:本 Release 提供预编译的未签名 HAP,也可从源码构建
(DevEco Studio 6.0.1 / HarmonyOS SDK API 24 / HarmonyOS 真机)。
环境要求、常用兼容地址与首次使用(设置 → 新建 API 配置)见 6.3.0 Release。
🔒 隐私
运行时只使用应用沙箱(filesDir/workspaces/)与系统安全组件完成文件读写,未新增任何存储权限;
聊天请求与附件只发送到用户自行配置的模型服务。
应用版本号仍为 6.3.0(versionCode 720)——本 tag 不发新版本号,只作为 6.3.0 的补充修复。
完整记录见 CHANGELOG.md 的「6.3.0 更新」一节。
Version 6.3.0
Guncat Work 6.3.0
鸿蒙掌上 Codex —— 原生 HarmonyOS AI 客户端。本版新增 交互模式(Intelligent UI):一句话进来,一张能拖、能点、能改参数并即时重算的原生界面出去。
版本 6.3.0(versionCode 720) · commit 0487fbc · 日期 2026-10-10
✨ 本版主线:交互模式(Intelligent UI)
交互模式是 Agent 循环的第二种交付形态,与工作模式共用同一套 Agent Loop、沙箱工作区与全部 45 个工具,但行为纪律相反:工作模式是「多轮工具循环 + 长程交付」,交互模式是「快车道、一轮直出界面」。
对标 GPT 的 Intelligent UI:回答不再是纯文本,而是一份界面程序
应用的交付物从文字变成一份界面程序,由渲染器转成原生可操作界面:8 种图表(柱状 / 折线 / 面积 / 横向条 / 饼环 / 径向 / 雷达 / 堆叠条)、表格、指标卡、图片墙、选项卡 / 折叠面板 / 步骤条 / 卡片块,以及整套表单控件(滑块 / 开关 / 单选 / 多选 / 下拉 / 标签选择 / 选项卡 / 输入框 / 文本域)。图表全部用声明式 Shape + Path 现画,不引入图表库、不产生图片文件。
上游研究材料随仓库提供:open-intelligent-ui 规格 · openui-lang 规范。
交付格式重写:严格 JSON → 声明式界面语言 guncat-ui lang
旧的 JSON DSL 被整体删除并重写。核心变化是抗截断能力:
- JSON → 按行语句:每条语句独立成行(
root = Card([header, chart])、header = CardHeader("标题"))。
被输出上限截断时,旧格式整块作废;新格式只损失最后一条没写完的语句,前面的全部照常渲染。
「补救」从主路径降级成兜底。 - 70 个原生组件(9 组),组件库有单一事实源(
GuncatUiLibrary.ts):一张表同时生成提示词里的组件清单、解析期的参数映射、渲染期的合法性判断,三者不会再漂移。 - 回答不再有「卡片外壳」:旧实现在界面外套了一层带边框、阴影与状态徽标的卡片,观感像"嵌在聊天里的小部件";现在节奏只来自间距——这是最直观的一次观感提升。
- 容错策略(有意偏离参考实现):未闭合的括号 / 字符串自动补齐;未知组件名丢弃并给出诊断;但必需参数缺失或类型不符不再丢弃组件(用安全默认值渲染)——聊天场景里"少一个字段"远好于"整块消失"。
交互闭环:拖参数即时重算,需要换数据才回传模型
- 双向绑定(
$变量):控件绑到$变量后,拖动 / 勾选会立即用新值重新求值整棵树("金额 " + $amount + " 万"会实时变),不发请求、不等模型。 - 回传模型:需要换数据或换算法时,点按钮或提交表单,把设置与诉求打包回传,模型产出更新后的完整界面。
- 状态随消息持久化:调过的参数以尾标记保存在消息里,滚动 / 切会话 / 重启后仍在;下一轮请求前会被翻译成一句人话交给模型。
快车道:默认零工具、一轮直出
此前交互模式完整复用了工作模式的系统提示词,而那套纪律是为「多轮工具循环 + 长程交付」写的——结果用户等来的是一串和界面无关的 todo_write / load_skill / list_files / mermaid 导图。本版把它改成快车道:
- 提示词分叉从「交付格式」改为「行为纪律」:默认一次回答直接给界面、不调用任何工具,工具是破例(一轮最多 1~2 次且优先只读);
- 系统提示词 36.7k → 22.8k 字符(其中行为纪律段 15.6k → 1.7k),首答 TTFT 与输入 token 同步下降;
- 默认思考强度由「均衡(High)」改为「快速(Low)」;工具面与沙箱能力一个没少(工具定义与工作模式逐字相同)。
健壮性:本版花了大量力气在真机缺陷上
- 拖动绑定控件实时刷新(真机缺陷:拖
Slider手柄会动,但引用该变量的文字 / 指标卡 / 图表完全不刷新)。根因是三件事叠加:元素 key 生成漏了单元素属性(真机 19 个节点里 7 个 key 为空)、界面刷新不能靠"换ForEach键 ⇒ 重建该项"、以及Slider自身必须豁免指纹否则拖动会丢手势。 - 图表渲染三处修正:共同根因是 ArkUI 的
Path.commands以物理像素 px 为单位,而组件宽高与strokeWidth用 vp。折线图不再过小、饼图不再被裁成半圆(改实心扇形)、径向图比例回归正常。 - 活动折叠栏:正文开始输出后,思考与全部工具调用自动收成一条「✓ 已完成 · 思考 ×N · M 个工具 · 12.4s」;按回合合并(不再出现四条「已完成」叠在一起);每轮思考默认收起;手动停止的回合显示「已停止」而不是「已完成」。
- 顺带修掉三个既有缺陷:聊天模式下不含界面的回答正文一个字都不显示;界面绑定值不落盘(滚动即丢);「重新回答」在交互模式下不走 Agent Loop,且会话标题 / 复制为纯文本 / 导出 Word 会把界面源码原样带出去。
🛠 工作模式与全局改动
- 启动落点固定为交互模式:打开应用的第一屏就是"能操作的界面",不再恢复上次偶然停在的智能体。
- 空态大标题换成模式切换胶囊(对齐豆包首页的「对话 / 工作」大按钮):点另一段即换挡,点击即落选中态、深色滑块瞬移不再闪在旧档位。
- 侧边栏「聊天引擎」分组默认折叠:抽屉打开只露出标题行,把默认视野留给 Agent 模式与历史对话。
- 联网搜索:默认走服务端,本机工具降级为兜底。原先本地工具叫
search_web,与服务端内置的web_search只差一个词序、极易混淆;现改名local_web_search,并明确"未开启服务端搜索时它才是唯一通道"(旧名保留为分发别名,历史调用仍可执行)。 - 思考强度分档:交互模式为 均衡(High) / 快速(Low) / 关闭(Off);工作模式仍为 极高(Max) / 均衡(High) / 快速(Low)。两档各自持久化、互不影响,「关闭」不会影响其它模式的深度思考。
- 按钮视觉统一:
primary/secondary/destructive/tertiary四套语义色,深色模式下补描边(原来看不见按钮),单个按钮不再拉满整行。
🔧 工程与验证
- 新增第三层回归护栏
tools/build-check.ps1:调用 DevEco 自带的 hvigor 做真实 ArkTS 编译。node 侧 harness 只覆盖common/**与service/**的纯 TS,测不出 ArkUI 的编译期规则(@Builder体内不能声明局部变量、自定义组件属性名不能与内置属性同名、@Prop的 null 需要显式联合类型)——这一层本次拦下了 8 个编译错误。 - 纯逻辑单测 376 → 507 项,全绿。其中专门为交互模式加了多组断言守住边界,例如"快车道底座不复用工作模式的行为纪律"——谁把工作模式的段落拼回交互模式,测试立刻变红。
- README 重构为门面页 +
docs/深水区,并建立本 更新记录。
📦 安装
本 Release 提供预编译的未签名 HAP。
您也可以从源码构建。
环境要求
- DevEco Studio 6.0.1 或兼容版本
- HarmonyOS SDK API 24(6.1.1)
- HarmonyOS 手机真机
构建
hvigorw --mode module -p product=default -p module=entry@default -p buildMode=debug assembleHap或用 DevEco Studio 打开仓库根目录 → 配置签名 → 运行 entry 模块。
首次使用:打开设置 → 新建 API 配置 → 填写接入方式(OpenAI Completions / OpenAI Responses / Anthropic Messages)、Base URL、API Key、模型名 → 回到对话。
常用兼容地址:
- DeepSeek Responses:
https://api.deepseek.com - 火山方舟 Responses:
https://ark.cn-beijing.volces.com/api/v3 - Anthropic Messages:
https://api.anthropic.com/v1
⚠️ 已知限制
- 需要 HarmonyOS 真机;模拟器上 Preview Kit / Share Kit / CoreSpeechKit 等系统能力行为不一致
- 交互模式依赖模型按
guncat-ui lang语法产出界面;模型若写了组件清单以外的名字会被丢弃并给出诊断,可让它重新生成一版 - 联网搜索、图片理解等能力取决于你所配置的模型服务是否支持
- 朗读可用音色及是否需要下载由设备与系统版本决定
🔒 隐私
运行时只使用应用沙箱(filesDir/workspaces/)与系统安全组件完成文件读写,未新增任何存储权限;聊天请求与附件只发送到用户自行配置的模型服务。
完整更新记录见 CHANGELOG.md 的「6.3.0 更新」一节;架构细节见 工作模式架构 与 交互模式架构。
有问题或建议欢迎提 Issue。
Version 6.2.0
Guncat Work Version 6.2.0
这是Guncat Work 鸿蒙版的首个release稳定版本,实现包括工具、技能、C端功能在内的完整全套Harness
鸿蒙掌上 Codex —— ArkTS / ArkUI 从零构建的原生 HarmonyOS AI 客户端,模块化 Agent Loop 内核 + 三协议流式对话 + 内置工具与技能库,完整对标 PC 端 Agent 工作台。
这是工作模式(Agent Loop)走向完整形态的一个版本:产物可核对、代码可执行、办公文档成套生成、技能库成体系、长任务更稳。
✨ 本版亮点
1. Codex 风格产物卡片
任务结束后,生成 / 改动的文件在对话流末尾以「产物」卡片汇总,默认展开;每个文件带行级 diff 缩略,默认折叠、可单独展开;任务结束自动滚到底部,无需手动下翻。
→ 长任务交付第一次做到「一眼看清改了什么」。
2. 工作区文件就地预览 + 一键分享
产物卡片、工作区弹层、右侧详情面板中的文件均可点击,通过 HarmonyOS Preview Kit 就地预览,或一键走系统分享面板分享原始文件——不暴露路径、不打包、不选格式。
Preview Kit 不支持的格式(如 .md)会直接拉起系统「打开方式」选择框,用已安装的应用打开。
3. run_js:设备本机的 JS 执行沙箱
基于 JSVM-API 的独立 JS 引擎沙箱,智能体可现场写代码做计算——数据清洗、正则提取、统计汇总、程序化生成结构化数据,产出直接写回工作区,再交给 write_docx / write_xlsx / write_pptx 成文。
沙箱不联网、不读写文件系统(文件由宿主显式预载与落盘),在后台线程执行并有超时保护。这是在无 shell 环境下补齐「执行代码」能力的关键一环。
4. Office 三件套 + 32 个技能
PPT / Word / Excel 全套办公技能正式上线,全部基于 JSON 中间层 + 确定性导出器,文档可无损读回、算子式编辑。
技能库扩展到 32 个(5 个主 Skill 路由 + 7 个格式分支),移植自四大主流 AI 工作平台并完成本项目工具适配:论文转换、法律检索、学术出版、内容写作、专利撰写、行业分析、营销策划、舆情追踪……
PPT 生成质量升级到 V3.1:默认篇幅 20 页以上,每页必须带装饰性 SVG / 纹理背景与内容配图,内置科技 / 古风 / 简约 / 杂志 / 商务 / 学术 / 路演等视觉风格。
5. 内置本地联网搜索
软件内置,无需手动开关,工作模式与聊天模式都能调用——联网能力不再受制于服务端联网开关。
6. 长任务更稳、更好排查
- 限流或网络抖动自动重试,不用重来;任务过长自动整理历史,重要信息不丢
- 工具调用加入超时、取消与参数校验,出错更快暴露
- 核心循环换成新的「驱动引擎」(状态机 + 计划器,默认启用),日志可看清每步决策;异常可一键回退旧循环
- 每次工具调用的耗时、接入协议、是否重试均有记录
- 子代理支持并行派发(全局并发上限 4),并默认获得独立产出目录,并行任务不再互相覆盖文件
- 支持外挂插件与技能,按需扩展能力
7. 其他修复与增强
- 修复 Anthropic 协议中偶发的传参错误与文本过长截断
- 新增后缀补全开关,便于非标准地址接入
- 对话历史改为文件存储(
filesDir/guncat_conversations.json),长历史不再受 Preferences 16MB 单值上限约束;首次启动自动迁移旧数据 - 修复删除 / 新建会话后侧边栏不实时刷新
- 修复工作模式下通过系统分享发来的文件不进沙箱工作区
📦 安装
本 Release 暂不提供预编译 HAP,请从源码构建。
环境要求
- DevEco Studio 6.0.1 或兼容版本
- HarmonyOS SDK API 24(6.1.1)
- HarmonyOS 手机真机
构建
hvigorw --mode module -p product=default -p module=entry@default -p buildMode=debug assembleHap或用 DevEco Studio 打开仓库根目录 → 配置签名 → 运行 entry 模块。
首次使用:打开设置 → 新建 API 配置 → 填写接入方式(OpenAI Completions / OpenAI Responses / Anthropic Messages)、Base URL、API Key、模型名 → 回到对话。
常用兼容地址:
- DeepSeek Responses:
https://api.deepseek.com - 火山方舟 Responses:
https://ark.cn-beijing.volces.com/api/v3 - Anthropic Messages:
https://api.anthropic.com/v1
✅ 验证
- 纯逻辑回归:
cd test/guncat-harness && node setup.mjs && node test-core.mjs - 服务层类型检查:
cd test/guncat-harness && node check-setup.mjs && npx tsc -p check/tsconfig.json - PPT / Word / Excel 三个离线验证环境:
test/pptx-harness、test/docx-harness、test/xlsx-harness - 真实 ArkTS 编译:
powershell -ExecutionPolicy Bypass -File tools/build-check.ps1(需本机 DevEco Studio)
⚠️ 已知限制
- 需要 HarmonyOS 真机;模拟器上 Preview Kit / Share Kit / CoreSpeechKit 等系统能力行为不一致
- 联网搜索、图片理解等能力取决于你所配置的模型服务是否支持
- 朗读可用音色及是否需要下载由设备与系统版本决定
- 交互模式(Intelligent UI)在 6.3.0 才引入,本版不含
🔒 隐私
运行时只使用应用沙箱(filesDir/workspaces/)与系统安全组件完成文件读写,未新增任何存储权限;聊天请求与附件只发送到用户自行配置的模型服务。
完整更新记录见 README.md「6.2.0 更新」。
有问题或建议欢迎提 Issue。



