Skip to content

Releases

Version 7.2.0

Choose a tag to compare

@zhubowen-bot zhubowen-bot released this 05 Nov 16:02

发布说明

发布日期: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 时直接拉起,未安装时回退到官方公开链接,避免只弹出「链接无法打开」。应用声明了 apptest scheme 查询能力。
  • 工具目录:设置「系统」分组新增「工具」,进入只读目录页,按阅读与检索、写入与编辑、计算与执行、文档产出、联网与上下文、任务与协作、技能七组展示全部 47 项工具,每项只保留名称与一句用途说明。页首用锁定的开关组件展示「工具自动管理」,只作状态说明,不引入设置项或运行时逻辑;目录使用静态快照,打开页面不构造工具定义、不注册监听、不发起异步任务。
  • 侧边栏新建对话图标:抽屉侧栏的「新建对话」保留品牌浅蓝底胶囊,文字与图标同用品牌色;不再用文字 +,改用系统 plus SymbolGlyph(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-check 68 项通过:三协议归一化、峰谷边界与节假日、北京时间归日、OpenCode 字段、日聚合 / 400 天裁剪 / CSV、缺失 usage 降级、原子落盘与余额解析。
  • render-check 338 项通过:新增用量页(汇总 / 热力图 / 服务商卡 / 预算 / 页脚)与「本轮费用 / 本轮 tokens」统计卡断言。
  • ipc-check 534 项通过:新增 5 个 usage 通道,并验证真实 API 响应逐请求入账与当日明细。
  • npm run typecheck:node / typecheck:web 通过;npm run dist:setup 重新打包。

安卓版

  • npm run typecheck(node / web / mobile)通过。
  • 本轮新增回归覆盖:用量 smoke 22 / 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

Choose a tag to compare

@zhubowen-bot zhubowen-bot released this 01 Nov 09:37

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 signature 400。
  • OpenAI / DeepSeek Responses:保存 response.output_item.done 里的 reasoning item,下一轮原样作为 reasoning input 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-smoke 167 项、ipc-check 529 项、render-check 318 项通过。
  • 用本机 Microsoft Word 实测 docx_render:含封面/目录/行内公式/显示公式/矩阵/中文的文档成功转 PDF 并渲染 3 页 PNG。

安卓版

  • typecheck(node / web / mobile)通过;run-smoke 190 项、ipc-check 546 项、render-check 317 项通过。

鸿蒙版

  • 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

Choose a tag to compare

@zhubowen-bot zhubowen-bot released this 31 Oct 05:37
17f71af

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

Choose a tag to compare

@zhubowen-bot zhubowen-bot released this 28 Oct 10:14

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/2 dup2 到真实文件并以 TextIOWrapper 包装,print、buffer.write、fileno() 与 os.write均落入同一份输出。
  • 解释器安装目录可写:sys.prefix 下的文件对此后每次调用、每个会话生效,写入即构成跨会话代码注入。现以审计钩子拦截写操作并抛出 PermissionError,读取与工作区写入不受影响。
  • multiprocessing spawn 静默失败:嵌入式解释器没有可重新执行的 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

Choose a tag to compare

@zhubowen-bot zhubowen-bot released this 11 Oct 08:13

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 --cached 398 个文件(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 段的顺序断言、
    "职责段不再复述语法 / 丰富度 / 真实数据"的长回来守卫。
  • 服务层类型检查 tsc exit 0;DevEco 真实编译 assembleHap BUILD SUCCESSFUL(CompileArkTS 0 error)。
  • 发布前重跑:单测 521 全绿、tsc exit 0、BUILD SUCCESSFUL、check-ui-copy 50 可复制 / 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

Choose a tag to compare

@zhubowen-bot zhubowen-bot released this 10 Oct 11:26

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 会把界面源码原样带出去。

🛠 工作模式与全局改动

工作模式长程任务交付 run_js 设备内 JS 执行沙箱

  • 启动落点固定为交互模式:打开应用的第一屏就是"能操作的界面",不再恢复上次偶然停在的智能体。
  • 空态大标题换成模式切换胶囊(对齐豆包首页的「对话 / 工作」大按钮):点另一段即换挡,点击即落选中态、深色滑块瞬移不再闪在旧档位。
  • 侧边栏「聊天引擎」分组默认折叠:抽屉打开只露出标题行,把默认视野留给 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

Choose a tag to compare

@zhubowen-bot zhubowen-bot released this 10 Oct 10:37

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。