Repository navigation
Releases: JIUSIS/shiyi-agent
Release list
拾忆 2.6.11
[2.6.11] - 2026-10-16
相对 2.6.10:这一版主要修「模型输出被截断」「经常网络连接失败」「发消息要等几秒才出思考链」三个体验问题,
并把群聊从「三线并行」改成真正的层级行动、把完整工具集交给群聊成员。
正式包命名自本版起统一为
shiyi-agent-<版本号>.apk(如shiyi-agent-v2.6.11.apk)。
一、修好「模型输出被截断」(这是本版重点)
之前每次请求都会带上 max_tokens: 8192,模型一写到 8k 就被上游掐断——这是软件自己设的上限,不是模型的问题。
- 默认不限制:不再发送
max_tokens,交给模型自己的最大输出;等待上限、自动续写轮数、工具轮数同样默认不限制。 - 可自己收紧:设置 → 上下文,四项都可以填数字(
0= 不限制),填多少就按多少发。 - 老配置自动迁移:升级后你原来的
8192 / 600 / 16会被自动改成「不限制」;你自己显式改过的值不会被覆盖。 - 续写只在服务商真的报截断、或续写确实没有新内容时收口,不再用固定轮数假装完成;无法继续时如实告知原因。
二、修好「经常网络连接失败」
- 断连自动重试:连接类瞬态错误此前只在第一轮重试,工具调用轮里断一次就整轮失败;现在每一轮都会自动重试(递增退避最多 2 次),失败提示会写明「第几轮、重试了几次」。
- 修掉更深的根因:按 UTF-16 码元截断会把 emoji 切成半个字符,导致文字引擎崩溃、请求体出现非法字节被对端直接断连。现在所有截断按码点安全处理,并在请求出口做兜底净化。
- 因此顺带修好了「消息列表偶发整体渲染失败」。
三、发消息不再等几秒才出思考链
- 活人感(LAAP 皮层)的数据此前是串行拉取,实测把「发出消息 → 出字」拖慢 3.3 秒;现在并行拉取且限时 0.9 秒,慢就直接跳过,绝不拖住请求。
- 群里同一批成员只让皮层跑一次,不再 N 倍排队。
- 请求前的另外两件独立小事(工作目录、历史摘要)也改成并行。
四、群聊:真正的层级行动
- 叫几个人就几条线程:去掉「最多 3 个 Agent」的限制;一批里的成员全部并行。
- 整批汇报完才轮到下一批:上级不会被下属的半成品提前拉起来;派活的人持续算「在飞」,直到它真正向上汇报。
- 负责人不再自己开干:有下属却自己把活干完,会被提醒一次去派活(提醒只进这一次请求,不会出现在聊天记录里)。
五、群聊:@ 到名字 ≠ 现在就启动
一条消息里出现的 @ 现在会区分「指派」和「引用」,不再把提到的人都拉起来:
- 条件/流程说明里的 @ 不启动:例如「@甲 接受审核任务,审核通过后再让 @乙 实现」→ 只启动甲,乙等真正被叫到时再动。
- 给某人看的文档里的 @ 不启动:例如只
@经理,后面整段是「建议拆两棒:棒1 … @码手A … 棒2 … @码手B」的需求文档 → 只启动经理。 - 动作对象位置不启动:「@甲 审核 @乙 的方案」→ 只启动甲。
- 真正的多人指派照旧(「请 @甲 和 @乙 一起做」两个都会动)。
六、群聊成员拿到完整工具集
群聊成员此前只有「读文件 / 写文件 / 终端」三个工具,现在与普通会话一致:联网搜索、网页抓取、技能、记忆、跨会话查阅、运行时诊断等都能用。
- 每个成员的工具调用与代码改动显示在它自己的气泡里,点开胶囊就是完整入参 + 完整输出(写入类工具显示等宽差分:路径、写入行数、内容行)。
- 调用日志:群聊顶栏终端图标可看本群全部工具调用,入参与输出完整不截断、可长按复制。
- 工具胶囊、调用日志、展开内容统一套用与普通会话一致的液态玻璃外观。
- 群聊汇报要求给实质内容(结论、产出路径、关键数据、下一步),避免烧一堆思考只回一句「收到」。
七、质量
- 全量测试 1072 项通过(新增群聊层级调度、@ 语义、并行性、UTF-16 安全、输出上限迁移等回归测试)。
- 真机覆盖安装验证通过,数据保留。
拾忆 2.6.10
[2.6.10] - 2026-10-16
本版包含 自 2.6.6 以来的全部更新(2.6.6 之后没有单独发布过版本,GitHub 上的上一个正式版就是 2.6.6)。
覆盖 DSH 升级到 0.2.0-rc.2 之后的整套适配、局域网/公网连接、发热与耗电治理,以及一批影响日常使用的修复。
一、DSH 新版适配(0.2.0-rc.2)
新版 DSH 的接口变化很大,这一版把拾忆对 DSH 的接入按新版协议重新对齐:
- 修好「DSH 在手机上起不来」:新版依赖树里的一个原生模块(koffi)在 Android 上加载即崩溃,现在会按官方声明自动对齐依赖树,不用手动修。
- 修好「临时中转注入后又被撤销」:DSH 恢复会话、写入附件时用到了 Android 不允许的硬链接,现在自动降级为普通写入,注入的模型选择不会再被弹掉。
- 修好「接口接不上」:工作区列表、子代理列表、Agent 预设等一批接口按新版真实契约重写;「权限预设」「技能」等入口恢复正常。
- 修好「提问答不了」:Agent 向你提问时,现在能正常提交答案(此前只有旧协议一条路,新版下必失败)。
二、局域网 / 公网连接 DSH
- 新增「局域网」连接模式:填电脑 IP + 端口即可连接(电脑端 DSH 需监听
0.0.0.0);「公网」模式支持完整 URL + Token。 - 地址、端口、Token 合成一条链接粘贴,不用再分三行填;局域网目标不可达时会明确提示,而不是一直转圈。
- 修好重启后连不上:会话凭证现在会安全保存,应用重启、Token 轮换后都能自动恢复(此前一重启就 401)。
- 修好「连上了但页面永远转圈 / 会话是空的」:游标语义按新版重写,工作区与会话列表能正常加载。
- 冷启动不再偷偷拉起手机本机的 DSH;切到局域网后会停掉无用的等待请求。
三、发热与耗电(重点)
对全仓每一个定时器做了审查,修掉多处「应用不可见 / 目标不可达时仍在轮询」的问题:
- 退到后台后不再发送任何请求(此前退后台仍 2Hz 拉列表,边充电边跑会把电池烤到 56°C 以上)。
- 只有真的在出字时才快轮询;空闲时自动降到 12 秒一拍;目标电脑关机或不可达时再放慢 5 倍。
- 真机实测:请求频率从约 1.15 次/秒 降到 0.26 次/秒,长时间使用的电池温度明显下降。
四、会话体验
- 长会话不再卡顿:进入会话只读取尾部窗口(不再把上千轮历史整段拉取解析),支持上翻分页加载更早的消息;上翻读历史时会暂停尾部刷新,不再把视线拽回底部。
- 修好「同一条回复显示两份」:回合结束后残留的流式气泡会正确清掉。
- 修好「长思考 / 长正文被提前截断」:续写不再丢前几轮、去掉硬编码超时、断流不再丢内容。
- 修好首启流程:权限没给完不会提前进主页;点「退出」立即生效。
- 修好 LAAP 认知皮层装不上 / 一直卡在准备界面的问题。
五、DSH 会话新增能力
- 附件真的能发出去了:此前附件只是把手机本地路径拼成文字发给电脑,对方根本看不到;现在图片直接随消息发送,文件先上传再引用。
- 斜杠命令:输入
/弹出官方命令面板(如/compact、/permission),带参数的命令会自动补全前缀。 - @-引用:输入
@弹出工作区文件与会话候选,选中即插入。 - 后台任务:有任务运行时输入框上方显示「任务 N」,点开可看进度并直接结束。
- 工作区文件:在会话里直接浏览工作区目录、预览文本与图片。
- 消息反馈:助手消息下方可点 👍/👎,再点一次取消。
- 定时任务 / 插件管理:可查看、删除定时任务;插件页支持远端启停与镜像测速。
- 会话操作:支持分叉会话、置顶、取消归档;模型页支持「发现模型」刷新目录。
- 本机模式下可用「目标机终端」直接操作本机 DSH 的终端。
六、文件与目录
- 文件页在目标不支持浏览时给出明确提示,并提供「选择目录」让目标电脑弹出原生选择框(不再是一片空白或报错)。
- 新建工作区不再因为读不到默认目录而失败,可以手动选择。
拾忆 2.6.6
更新日志
详细开发修复记录保存在本地 docs/fix-log.md(仅本地维护,不随仓库发布),此处记录对外发布版本的变化。
[2.6.6] - 2026-09-11
相对 2.6.5:完成 DSH rc.2 协议升级,修复 DSH 本地手机临时路由未真正切换模型的问题,并将 LAAP 认知皮层正式接入拾忆。
修复
- 修复 DSH 本地使用手机临时路由时,provider 已注入但会话仍使用旧模型的问题。
- 会话级临时路由现在会确认
session.selectModel的结果;切换失败会清理临时配置并自动重试一次。 - 完成 DSH rc.2 的
session/list、session/follow、remote.mux、Cookie 和提问回答协议适配。 - 修复 DSH 本地服务启动竞态,避免首轮探活早于认证 Cookie 换取。
- 修复 Android release APK 中 Flutter 引擎发布产物异常导致的启动闪退,并保持 arm64 包体处于正常体积。
- 修复群聊 Agent 绕过 LAAP 认知注入的问题;每个成员现在都会携带独立的 PSI 认知快照,并在回复后完成回合反思。
- 修复本机 DSH 临时中转只收到
session.selectModel成功回执、却未确认会话真实模型的问题;本机现在会回读并校验 provider/model,不一致时自动重选一次。 - 修复 DSH 新版会话历史读取为空:按官方流程先从
session/follow获取当前游标,再读取完整session/page历史。 - 修复 DSH 启动期间缓存会话只显示旧消息的问题;服务恢复后会自动补读权威历史,助手正文、思考和用户消息不再错序或互相覆盖。
新增
- 活人感:接入 LAAP(Living Agent Application Protocol)意识工程,将 Zero-LLM 认知架构作为拾忆的本地认知皮层。
- 官方认知流程:接入
bootstrap、cognitive_state、recall_memory和reflect,让认知状态、相关记忆与回合反思进入动态对话上下文。 - 独立开关:活人感默认关闭,用户可在 Agent 引擎页单独启用;LAAP 未就绪时不会注入伪造状态。
验证
- DSH、LAAP 定向测试通过;DSH 相关测试 148 项全绿。
- 群聊认知注入回归测试通过。
- Android arm64 release APK 构建成功,版本号为
2.6.6 (31)。 - 发布包使用标准 Flutter release 产物,APK 大小以本次正式构建结果为准。
v2.6.5
2.6.5
相对 2.6.4:修复拾忆普通会话在思考型模型下偶发 LITELLM_ERROR 400,以及输入法收起后输入框抽屉悬空的问题。
修复
- 修复拾忆历史里混入「无思考内容的助手消息」时,DeepSeek thinking 网关拒绝请求的问题:请求组包时统一给缺失 reasoning_content 的 assistant 补空字段。
- 修复输入框上方抽屉(模型 / 思考强度 / 权限预设 / 缓存统计)在键盘收起后仍停留在旧位置的问题:抽屉会跟随按钮最新位置,并监听键盘高度变化在收起过程中持续重定位。
验证
- flutter analyze 无新增 error;flutter test 全量 904 项全绿。
- flutter build apk --release --target-platform android-arm64 成功,仅 arm64-v8a。
- 真机 adb install -r 覆盖安装 Success,不卸载、不清数据。
拾忆 2.6.4
拾忆 ShiYi 2.6.4
- 群聊成员接入真实工作目录与 file_read / file_write / run_terminal 工具,任务可落成真实文件。
- 群聊按成员独立压缩上下文,历史按点名 / 上下级 / 直属下属过滤,并回传 reasoning_content(修复 LITELLM_ERROR 400)。
- 群聊输入区对齐普通会话:统一 API 配置、附件、项目文件夹、整体思考开关与强度、成员独立上下文压缩。
- 群聊运行中按返回不再打断输出,后台跑完并落库;思考过程展开后自动追最新。
- 子代理 mini 会话上滑看历史不被流式拽回。
- 修复长按输入框弹跳与复制菜单英文;拾忆引擎不再误弹 DSH 未安装。
- 接入 zh/en 本地化,长按菜单中文化。
详细见 CHANGELOG.md 与 docs/fix-log.md #366-#373。
拾忆 2.6.3
相对 v2.6.2:拾忆群聊升级为可长期推进的并行公司结构;流式输出和子代理 UI 更稳;群聊项目文件夹接入真实目录;缓存命中率与前端错误可以逐轮定位。
新增
- 群聊并行协作:多个成员可同批生成,最多 3 个 Agent 并行;停止一次会取消当前所有活跃请求。
- 群聊项目文件夹:可选既有项目,也支持新建项目并选择真实磁盘目录;项目可左滑删除,删除项目不删除真实文件。
- 群聊导入容错:思维导图支持无
/的角色名、嵌套角色、单行职责、多目标对接、箭头语义、常见分组别名、Tab/空格混用、空行、冒号与数字开头职责。 - 群聊最小结构模板:可一键填入或复制给 Agent。
- 缓存命中指纹:日志新增本轮冻头 SHA-256,逐轮定位冻头漂移或提供方缓存策略差异。
- 前端操作步骤日志:记录 UI 路由、操作、步骤和失败堆栈,排错不再只有裸堆栈。
优化
- 正常推进不受固定轮次限制;只有明确打回才计数,同一交接最多打回 3 次。
- 群聊失败草稿保留并显示原因;生成中上滑看历史不会被强行拉回。
- 流式 token 平滑追赶,换行高度和消息列表插入有平滑动画;子代理详情改为贴底跟随并去掉增高动画。
- 工具执行时显示「正在使用工具」;用户气泡先出现,模型消息后出现。
- 子代理 mini 会话展开/收起、边距和功能卡 UI 统一。
修复
- 修复群聊数据库迁移导致的启动“初始化失败”。
- 修复群聊静默停止、被点名后仍停止、长职位丢角色和汇报关系压给主编的问题。
- 修复 DSH 跨工作区拖卡卡死;三端只保留本工作区排序。
- 修复子代理重进丢失、流式乱跳和加载图标不统一的问题。
验证
- Flutter 测试 902 项全绿;Android 正式包仅构建 arm64-v8a。
- 覆盖安装验证保留数据;冷启动进程存活且无崩溃日志。
拾忆 2.6.2
[2.6.2] - 2026-08-30
相对 2.6.1:子代理可以点开看 mini 会话;缓存和子代理收成输入框上方的小按钮;项目目录改成文件夹图标。修掉点子代理红屏、返回红屏、连点叠栏,以及主 agent 等待时子代理状态被清掉的问题。
新增
- 子代理 mini 会话:点击输入框上方的子代理按钮,从按钮上沿打开 mini 会话,查看子代理实时状态、思考和工具过程。拾忆与 DSH 共用。
- 多子代理左右滑:同时有多个子代理时,小窗里左右滑动查看,不用先点进列表再进详情。
- 输入区悬浮芯片:缓存命中率和子代理状态改成输入框上方的小按钮;项目目录入口收到权限盾牌旁边,只留文件夹图标。
优化
- 小窗尺寸:mini 会话收成约 280×248,不再占半屏。
- 芯片对齐:缓存和子代理共用同一套 32px 高、13 号字芯片;缓存永远钉在最左边,子代理出现时不再把它挤走。
- 子代理保留到本轮结束:主 agent 停下来等子代理返回时,手机端状态不再消失;拾忆本轮快照留到下一条用户消息。
修复
- 修复点击子代理闪红、整页变红:小窗不再把动画控制器或 GlobalKey 挂到已销毁的状态条上。
- 修复点开子代理后连续返回到主页仍红屏:页面卸载时立刻收掉小窗,不再听已销毁的 animation。
- 修复连点子代理会往上叠出多行缓存/子代理栏:小窗改走
OverlayPortal,同一控制器只会有一个浮层。 - 修复主 agent 已停止但电脑上子代理还在跑时,手机端把子代理状态清掉的问题。
覆盖安装即可升级,不会清数据。
拾忆 2.6.1
[2.6.1] - 2026-08-29
相对 2.6.0:远端 DSH 可以安全使用手机上的拾忆 API,也能直接管理目标电脑自己的模型 API;本机与局域网统一为同一套中转链路,公网改为直接注入所选模型;补强会话中断、错误解释、小屏交互、抽屉返回键,以及新建会话 Agent 预设与主页底栏。
新增
- 拾忆 API 安全 Relay:本机 / 局域网 DSH 使用手机 API 时,请求仍由手机转发到真实上游。目标 DSH 只保存 Relay 地址、独立令牌和模型目录,不接收拾忆真实 Base URL 或 API Key;多台手机使用不同 provider 和凭据槽,互不覆盖。
- 远端 DSH API 完整管理:模型数据页可新增、编辑、删除目标 DSH 自有 API,支持 Chat Completions / Responses / Claude 协议选择、获取模型目录、搜索多选、手动补模型和最小请求测试连接。
- LLM 错误代码说明:补充常见 HTTP / SSE / 协议错误的中文含义和处理建议,400 与无状态码中断分开识别,不再把所有失败混成同一种重试。
- 会话权限预设按钮:DSH 输入框新增权限预设(Read Only / Workspace Write / Full access),切换对当前会话实时生效;权限按钮只留盾牌图标。
- 公网 DSH 直接注入拾忆 API:公网拨不进手机时,所选拾忆配置直接写入目标 DSH(可手动删除),插件页等管理入口跟随当前远端连接。
- 工作区下拉刷新:DSH 工作区列表支持下拉刷新,无需等后台定时器。
- 新建 DSH 会话选择 Agent 预设:创建会话前先选标准 / PTC / 极简 / 创造(或自定义),写入
session.create(agentPreset:)。
优化
- 本机 = 局域网统一:本机 DSH 与局域网 DSH 共用同一套「手机临时中转」租约链路,删除设置里的「API 来源」菜单;本机保留页面缓存(cache-first 秒开),局域网 / 公网强制实时加载。
- 远端配置回读合并:同时合并
settings.describe、llm.providers和llm.models,卡片保留名称、协议、Base URL、凭据状态和完整模型目录,不再把每个模型误拆成一份配置。 - 配置入口重新分工:模型数据页成为日常 API 管理入口;原“凭据与配置”改为“DSH 高级诊断”,原始命名空间默认折叠,仅供排错。
- 模型数据页内置预设与抽屉去重:内置 deepseek 预设正常显示且可清除,局域网模型抽屉不再出现
vision-toolkit-*重复镜像分组。 - 移动端自适应:小屏字体、输入区、弹窗和键盘安全区进一步收紧;点击输入框外释放光标,底部菜单不再被输入法顶成灰色长条。
- 模型按钮定宽跑马灯:输入区模型名按
mimo-2.5的宽度居中显示,超出部分跑马灯滚动。 - 运行中工具栏:会话生成时输入区上方按钮保持可见,思考开关不再置灰。
- 预设选项卡片:按 Apple 列表规范(标题 17 / 说明 13 / 上下内边距 12),文字不再顶格顶满。
- 主页底栏留白:展开会话后最后一张不再被底部菜单挡住;输入法弹起时不再把那段 58px 空白一起顶起来。
- 子代理按任务调度:移除固定数量上限,由拾忆按任务复杂度决定并行子代理数量;DSH 插话继续走当前会话,不再误显示额外子代理。
- 远端页面实时加载:局域网 / 公网页面以目标 DSH 实时数据为准,不缓存手机本地页面,也不回退读取本机 DSH 文件。
修复
- 修复局域网 / 公网切换 API 来源失败、Relay provider 尚未加载就立即选模导致切换失败的问题。
- 修复目标 DSH 模型页只取 provider 目录、忽略 settings 完整字段,导致编辑时 Base URL 或凭据引用丢失的问题。
- 修复 DSH 运行中插话被当成停止、旧事件迟到污染新回合,以及手机界面误跳出子代理状态的问题。
- 修复小屏设备部分标题、输入框和操作按钮挤压或截断的问题。
- 修复本机 DSH 冷启动直接进入会话时首条消息失败:当前会话没有中转缓存时,发送前自动按 scope + 会话恢复所选拾忆配置并重新建立租约,不再打在已删除的旧 provider 上。
- 修复模型 / 权限 / 思考强度抽屉拉开时按返回键直接退页:抽屉改走导航栈内的透明路由,返回键先收抽屉(模型抽屉二级菜单先回一级)。
- 修复主页搜索拉起键盘后,底部 Tab 留白叠在输入法上方的问题。
覆盖安装即可升级,不会清数据。
拾忆 2.6.0
[2.6.0] - 2026-08-27
相对 2.5.10:补齐 DSH 局域网/公网连接与远端文件浏览,增加全链路运行审计;本轮重点让停止和插话真正立即生效。
新增
- DSH 多连接模式:支持本机、局域网和公网远程 DSH,API、WebSocket、文件页均跟随当前连接;远程连接不拉起或停止手机本机 DSH。
- 全链路运行审计:日志页记录 App、LLM 三协议、缓存、DSH RPC、工具、终端、文件、会话、LAAP 和异常;AI 可用
inspect_runtime自查,敏感字段自动脱敏。 - 远端文件浏览:文件页使用当前 DSH 的官方
host.*接口,扫描可访问盘符,菜单只保留盘符和工作目录。 - 后台运行基础:Android 前台服务按实际运行会话同步,降低切后台后任务被系统回收的概率。
优化
- 真正的即时停止:停止时主动关闭当前 HTTP/SSE 连接,不再等待下一枚 token;Responses、Chat Completions、Claude 三条协议共用取消链路。
- 即时插话:拾忆引导发送等待旧回合真实退出后立刻启动新回合;DSH 运行中允许直接发送,并过滤旧回合迟到事件。
- 工具级中断:子代理的 LLM 请求和
run_terminal子进程纳入会话取消范围,长任务可以跟随停止按钮收口。 - 模型配置稳定绑定:会话按 API profile ID 绑定,避免同名配置或改名后串模型;拾忆与 DSH 注入仍保持协议隔离。
修复
- 修复 DSH 局域网/远程切换后工作区、文件页使用旧主机或旧路径的问题。
- 修复远程 Host/端口扫描误把空隔离视图当成连接成功的问题。
- 修复工作区左滑打开远端目录错误调用
host.openPath导致 403 的问题,改用应用内远端文件页。
覆盖安装即可升级,不会清数据。
拾忆 2.5.10
相对 2.5.8:含 2.5.9 主页共享拖拽与 DSH 工作区排序;本版补上 OpenAI Responses,冻头/动尾稳住缓存,活人感改接本机 LAAP 皮层。
2.5.10 新增
- 第三条协议 Responses:设置页 Chat Completions / Claude 之外增加 OpenAI Responses。冻头走
instructions,其余走input,默认store: false。 - LAAP 认知皮层:引擎页按 DSH 同款方式本机部署
laap-MAX(Android Alpine Python / Windows 本机 Python,端口 11546)。只给活人感供内心状态,不是第三套聊天引擎。 - 活人感开关搬到引擎页:对话设置里不再放活人感。打开且皮层就绪才注入;皮层挂了就不注入,没有本地关键字替身。
2.5.10 优化
- 冻头/动尾稳缓存:Chat Completions 冻头第一条 system、动尾放历史之后;Claude 冻头 system 与最后一个 tool 打
cache_control。 - 压缩与工具轮 cache-safe:压缩与主请求同一冻头和 tools;长会话旧工具轮原地截断;计划模式不换 tools 表。
- 75% 任务摘要改走历史归档:不再插在冻头和历史中间挡前缀。
- 大工具输出 spill:超长结果落到工作目录
.shiyi/tool-outputs/;只读tool_calls主循环可并行。 - 状态栏本轮缓存:会话页显示本轮命中 / 未缓存。
2.5.10 修复
- Responses 发图 HTTP 502:图片改为
{type:input_image, image_url:"..."}字符串。 - 小米小窗空白卡死:HyperOS 自由窗口 MediaQuery 钳制;Activity 声明
resizeableActivity。 - 活人感官方接法:去掉提示词里的「本机皮层已接通」,按
psi_hermes_adapter.py注入 PSI preamble。
含 2.5.9
- 共享拖拽组件:左滑、交错展开、分组头、飞行层从拾忆主页抽出,DSH 工作区页复用。
- DSH 工作区会话排序:按
workspace.sessionIds显示并insertSessionBefore持久化;可跨工作区移入。 - 拖拽滚动重测 / 跨项目插入位置:另一指滑动会重测格子;占位跟手指走,不再钉在第一格。
- DSH 启动自愈 overlay:空的
cordis.patch.yml写成[];搬家插件只写 home 层。
覆盖安装即可升级,不会清数据。