Selaa lähdekoodia

移除敏感商业文档(定价/竞品/商业化/计划),改仅本地保留

Evan 3 päivää sitten
vanhempi
sitoutus
2343396e25

+ 10 - 0
.gitignore

@@ -33,3 +33,13 @@ oh_modules/
 # ---------- env / secrets ----------
 .env
 .env.local
+
+# 敏感商业文档 - 仅本地保留,不纳入版本控制
+dsh-harmony/PRICING.zh.md
+dsh-harmony/COMMERCIALIZATION-PLAN.zh.md
+dsh-harmony/COMPETITIVE-RESEARCH.zh.md
+dsh-harmony/DEVELOPMENT-PLAN.zh.md
+dsh-harmony/SCHEDULE-AND-DECISIONS.zh.md
+dsh-harmony/HANDOVER.md
+dsh-desktop/PRODUCT-PLAN.zh.md
+assets/store/monetization-design.zh.md

+ 0 - 250
assets/store/monetization-design.zh.md

@@ -1,250 +0,0 @@
-# DoTouchAI 商业化设计(充值 + 积分算力模式)
-
-> 版本 v2.0 · 2026-08-24 · 命名统一 DoTouchAI
-> 前提:上架版 = 你方云端托管基于开源 DeepSeek Harness(MIT)自建的服务端,
-> 聚合多家模型供应商 API;用户无需自备电脑/key,注册即用、按用量付费。
-> 与 HANDOVER D7 对齐:本期只留支付接口占位,商业化在后续阶段落地。
-
----
-
-## 1. 商业模式总览
-
-```
-用户充值(人民币,走华为 IAP)
-   ↓ 按档位兑换 + 阶梯赠送
-积分余额(虚拟资产,App 内账本)
-   ↓ 按实际 token 用量扣减(不同模型不同费率)
-云端 DSH 服务 → API 网关 → 多供应商模型(境内已备案)
-```
-
-- **不卖订阅时长,卖算力**:用户为"用了多少"付费,心理门槛低,适合智能体这种
-  消耗波动大的场景(一次深度任务可能几十万 token)
-- **你赚的是差价**:用户积分单价 −(供应商 token 成本 + 华为分成 + 通道/运营成本)
-
-## 2. 积分与定价体系
-
-### 2.1 基础换算
-
-| 项 | 建议值 | 说明 |
-| --- | --- | --- |
-| 充值换算 | 1 元 = 100 积分 | 整数好记,宣传口径统一 |
-| 最小扣费 | 0.1 积分 | 对应约千分之一元,避免零钱纠纷 |
-| 新用户体验金 | 500 积分(=5 元) | 注册即送,仅可消费不可退,有效期 30 天 |
-
-### 2.2 模型费率表(示例,需按供应商实时价校准)
-
-定价公式:**积分单价 = 供应商成本 ÷ 100 × 加价系数 ÷ (1 − 华为分成率)**
-
-示例(成本仅为演示口径,以官网实时价为准;加价系数 2.5、分成按 30% 估):
-
-| 模型档位 | 供应商成本(每百万 token) | 用户扣费(积分/千 token) | 定位 |
-| --- | --- | --- | --- |
-| 轻量模型 | 输入 ¥0.5 / 输出 ¥2 | 输入 0.02 / 输出 0.07 | 日常对话,走量 |
-| 旗舰模型 | 输入 ¥2 / 输出 ¥8 | 输入 0.07 / 输出 0.29 | 复杂任务,利润主力 |
-
-- 费率表做成**服务端配置**,不发版即可调价、上下架模型
-- 智能体场景建议按「任务预估冻结 → 完成结算 → 多退少补」扣费,防止余额透支到负数
-
-### 2.3 充值档位与促销
-
-| 档位 | 到账积分 | 赠送比例 | 说明 |
-| --- | --- | --- | --- |
-| ¥6 | 600 | 0% | 尝鲜档,降低首付门槛 |
-| ¥30 | 3,150 | 5% | |
-| ¥68 | 7,480 | 10% | **主推档**(界面默认选中) |
-| ¥128 | 14,720 | 15% | |
-| ¥328 | 39,360 | 20% | 重度用户/团队 |
-
-- **首充礼包**:首次任意档位额外 +20%(每个账号一次,防刷见 §3.4)
-- **会员订阅(阶段 3 再上)**:¥25/月 = 2,500 积分 + 当月消费 95 折 + 专属模型队列
-- ⚠️ 不要做:概率抽奖式返利、多级分销返利——涉赌/涉传销红线
-
-### 2.4 计费载体的两种形态(华为均允许)
-
-Q:不设积分,直接「充值人民币余额 → 按 token 扣余额」可以吗?
-A:**可以**。华为 IAP 管的是"购买行为"而非"载体名称"——无论叫积分还是余额,
-只要用钱购买、在应用内消耗于数字服务,都属虚拟商品,都必须走 IAP。
-
-| 维度 | 积分模式 | 余额模式 |
-| --- | --- | --- |
-| 合规 | 需公示兑换比例、有效期管理更复杂 | 更透明,投诉率更低 |
-| 运营 | 赠送/折扣灵活,用户价格感知弱 | 赠送余额同样可行,但让利感知过强 |
-| 财务 | 递延收入按积分消耗确认 | 按余额消耗确认,核算更简单 |
-| 用户理解 | 需换算 | 所见即所得,开发者用户更买账 |
-
-建议:面向开发者的产品优先**余额模式**;若计划做签到/任务/裂变运营再引入积分。
-也可混合:余额为主 + 活动发"代金券"。
-共同底线:不可提现、不可转账、单价与费率公示、未消费部分支持退款、可开发票。
-
-## 3. 技术架构要点
-
-### 3.1 API 网关
-多供应商 key 池 + 路由策略(成本优先/质量优先)+ 故障自动降级(A 供应商超时切 B)
-+ 按用户限流(防单用户打爆额度)。**境内上架版只接境内已备案模型**(见 §4)。
-
-### 3.2 计量与扣费
-- 流式响应实时统计 token(usage 字段为准,缺失时本地 tokenizer 估算兜底)
-- 幂等键 = 会话 ID + 请求序号,防止重试重复扣费
-- 预估冻结:任务开始时冻结预估积分,结束按实结算、差额返还
-
-### 3.3 积分账本
-- 双录入账本:每笔变动有流水(时间/类型/数量/关联订单),余额 = 流水聚合
-- 充值积分与赠送积分**分账管理**(赠送不可退、有效期更短)
-- 有效期:充值积分 12 个月、赠送积分 90 天;到期前 7 天 App 内提醒
-  (有效期规则必须在充值页明示,否则违反预付卡相关规定)
-
-### 3.4 支付与风控
-- 支付走**华为应用内支付(IAP)**:积分属虚拟商品,AppGallery 分发必须使用 IAP,
-  分成计入定价(见 §2.2 公式)
-- 风控:同设备多账号首充去重、异常用量熔断、供应商 key 定期轮换、
-  消费异常短信/推送确认
-
-## 4. 合规红线(境内上架,逐条落实)
-
-| # | 事项 | 要求 |
-| --- | --- | --- |
-| 1 | **生成式 AI 监管**(《生成式人工智能服务管理暂行办法》) | 面向公众提供服务:① 只接入**境内已备案**的基座模型 API(境外模型——OpenAI/Claude/Gemini 等——不得向境内公众提供);② 向属地网信部门完成生成式 AI 服务**登记/备案**(接已备案模型通常走登记流程,以属地要求为准);③ 用户**实名认证**;④ 内容安全审核 + 举报入口 + 处置机制 |
-| 2 | **华为 IAP** | 虚拟积分必须走应用内支付,不得引导第三方支付(否则下架);分成比例以华为当期政策为准 |
-| 3 | **预付资金** | 积分=单用途预付性质:明示有效期、提供余额查询、退款规则(未消费充值积分应支持退)、开具发票入口 |
-| 4 | **开源合规** | MIT:App「关于」页保留 DeepSeek Harness 版权声明 + 许可证全文;你的自有代码可闭源、可商用,不冲突 |
-| 5 | **PIPL/隐私** | 隐私政策需覆盖:账号信息、实名信息、支付信息、对话内容存储位置与期限;数据出境评估(若供应商在境外——境内上架版应避免) |
-| 6 | **经营资质** | 经营性互联网信息服务需 ICP 许可证;如涉及在线数据处理与交易处理业务可能需 EDI 证;AppGallery 对应类目会校验 |
-| 7 | **用户协议** | 服务协议 + 充值协议 + 未成年人保护条款(未成年人充值限制与退款通道) |
-
-## 5. 分阶段落地路线
-
-| 阶段 | 内容 | 依赖 |
-| --- | --- | --- |
-| **阶段 1**(上架首发) | 云端托管 DSH + 注册送 500 积分免费体验,**暂不收费**;跑通留存与成本模型 | 协议原生版/壳版云化;实名 + 内容审核先行 |
-| **阶段 2** | 上线充值 + 积分计费(§2 全表)+ IAP | 完成生成式 AI 登记、ICP 证、隐私政策 v2 |
-| **阶段 3** | 会员订阅、阶梯折扣运营活动、团队席位 | 阶段 2 数据(ARPU/留存/成本率)验证后 |
-
-## 6. 上架文案联动
-
-- 收费功能未上线前,上架文案**不要出现任何价格/充值描述**(功能真实性审核)
-- 阶段 2 上线后,应用介绍需补:「本应用含应用内购买项目」+ 价格区间说明(华为后台勾选)
-- 文案模板中"使用前提"段在云端版上线后删除,改为「注册即用,新用户赠 500 积分体验额度」
-
----
-
-## 7. DeepSeek 知识产权与商业化影响分析
-
-**结论:不影响商业化,但要做品牌隔离。** 分四层:
-
-| 层面 | 规则 | 影响 |
-| --- | --- | --- |
-| 代码著作权 | MIT 许可证明示允许商用、修改、销售、再分发 | ✅ 可商业化;唯一义务 = 保留版权声明 + 许可证全文(关于页 + 分发包内 LICENSE) |
-| 商标 | MIT **不授予商标权** | ⚠️ 唯一真正风险点:DeepSeek / DeepSeek Harness / 鲸鱼 Logo 不得用作你的品牌、图标、域名主体;仅可描述性使用("基于 DeepSeek Harness 开源项目构建") |
-| 专利 | MIT 无明示专利授权条款(Apache 2.0 才有) | 理论风险极低(官方以 MIT 发布即表明开放意图);公司化后可做一次 FTO(自由实施)检索求稳 |
-| 模型 / API 条款 | DSH 是运行时不是模型;模型走各供应商 API | ⚠️ 逐家确认平台服务条款是否允许聚合/中转形态,留档;若本地部署开源权重(如 DeepSeek-R1 为 MIT),遵守对应许可 |
-
-实操清单:
-
-- ✅ 关于页放 MIT 全文 + "Based on DeepSeek Harness (MIT), © DeepSeek"
-- ✅ 品牌 / 图标 / 域名不出现 DeepSeek 字样与鲸鱼图形;DSH 缩写尽量淡化
-- ✅ 文案统一"基于开源项目构建",禁用"DeepSeek 出品 / 官方 / 授权"
-- ✅ 逐家供应商确认 API 商用与中转条款并留档
-- ✅ 公司化后做商标检索(中国商标网)+ FTO 检索
-
-**关于"自定义模型供应商"功能的边界**:允许用户自配供应商 key 本身无合规问题
-(属于用户自带工具行为);但**你方代付/中转的那部分流量**才受 §4-1 监管约束——
-境内上架版你自己提供的模型必须是境内已备案模型,用户自配 key 的部分建议在协议中
-写明"用户自行确保其使用的模型服务符合所在地法律法规"。
-
----
-
-## 8. 华为对"开源项目商业化上架"的政策结论
-
-**允许。** AppGallery 审核指南不含任何"禁止基于开源项目"的条款;审核维度是
-功能真实性、安全、隐私、知识产权四项。商业化通道(付费下载 / IAP / 订阅 / 华为广告)
-对开源衍生应用一视同仁。前提三点:
-
-1. **许可证兼容**:MIT / Apache 2.0 商业友好,直接可用;GPL 类进应用商店有冲突
-   (商店分发附加条款与 GPL 的"不得施加进一步限制"冲突),本项目为 MIT,不涉及。
-2. **有增量价值,不做换皮包**:原封不动编译 + 挂广告会被判低质/重复应用。
-   本项目的鸿蒙原生适配、云端托管、计费体系即增量,文案中应突出。
-3. **品牌独立**:华为审核实务中"名称与已有应用相似且无商标授权证明"是高频驳回点
-   (开发者论坛大量案例)——应用名/图标必须与 DeepSeek 官方做隔离,
-   同时避免与其他在架应用撞名。
-
----
-
-## 9. 主体资质核查与准备清单(深圳大方无隅科技有限公司)
-
-已公开可查:公司主体存续(天眼查/水滴信用有记录)、官网 **www.kailin.com.cn**、
-dfwy.ltd 已有网站 ICP 备案;**ICP 经营许可证与 EDI 许可证均已持有(用户确认 2026-08-23)**。
-工商详情页(注册资本/经营范围)公开搜索不可见,以下为**需自查补齐项**,
-按"上架必备 / 收费前必备"分两档:
-
-### 9.1 上架必备(免费版)
-
-| # | 事项 | 状态/动作 |
-| --- | --- | --- |
-| 1 | 营业执照经营范围含"软件开发/互联网信息服务"类条目 | ⚠️ 自查执照,不符先做经营范围变更 |
-| 2 | 华为开发者**企业**实名认证(营业执照 + 对公账户打款验证) | 待办 |
-| 3 | **App 备案**(工信部移动互联网应用程序备案,经华为代提交) | 待办;无备案号不予上架 |
-| 4 | 软著(计算机软件著作权登记) | 建议办,部分类目强制;也利于维权 |
-| 5 | 隐私政策 + 用户协议 + 可公开访问 URL | 隐私政策初稿已备(privacy-policy.zh.md),托管至 dfwy.ltd |
-| 6 | 生成式 AI 服务**登记**(属地:深圳网信办) | ⚠️ 上架含 AI 生成功能即需要,提前咨询 |
-| 7 | 内容审核能力 + 举报通道 | 可接第三方文本审核 API,审核会实测举报入口 |
-
-### 9.2 收费前必备(阶段 2)
-
-| # | 事项 | 状态/动作 |
-| --- | --- | --- |
-| 8 | ~~增值电信业务经营许可证(ICP 证 / EDI)~~ | ✅ **已持有(ICP + EDI 双证齐全)**,收费资质障碍清除 |
-| 9 | 华为 IAP 企业结算协议与对公收款账户 | 待办 |
-| 10 | 电子发票开具能力(充值发票) | 税控/电子发票平台接入 |
-| 11 | 用户协议补充充值协议 + 未成年人充值条款 | 阶段 2 文本更新 |
-| 12 | 隐私政策 v2(补支付信息、实名信息条目) | 按 privacy-policy.zh.md 注释 2 更新 |
-
-### 9.3 换皮问题的明确结论
-
-**不需要换皮,且不应换皮**——隐瞒基于 DSH 的事实反而违反 MIT 署名义务。
-正确做法是"品牌独立":自有名称/图标/启动页 + 明确标注"基于 DeepSeek Harness(MIT)构建"。
-唯一注意点:壳版内嵌官方 Web UI 会带出 DeepSeek 品牌元素,上架审核截图可能因此被要求
-提供授权证明——上架版优先使用协议原生版自有 UI,或对壳版做品牌主题化。
-
-### 9.4 命名讨论记录(2026-08-23)
-
-- ❌ 否决「hormonyDSH」:hormony 为 harmony 误拼(故意错拼在商标审查中反而构成攀附故意的
-  证据);DSH 为 DeepSeek 项目缩写——一个名称同时关联华为与 DeepSeek 两家标识,
-  命中华为审核"名称相似无授权证明"的高频驳回画像;且用户搜索时必然误拼为 harmony,传播受损
-- ❌ 否决「DoTouchAI / AiDotouch / TouchAI」:touch 词根在 9/42 类撞 OTOUCH / 3DTOUCH /
-  DON'TTOUCH / 触点互动 DOTOUCH 在先标,加 AI 前后缀均不改变显著部分,死路
-- ❌ 否决「智价云」作 App 显示名:"价"字语义指向定价/报价,与 AI 智能体错位(且 9/42 类未注册下来)
-
-**✅ 定稿方案(2026-08-23)**:
-
-| 层级 | 取值 | 说明 |
-| --- | --- | --- |
-| 应用显示名 | **DoTouchAI**(备选:Agent鸿蒙端) | 显示名≠注册商标,审核看"撞名+违规词",不卡商标近似;先用跑通首发 |
-| 品牌/商标背书 | **智价云**(公司已初审公告的 35/38 类标) | 放关于页/开发者栏,法律资产 |
-| Logo | DoTouchAI C 版终稿(深蓝紫底 + 亮蓝主图形,milestone-6) | assets/logo/DoTouchAI_icon_C_*.{png,webp} |
-
-- ⚠️ 风险提示:① 显示名"DoTouchAI"仍可能与"触点互动 DOTOUCH"(9/42 类组合标)产生
-  投诉风险——首发可先跑,长期建议布局自有新词(隅方/驭隅/ReinsAI)或核验 51 条清单后替换;
-  ② 备选"Agent鸿蒙端"含华为"鸿蒙"商标,仅作最后兜底。
-
-**商标公开检索快照(2026-08-23 二次核验,数据源:水滴信用内嵌数据)**:
-
-⚠️ 首次检索"未检出"系聚合平台索引不全的误判,已更正:
-
-| 检索项 | 结果 | 含义 |
-| --- | --- | --- |
-| 公司名下商标总数 | **51 条**(水滴信用) | 公司已有成规模商标布局 |
-| 已验证样例 | 「智价云」第 35 类(90750824)+ 第 38 类(90750825),申请日 2026-03-24,状态初审公告 | 公司今年仍在持续申标 |
-| 9 类 / 42 类持有情况 | **待确认**:完整清单在登录墙后,需商标局官网核验或向商标代理索取 | 决定 App 名能否直接用已有标 |
-| "无隅"(文字) | 已被深圳前海蓝钻珠宝注册于第 14 类(珠宝) | 与 9/42 类不构成同类冲突,若公司无现成 9/42 类标,仍可新申请"无隅" |
-| "KAILIN" 近似标 | 第 9 类已有 ADVENTURE KAILIN、KAILIAN、KEALYN 等在先标 | "凯林/KAILIN"9 类需做近似比对 |
-| 其他"大方无隅"企业 | 武汉(教育)、东莞(商顾)、广州(网络科技) | 广州为同行,留意其商标动作 |
-
-企业工商信息(同源已验证):统一社会信用代码 91440300MA5DGCWX1L;注册资本 500 万元;
-成立 2016-07-13;行业:科技推广和应用服务业;许可证:电信业务经营许可证 +
-互联网药品信息服务资格证书。
-
-下一步:从商标代理或商标局官网导出 51 条完整清单 → 筛出 9/42 类可用标 →
-若有合适标直接用作 App 名(省 7-9 个月新申请周期);没有则用"无隅"9/42 类新申请。
-
-自助核验路径:中国商标网(sbj.cnipa.gov.cn)→ 商标网上查询 → 商标综合查询 →
-申请人名称填"深圳大方无隅科技有限公司";阿里云商标平台(tm.aliyun.com)可交叉验证。

+ 0 - 160
dsh-desktop/PRODUCT-PLAN.zh.md

@@ -1,160 +0,0 @@
-# DSH Desktop 产品方案 —— 本地桌面端 + 官方同步升级
-
-> 目标:不用手动开终端跑 `dsh web`,点图标即用;官方一发版就能跟上,永不停留在旧版。
-> 本方案基于对本机环境的实际调研(路径、版本、升级链路均已验证),不是泛泛设想。
-
----
-
-## 1. 现状诊断(本机已验证的事实)
-
-| 事实 | 值 |
-|---|---|
-| dsh 安装方式 | npm 全局,prefix = `~/.local`(升级**无需 sudo**) |
-| 安装位置 | `~/.local/lib/node_modules/@deepseek-ai/dsh`,bin 在 `~/.local/bin/dsh` |
-| 本机版本 | `0.1.0-rc.6` |
-| npm 官方最新 | `0.1.1-rc.2`(dist-tags:`latest` 与 `next` 同版本)→ **本机已落后,升级需求真实存在** |
-| Web 服务 | `dsh web` → `http://127.0.0.1:3080`,支持 `--host` / `--port`(`--port 0` 让 OS 分配空闲端口)/ `--trusted-host` |
-| 数据目录 | `~/.dsh`(profiles / sessions / settings.yaml / storages / web.log) |
-| 优雅停机 | dsh 内建 SIGINT/SIGTERM 有界停机(5 秒优雅退出),**可被安全托管** |
-| 痛点 1 | 无 daemon 模式:必须手动开终端、终端不能关 |
-| 痛点 2 | 升级全靠手记:要自己记得查 npm、跑 `npm i -g`、重启服务 |
-| 环境坑 | `~/.npm` 缓存里有 root 属主文件,npm 目前报 EPERM;用独立 `--cache` 目录可绕过(已验证),彻底修复需一次性 `sudo chown -R 501:20 ~/.npm` |
-
-### 关键架构事实(决定升级方案的正确性)
-
-- Web UI 的全部官方代码(`dsh-base`、`dsh-web-app` 等几十个 bundle)**都是 CLI 包 `@deepseek-ai/dsh` 的依赖**,profile(`~/.dsh/profiles/web`)只引用 bundle 名,实际解析到 CLI 安装目录的 node_modules。
-- 所以:**`npm install -g @deepseek-ai/dsh@latest` + 重启 `dsh web` = 整个 Web UI 立即变成官方最新版**。官方 UI 必须由 `dsh web` 服务注入 `window.__DSH_BOOT__` 才能跑,任何"把 UI 打包进桌面端"的做法都会造成分叉。
-- 用户自有插件(如本机的 `dsh-voice-client`,file: 本地依赖)在 profile 自己的 node_modules 里,不受 CLI 升级影响,但 rc 版本间 plugin API 可能不兼容 → 升级后必须做启动冒烟检查 + 可回滚。
-- 会话持久化在 `~/.dsh/sessions`(按工作区目录分片),服务重启不丢。
-
-### 社区已有方案对比(为什么还要自己做)
-
-| 方案 | 做法 | 与本需求的差距 |
-|---|---|---|
-| [LBurny/deepseek-harness-desktop](https://github.com/LBurny/deepseek-harness-desktop) | Tauri,安装包**内置** Node + dsh(Windows) | 升级 = 重下安装包,无法实时跟随官方 |
-| [sdkwork-ai/deepseek-harness-desktop](https://github.com/sdkwork-ai/deepseek-harness-desktop) | 跨平台安装包,随发版打包 dsh | 同上:官方发版到桌面端跟上有时差,且替换了你自己的 npm 安装 |
-| **本方案** | **薄壳监督者:不打包 dsh,托管你本机的 npm 安装,通过 npm 原地升级** | 官方发版 → 桌面端检测(小时级)→ 一键/自动升级 → 重启即最新 |
-
----
-
-## 2. 产品定位
-
-**"薄壳 + 管家"**:桌面端不复制、不分发、不 fork 任何官方代码。它只做三件事:
-
-1. **进程托管**(Supervisor):后台拉起/守护 `dsh web`,崩溃自动重启
-2. **窗口**(Shell):原生窗口加载 `http://127.0.0.1:<port>`
-3. **升级管家**(Updater):盯 npm 官方发版,升级你本机的 dsh 并无感重启
-
-一句话:**官方代码永远只有一个来源——npm;桌面端只是让它"开机即在、永不过期"的那层壳。**
-
----
-
-## 3. 产品形态(macOS)
-
-- **菜单栏常驻**(托盘图标,不占 Dock):图标即状态(运行中 / 已停止 / 有新版本小角标)
-- **主窗口**:加载本地 dsh Web UI,关窗 = 隐藏到托盘(服务继续跑),退出 = 优雅停机
-- **托盘菜单**:
-  - 打开 DSH(主窗口)
-  - 状态行:`运行中 · 0.1.1-rc.2 · 端口 3080`
-  - 检查更新 / `⬆ 新版 0.1.2 可用,点击升级`
-  - 重启服务 / 停止服务
-  - 诊断(日志 tail、会话目录、打开 ~/.dsh)
-  - 开机自启开关、退出
-- **通知**:新版本可用、升级完成并已重启、服务异常退出与自动恢复
-- **首启引导**:分阶段进度(检测 Node/dsh → 拉起服务 → 就绪开窗),首次使用即修复 `~/.npm` 权限问题
-
----
-
-## 4. 架构
-
-```
-┌────────────────────────────────────────────────┐
-│  DSH Desktop(Electron,约 200 行主进程代码)     │
-│                                                │
-│  ┌──────────┐  ┌────────────┐  ┌───────────┐  │
-│  │ Supervisor│  │  Window    │  │  Updater  │  │
-│  │ 进程托管  │  │ BrowserWindow│ │ 升级管家  │  │
-│  └────┬─────┘  └─────┬──────┘  └─────┬─────┘  │
-└───────┼──────────────┼───────────────┼────────┘
-        │ spawn/守护    │ load URL       │ npm view / npm i -g
-        ▼              ▼                ▼
-  dsh web --port 3080   http://127.0.0.1:3080   npm registry
-  (官方代码,npm 安装)  (官方 UI,随包升级)    (@deepseek-ai/dsh)
-```
-
-### Supervisor(进程托管)
-- `spawn('dsh', ['web', '--port', '3080'])`,detached=false,stdio 管道(日志 → 内存 ring buffer + `~/.dsh/web.log` 落盘)
-- **就绪探测**:轮询 `GET http://127.0.0.1:3080` 直至 2xx 再显示窗口(避免白屏);`--port 0` + 从 stdout 解析实际端口作为端口冲突时的降级方案
-- **端口冲突**:3080 被占时先探测是否已是健康的 dsh → 是则直接 attach 复用;否则换 `--port 0`
-- **崩溃自愈**:异常退出按指数退避自动重启(1s/5s/30s…),托盘与通知可见
-- **优雅停机**:退出时发 SIGTERM,利用 dsh 内建的 5 秒有界停机;超时才 SIGKILL
-- 单实例锁:二次启动只聚焦已有窗口
-
-### Window(窗口壳)
-- `BrowserWindow` 加载 `http://127.0.0.1:<port>`,启动期显示 splash(阶段进度)
-- 升级重启后窗口自动 reload;主题跟随系统
-- 快捷键:`Cmd+Shift+D` 唤起/隐藏(可配置)
-
-### Updater(升级管家,核心差异点)
-- **发现**:`npm view @deepseek-ai/dsh dist-tags --cache <独立缓存目录>`(独立 cache 规避 `~/.npm` 权限坑,已验证可用)。频率:启动时 + 每 6 小时(可配 1h/6h/24h)+ 手动"立即检查"。可选跟随 `latest` 或 `next` tag
-- **对比**:`dsh -V`(读本地真实版本)vs registry
-- **执行**:`npm install -g @deepseek-ai/dsh@<tag>`(prefix `~/.local`,无需 sudo,不动你的 profile 与插件)
-- **生效**:SIGTERM 优雅停机 → 重新 spawn → 就绪后窗口 reload → 托盘通知 `已升级到 0.1.2`
-- **冒烟与回滚**:升级后若服务 60 秒内起不来(rc 版本可能有破坏性变更或本地插件不兼容),自动 `npm i -g @deepseek-ai/dsh@<旧版本>` 回滚并通知
-- **策略**:默认"发现即提示、一键升级";可开"自动升级"(检查到新版直接升,全程通知可溯)
-- **版本史**:设置页保留最近 5 个版本号,随时手动切换(本质就是 `npm i -g` 指定版本)
-
----
-
-## 5. 技术选型
-
-| 维度 | Electron(推荐 MVP) | Tauri 2 |
-|---|---|---|
-| 语言 | 全 JS,与 dsh 生态一致 | 主进程 Rust,需 Rust 工具链 |
-| 体积/内存 | ~90MB / ~150MB | ~10MB / ~80MB |
-| 托盘/窗口/子进程 | 全部成熟 API,~200 行搞定 | 需在 Rust 侧写进程监督 |
-| 迭代速度 | 快(你本人可维护) | 慢 |
-
-**推荐:Electron 起步。** 壳极薄(三个模块),日后若嫌重,迁移 Tauri 的成本也很低——因为所有复杂度都在 dsh 侧,壳里没有业务逻辑。Tauri 版可作为二期优化。
-
----
-
-## 6. 路线图
-
-### P0 —— 能用(1~2 天)
-- [ ] Electron 工程 + 单实例 + 托盘 + 开机自启
-- [ ] Supervisor:拉起 `dsh web`、就绪探测、崩溃退避重启、优雅退出
-- [ ] 主窗口加载 `127.0.0.1:3080`,splash 引导,关窗隐藏
-- [ ] 首启环境体检:Node/dsh 存在性、`~/.npm` 权限检测与修复引导
-
-### P1 —— 永不过期(1~2 天)
-- [ ] Updater:版本轮询、新版本通知、一键升级 + 无感重启
-- [ ] 升级冒烟失败自动回滚;版本史手动切换
-- [ ] 独立 npm cache 目录(根治 EPERM)
-
-### P2 —— 好用(按需)
-- [ ] 诊断面板:实时日志(tail `~/.dsh/web.log`)、端口/PID、一键重启
-- [ ] 插件面板:转发 `dsh plugin --profile web add/remove/update`,流式输出
-- [ ] 多 Profile 切换:web / tui / headless 一键切换或并存
-- [ ] 会话快捷入口:按工作区列出 `~/.dsh/sessions` 最近会话,直达恢复
-- [ ] 手机远程访问(Cloudflare Quick Tunnel + token 门禁,参考社区实现)
-- [ ] Tauri 瘦身版 / 上游贡献 `dsh desktop` 子命令
-
----
-
-## 7. 风险与对策
-
-| 风险 | 对策 |
-|---|---|
-| rc 版本破坏性变更(官方明确 developer preview 会有) | 升级后启动冒烟 + 自动回滚;保守用户可锁版本不自动升 |
-| 本地插件(dsh-voice-client)与新版本 API 不兼容 | 同上冒烟回滚;日志面板能直接看到插件加载错误 |
-| 3080 端口冲突 | 先探测 attach 健康实例,否则 `--port 0` 动态端口 |
-| `~/.npm` root 属主文件(当前真实存在) | 首启检测 + 引导一次性 `sudo chown`;日常升级走独立 cache |
-| npm 网络失败 | 升级是幂等的 `npm i -g`,失败保留旧版运行中,仅提示重试 |
-| 用户终端里已有 `dsh web` 在跑 | 端口探测 attach,不重复拉起 |
-
-## 8. Non-goals(明确不做)
-
-- 不 fork / 不内嵌官方 UI 代码(保证"随官方升级"永远成立的前提)
-- 不做账号、云同步、多用户
-- 不替代 dsh 的 profile / 插件体系,只做转发与展示

+ 0 - 185
dsh-harmony/COMMERCIALIZATION-PLAN.zh.md

@@ -1,185 +0,0 @@
-# DoTouchAI 商业化方案
-
-> 版本:v1.0(2026-08-24)|前提:**不改动任何既定功能**——本地模式永久免费可用、自带 API Key(BYOK)通道永久保留、DSH 官方升级机制不变。商业化层为纯增量(自有云端 + 壳层 UI 新增页面)。
-> 进度基线:壳版 milestone-7(发布签名链完成、DoTouchAI 品牌定型、AGC 真机安装验证、API 20 模拟器端到端通过)。
-
----
-
-## 1. 三条红线(商业化与既定功能的关系)
-
-| 红线 | 含义 | 商业化层的做法 |
-|---|---|---|
-| 本地优先 | 不登录也能完整使用本地 Agent(对接自己的 Key/本地 Host) | 登录仅在启用「DoTouchAI 模型服务」「云同步」时要求 |
-| BYOK 共存 | 用户自带 Key 的官方直连通道不变 | 设置页并列两选项:DoTouchAI 模型服务(默认)/ 使用自己的 API Key |
-| 升级机制不变 | 不 fork 官方、npm 通道热替换运行时不受商业化影响 | 商业化全在自有云端 + 壳层 UI,dsh Host 配置仍由壳生成 |
-
-## 2. 账号体系(手机号身份 + 华为/苹果一键授权)
-
-### 2.1 身份模型
-
-- 内部 user_id 永久不变;手机号是身份的「别名」,可换绑——订阅、配额、云数据全部挂在 user_id 上,换手机号零迁移成本
-- 一个手机号 = 一个账号:无论通过哪个渠道登录(华为授权/苹果授权/短信直登),同手机号自动归并到同一账号
-
-### 2.2 三个登录渠道
-
-| 渠道 | 平台 | 流程 | 手机号来源 |
-|---|---|---|---|
-| 华为账号一键授权(主渠道) | HarmonyOS | Account Kit 一键授权 → 隐私协议 → 授权手机号预填确认 → 登录成功(2 步) | 华为账号绑定手机号(运营商级验证,免短信) |
-| Apple 一键授权 | iOS/macOS 客户端 | Sign in with Apple → 创建账户 → 引导绑定手机号(一次性)→ 短信验证 → 完成 | 苹果不提供手机号,首登后标准补绑 |
-| 手机号 + 短信验证码(兜底,全平台) | 所有端 | 输入手机号 → 图形/频控防护 → 短信验证码(60s 倒计时)→ 登录注册合一 | 用户输入 |
-
-标准交互细节:登录页默认展示一键授权大按钮(华为端)+「其他方式登录」折叠短信登录;隐私协议与用户协议勾选前置(未勾选时授权按钮置灰);验证码错误 5 次锁定 10 分钟;多设备登录态并列(设备管理列表可远程下线)。
-
-### 2.3 换绑手机号流程(标准账号安全流程)
-
-设置 → 账号与安全 → 更换手机号 → 验证当前手机号(短信或已登录态+生物识别)→ 输入新手机号 + 验证码 → 换绑生效(user_id 与所有权益不变)→ 旧手机号 30 天冷却期(防账号倒卖)。
-
-### 2.4 技术实现要点
-
-- HarmonyOS 端:Account Kit(华为账号一键登录,官方 Kit,符合「严格按官方要求开发」纪律)
-- 短信:后端接华为云短信/阿里云短信通道(签名与模板提前报备,见 §9)
-- 凭证体系:OAuth2 登录态(access/refresh token,Asset Store 加密存储)→ 按需换取模型网关短时效凭证(§4.3,15 分钟轮换,不落明文)
-
----
-
-## 3. 商业模式总览:三条收入线
-
-| 线 | 产品 | 定价锚点 | 角色 |
-|---|---|---|---|
-| 1. 模型订阅(主力) | 免费层 100 次/月 + 全模型会员 | 行业首个「零配置开箱即用」DSH 客户端 | 获客钩子 + 主收入 |
-| 2. 云同步存储 | 1GB 免费 + 分级订阅 | 对标 iCloud/华为云 | 粘性 + 稳定 ARPU |
-| 3. 团队/信创版(v2 预留) | 多席位、集中计费、私有部署 | 政企采购(竞调结论:鸿蒙 PC 信创卡位无对手) | 高客单未来线 |
-
-核心差异化(来自竞调):所有竞品(anywhere-labs 18.7k 星等)都要求用户自备 API Key 或订阅——DoTouchAI 是第一个「装上就能聊」的 DSH 客户端,免费层就是获客引擎。
-
----
-
-## 4. 模型接入与套餐(不用自带 Key 即可用)
-
-### 4.1 免费层(获客引擎)
-
-- 不接任何 Key、不装任何环境,登录即可对话——默认使用成本最低档的基础模型(DeepSeek V4 Flash 级)
-- **100 次对话/月**,防滥用三件套:单会话 token 上限、每日新会话上限(如 10 个/日)、设备+账号风控
-- 「一次对话」的定义:**新会话发出首条用户消息时计 1 次**;当月内继续/恢复历史会话不计次——语义清晰、用户易理解、难以绕过
-
-### 4.2 会员套餐(指定套餐)
-
-> **2026-08-24 更新:完整收费细则(含算力点数计量机制、基于 2026-08 真实 API 价格的单位经济测算、渠道费率、调价传导条款)见 [PRICING.zh.md](PRICING.zh.md)。** 本章档位为总纲(会员 49 元/Pro 129 元),细则以 PRICING 文档为准。
-
-| 档位 | 定价建议 | 权益 |
-|---|---|---|
-| 会员版 | 39 元/月 | 一键接入全部模型目录(DeepSeek/GLM/Qwen 等经网关路由),随时切换,公平使用量(families 高频场景有软限频) |
-| Pro 版 | 99 元/月 | 更高用量上限、优先队列、抢先体验新模型 |
-
-- 切换模型 = 客户端拉取 entitlement 模型目录 → 用户选择 → 壳层重写 profile 的 provider 配置 → 复用升级管家的无感重启机制(既定能力,零新增)
-- 原「模型信息只读页」升级为「模型目录选择器」——这是壳层自己的 UI,不动 dsh 功能
-
-### 4.3 LLM 网关架构(商业化的技术心脏)
-
-```
-客户端(壳) ── baseURL 指向网关 + 短时效凭证(Asset Store 加密, 15min 轮换)
-   │  dsh Host 的 provider 配置由壳生成(既定机制不变)
-   ▼
-LLM Gateway(OpenAI 兼容端点)
-   ├─ 鉴权:用户凭证 → user_id → 订阅状态/配额
-   ├─ 计量:对话次数、token 用量、模型路由记账
-   ├─ 路由:模型名 → 上游官方 API(我方持有的 Key)
-   └─ 风控:频控、异常检测、熔断
-```
-
-- 免费层/会员的差异只在网关侧的配额与目录下发——客户端零判断逻辑,全部服务端权威
-- BYOK 通道不受影响:用户选「使用自己的 API Key」时 baseURL 直写官方端点,流量不经过网关
-
-## 5. 云同步(1GB 免费 + 分级付费)
-
-### 5.1 同步内容分级
-
-| 类别 | 内容 | 默认 |
-|---|---|---|
-| 默认同步 | 会话记录(JSONL 文本)、Agent 预设、设置偏好、插件清单、todo/goal 历史 | 开 |
-| 可选同步 | 附件与图像(占用配额较大) | 关 |
-| 永不同步 | API Key 凭据、SSH/证书类敏感材料 | 强制关 |
-
-容量估算:一次重度会话的 JSONL 约 1–5MB,1GB 免费额度 ≈ 数百次深度会话——免费层够用,付费层为长期重度用户准备。
-
-### 5.2 存储定价(对标 iCloud 6/21/68 元、华为云同级)
-
-| 档位 | 容量 | 定价建议 |
-|---|---|---|
-| 免费 | 1GB | 0 元 |
-| 基础 | 20GB | 3 元/月 |
-| 标准 | 100GB | 8 元/月 |
-| 扩展 | 500GB | 25 元/月 |
-| 捆绑优惠 | 会员版含 10GB 同步空间 | 提升会员感知价值 |
-
-配额满:新增同步暂停 + 系统通知 + 设置页 iCloud 式用量条 + 升级引导(不删数据、不影响本地使用)。
-
-### 5.3 同步架构
-
-- 同步代理跑在常驻服务(Guided Service daemon,具备文件系统访问权)或经 Host RPC 导出(dsh-session-log-export,官方已有能力)
-- 云端:按 user_id 分桶的对象存储 + 增量同步协议(内容寻址去重、断点续传)
-- 隐私:传输 TLS + 服务端加密起步;端到端加密(E2EE,密钥仅用户设备持有)列入 v2 路线对标 iCloud 高级数据保护
-
-## 6. 支付(双通道策略)
-
-| 渠道 | 适用 | 说明 |
-|---|---|---|
-| 华为 IAP Kit | 应用市场上架版 | 数字商品(订阅+消耗型加油包)必须走 IAP,合规红线;服务端回执校验 |
-| 支付宝/微信鸿蒙 SDK | 官网分发版/侧载版 | 直连低费率,账号体系一致(手机号) |
-| Apple IAP | 未来 iOS/macOS 上架版 | 苹果抽成 30%(小企业计划 15%),苹果端定价需覆盖;macOS 官网分发可直连支付 |
-
-订阅管理:续订前提醒、随时取消(周期末生效)、家庭共享列 v2。
-
-## 7. 后端服务清单
-
-| 服务 | 职责 |
-|---|---|
-| account-svc | 手机号身份、华为/苹果 OAuth 绑定、短信验证、换绑、设备管理 |
-| auth-svc | 登录态签发/刷新、网关短时效凭证交换 |
-| billing-svc | 订阅状态、配额(对话次数/存储/模型目录)、IAP 回执校验、对账 |
-| llm-gateway | OpenAI 兼容端点、鉴权、计量、模型路由、风控(§4.3) |
-| sync-svc | 对象存储、配额计量、增量同步协议 |
-
-客户端集成面(全部增量):账号页、订阅商店、同步设置与用量条、模型服务切换开关——走 account.*/billing.* 命名空间打到自有云端,不经 dsh Host(开发方案 §7.1 已预留)。
-
-## 8. 单位经济(粗算,需上线后校准)
-
-- 免费用户成本控制:基础档模型 + 单会话 token 上限 + 日频控 → 目标 1–5 元/免费用户/月
-- 转化假设:2–5%(行业基准);手机号门槛显著抑制多开薅羊毛
-- 存储毛利:对象存储成本约 0.1 元/GB/月量级,毛利率 90% 以上
-- 会员毛利:39 元订阅 vs 重度用户推理成本——公平使用量上限是毛利保护线,条款需明示
-
-## 9. 合规清单(中国区上线前置,提前启动)
-
-1. PIPL:隐私协议、手机号收集最小必要授权、账号注销流程
-2. 短信签名与模板报备(运营商通道,周期 1–2 周)
-3. 云端域名 ICP 备案(经营性互联网信息服务评估 EDI/ICP 证)
-4. 生成式 AI:《生成式人工智能服务管理暂行办法》与算法/深度合成备案评估(对公众提供模型对话服务是触发条件,周期长,最先启动)
-5. 华为应用市场:数字商品走 IAP、账号登录合规审查
-6. 苹果端(未来):若提供第三方登录必须并列 Sign in with Apple、IAP 抽成、隐私标签
-
-## 10. 里程碑(M5 商业化阶段,AI 开发排期)
-
-| 阶段 | 内容 | 工期 |
-|---|---|---|
-| M5.1 账号与登录 | account-svc + 华为一键授权 + 短信登录 + 换绑 + 账号页 UI | 4–5 天 |
-| M5.2 模型网关与免费层 | llm-gateway + 免费层配额 + 壳层默认接入 | 5–8 天 |
-| M5.3 订阅与模型目录 | billing-svc + IAP 接入 + 模型目录选择器 | 4–5 天 |
-| M5.4 云同步 v1 | sync-svc + 同步代理 + 用量 UI | 5–7 天 |
-| M5.5 合规与上架 | 备案材料、隐私协议、应用市场提审 | 并行推进 |
-
-## 11. 风险与对策
-
-| 风险 | 对策 |
-|---|---|
-| 免费层被多账号薅 | 手机号门槛 + 设备指纹 + 日频控 + 风控名单 |
-| 模型成本波动吃掉毛利 | 网关层动态限流、套餐公平使用条款、基础模型选最便宜档 |
-| 上架审核强制 IAP | 双通道策略(市场版 IAP / 官网版直连) |
-| AIGC 备案周期不可控 | M5.0 即启动,网关先内测(邀请码模式)过渡 |
-| 与主线开发抢资源 | 商业化层独立于协议原生线,可并行(后端 + 壳层 UI) |
-
-## 12. 与现有文档的关系
-
-- 取代开发方案 §7「支付界面(预留)」的占位设计,§6「模型指定方案」的计费网关构想在此落地为完整方案
-- 开发方案 §1.2 Non-goals 中「不做云同步、多用户」按本方案在 M5 阶段解除(商业化层)
-- 竞调差异化结论(§5 优势 4:商业化独有)是本方案的战略依据

+ 0 - 109
dsh-harmony/COMPETITIVE-RESEARCH.zh.md

@@ -1,109 +0,0 @@
-# DSH 桌面端竞品调研报告
-
-> 调研日期:2026-08-23 | 方法:GitHub API 实测 + npm registry 实测 + 官方 Discussion #767 + 生态分析文章交叉验证 | 数据快照存于 knowledge-base/ecosystem-tracker.md,可随时刷新
-
----
-
-## 1. 生态总规模:爆发期,9 天 18.6 万星
-
-| 指标 | 数值(2026-08-23 实测) |
-|---|---|
-| 官方仓库 star / fork | 186,362 / 20,659(2026-08-13 开源,9 天) |
-| npm 周下载 / 月下载 | 706,007 / 901,952 |
-| 官方发版节奏 | 11 天 10 个版本(0.0.1-rc.1 → 0.1.1-rc.2),最新 0.1.1-rc.2 |
-| 生态成熟度 | 开源一周即形成索引/分发/入口/调度四层基础设施( awesome 列表 1.17 万星、插件市场 1.9 千星、桌面端 1.87 万星、路由套件 6.7 千星) |
-
-结论:DSH 是当前增长最快的开源 Agent 框架,生态已过「单点爆火」进入「基础设施成型」阶段。桌面入口层出现明显赢家通吃(头部 1.87 万星 vs 第二梯队数百星,约 10-50 倍差距)。
-
----
-
-## 2. 桌面客户端赛道格局(2026-08-23 实测)
-
-| 项目 | star | 技术形态 | 升级模型 | 平台 | 备注 |
-|---|---|---|---|---|---|
-| anywhere-labs/deepseek-harness-desktop | 18,666 | Electron 壳,桌面能力本身做成 DSH 插件 | 锁定固定上游版本,随应用发版更新 | Windows x64 + macOS Universal | 内置 Community Market 插件市场;roadmap 含 iOS/Android 远程;明确声明与 DeepSeek 无隶属 |
-| dataelement/dsh-desktop | 1,908 | 桌面客户端 | 打包式 | Win/macOS | 第二梯队头部 |
-| dsh-market/dsh-market | 1,936 | DSH 内插件市场(非独立桌面) | — | Web | 分发层基础设施 |
-| fufankeji/deepseek-harness-studio | 466 | 零代码桌面端 | 打包式 | Win/macOS | 内置插件发现/推送 |
-| lencx/Minke | 412 | 桌面客户端 | 打包式 | 跨平台 | |
-| hust-open-atom-club/oh-dsh | 258 | Desktop/Web/TUI 三形态发行版 | 每种发行自带固定版 DSH + Node | macOS/Linux/Windows | 高校开源社团维护;PTY 终端/Git Review/分屏 |
-| sdkwork-ai / sleep2agi / majiayu000/dsh-desk | 16-21 | Electron/Tauri 打包 | 打包式 | Win 为主 | 长尾 |
-| omdsh-dev ADHD / NoWint Oh-My-DSH | 10-11 | Electron 封装/插件目录 | — | — | 长尾 |
-| lijian-ui/dsh-desktop | 5 | Electron 壳 | 跟随官方 npm 包自动升级 | Win/macOS | 与我们的 macOS 薄壳同哲学,但无关注度 |
-| (自有)dsh-desktop(macOS 薄壳) | 未开源 | Electron 菜单栏壳 | npm 原地升级 + 冒烟回滚 | macOS | 已落地验证升级管家设计 |
-
-补充:官方 Discussion #767(8-14 发起,官方仓库内)确认桌面端是社区公认需求,讨论共识为「桌面端价值在补齐宿主层体验而非重写 Harness」,且社区普遍推荐锁定稳定版避免兼容问题——注意:这恰恰是我们方案反着打的点(实时跟随)。
-
----
-
-## 3. 三种技术路线分类(关键洞察)
-
-| 路线 | 代表 | 升级时效 | 体验深度 | 鸿蒙可移植性 |
-|---|---|---|---|---|
-| A. 固定打包型:安装包内置固定版 DSH + Node | anywhere-labs(18.7k)、oh-dsh、dsh-desk、studio、Minke | 慢:随应用发版(天-周级) | Web UI 原样 + 壳能力 | 低:Electron/Tauri 在鸿蒙不可用,需整体重写 |
-| B. 薄壳跟随型:托管本机 npm 安装,加载官方 UI | lijian-ui(5 星)、自有 macOS 壳 | 快:npm 原地升级(小时级) | 等同官方 Web UI | 中:ArkUI Web 组件 + Supervisor 可平移 |
-| C. 协议原生型:原生 GUI 直连 wire 协议 | 无(我们是第一个) | 快:运行时可插拔 + 协议适配 | 最深:原生卡片/通知/多窗口 | 高:本来就是为鸿蒙设计 |
-
-关键结论:
-
-1. 市场用 star 投票选择了路线 A(anywhere-labs 18.7k)——用户要的是「双击即用、不用装 Node」,升级时效不是主流痛点(至少现在不是,因为 DSH 才 9 天大)。
-2. 但路线 A 的升级模型在生态快速演化期是结构性弱点:官方 11 天 10 版,锁定版本意味着用户持续落后;这是我们的可进攻面。
-3. 路线 C 无人做——方案 C 的「协议原生」在全网是独一份,既是壁垒也是风险(无先例可抄,协议适配成本自担)。
-
----
-
-## 4. 鸿蒙赛道:完全空白
-
-全网检索确认:截至 2026-08-23,**不存在任何 HarmonyOS 版 DSH 客户端**(原生或 WebView 壳都没有)。相关基础设施只有两个:
-
-| 项目 | star | 与我们的关系 |
-|---|---|---|
-| shenjackyuanjie/dsh-ohos-patch | 5 | 已实测证明 DSH CLI 能跑在 OpenHarmony arm64(Node hnp + esbuild WASM),是我们 Host 层的地基,非竞争者 |
-| TermonyHQ/Termony | 395 | 鸿蒙 PC 上的 Termux 类终端(WIP),是「终端跑 CLI + 浏览器访问」替代路线的底座,潜在竞争载体 |
-
-两个潜在威胁载体(非直接竞品但可演进为竞品):
-
-- anywhere-labs 的 roadmap 已含 iOS/Android 远程控制——跨平台野心明确;但 Electron 架构进入鸿蒙必须重写壳(Electron 鸿蒙不可用),这是我们最大的时间窗优势。
-- zhu1090093659/dsh-web-ui(5,668 star)已提供「移动端远程 + SSH 运维」——远程浏览器路线可以零原生投入覆盖鸿蒙设备(体验打折但可用)。
-
----
-
-## 5. 我们方案的差异化优势
-
-1. **平台独占(最强)**:鸿蒙 PC 唯一 DSH 客户端。竞品进入鸿蒙的技术成本极高(Electron 不可用 → 必须原生重写),先发窗口以「月」计。
-2. **升级模型领先**:运行时热替换 + 契约适配(继承已验证的升级管家)。anywhere-labs 锁定固定版本,在官方周级演化的背景下持续放血;我们小时级跟随。
-3. **原生体验深度**:ArkUI 原生工具卡片/审批弹层/系统通知/多窗口/深色模式,全部竞品都是 WebView 形态。
-4. **商业化预留(独有)**:指定模型 + 计费网关 + 支付界面。桌面端赛道全部免费开源、零变现设计——若走商业化,没有正面竞争者。
-5. **信创卡位**:鸿蒙 PC 在政企市场的特殊性,国产 Agent 客户端有独特采购场景,Win/macOS 竞品无法触及。
-
-## 6. 劣势与风险(按严重度排序)
-
-| # | 劣势/风险 | 说明 | 缓解 |
-|---|---|---|---|
-| 1 | 社区势能差距悬殊 | anywhere-labs 18.7k star + 生态文章收录 + 插件市场绑定,品牌认知已形成 | 不正面拼通用桌面端,深耕鸿蒙独占 + 差异化体验;争取官方生态收录(dsh-TUI 被官方公众号收录有先例) |
-| 2 | 市场容量风险 | 鸿蒙 PC 装机量远小于 Win/macOS,且开发者用户占比未知 | 政企信创场景补偿;商业化(指定模型+订阅)降低对纯用户量的依赖 |
-| 3 | 协议原生重投入的验证风险 | 市场已接受壳方案(18.7k star),说明「够用」标准不高;方案 C 若体验优势不显著,投入产出失衡 | M1 后做用户验证;保留 ArkUI Web 组件壳作为低成本备选(双速策略待判断,见 open-questions) |
-| 4 | 生态标准风险 | 插件市场(dsh-market)+ 插件化桌面壳(anywhere-labs「桌面也是插件」)可能成为事实标准,鸿蒙端不跟进会显异类 | 我们的插件面板转发 dsh plugin 命令已兼容;后续评估对接 dsh-market 目录 |
-| 5 | 单人/小团队 vs 组织化竞争 | anywhere-labs 有完整团队与发版节奏 | 鸿蒙赛道当前无对手,维护压力主要来自协议跟进而非竞品 |
-| 6 | DSH 协议周级演化 | 已在开发方案附录 A 评估:rc 期破坏性变更高频 | 契约矩阵 + 适配器 + 逃生舱四层防御 |
-
----
-
-## 7. 战略建议
-
-1. **把「鸿蒙首发」做成事件**:MVP 一出就开源 + 提交 awesome-dsh-plugin 收录 + 联系 dsh-TUI 式官方公众号曝光路径。生态正在批量收录基础设施,鸿蒙端是空白栏目。
-2. **差异化双支柱对外叙事**:a) 唯一原生体验(非 WebView);b) 唯一实时跟随官方升级(对比 anywhere-labs 锁版本)。这两点分别打击路线 A 的两个结构性弱点。
-3. **商业化尽早闭环**:桌面端无竞品做变现,指定模型 + 订阅支付的窗口独占期有限;且商业化降低对 star/用户量的依赖,匹配鸿蒙市场容量现实。
-4. **监控三威胁源**(已录入 ecosystem-tracker 定期刷新):anywhere-labs 跨平台动向、dsh-web-ui 移动端远程、Termony+ohos CLI 组合。
-5. **不发通用 Win/macOS 版**:正面战场打不过 anywhere-labs 的势能,资源全部集中在鸿蒙独占优势上。
-
----
-
-## 附:调研方法与数据可信度
-
-- GitHub star/fork:GitHub REST API 实测(两轮交叉,误差 <0.1%)
-- npm 下载量:api.npmjs.org 实测
-- 竞品功能细节:各仓库 README 原文 + CSDN 生态分析文章(2026-08-23 发布,基于 08-22 快照)+ 官方 Discussion #767 原文
-- 局限:未实测各竞品的实际安装量/活跃度(无公开数据);anywhere-labs 星数增长极快,引用时注意时效
-
-相关文档:DEVELOPMENT-PLAN.zh.md(开发方案)、knowledge-base/(官方知识库与生态跟踪)

+ 0 - 468
dsh-harmony/DEVELOPMENT-PLAN.zh.md

@@ -1,468 +0,0 @@
-# DSH 鸿蒙 PC 原生客户端开发方案(方案 C:ArkUI 全原生)
-
-> 版本:v1.1(2026-08-23 check 后更新:决策落地、R1 落定、双速路线整合)
-> 定位:HarmonyOS PC 上的 DSH 原生桌面应用——全原生 ArkUI 界面 + 本地 DSH Host 运行时托管 + 永远跟随官方升级
-> 路线(2026-08-23 定稿):**双速**——先出 Web 壳首发版(P1)抢鸿蒙卡位,协议原生(方案C 主体)并行分支推进,壳即 4.5 节 WebView 逃生舱
-> 姊妹篇:**HANDOVER.md(交接文档——新会话入口,先读它)**|dsh-desktop/PRODUCT-PLAN.zh.md(macOS 薄壳版,0.2.1)|SCHEDULE-AND-DECISIONS.zh.md(AI 工期估算)|COMPETITIVE-RESEARCH.zh.md(竞品调研)
-
----
-
-## 0. 状态板(2026-08-23)
-
-| 项 | 状态 |
-|---|---|
-| 工程 | ✅ /Users/eastudio/DevEcoStudioProjects/dsh-harmony(com.dotouch.dshharmony / DSH Harmony / vendor dotouch) |
-| API 版本 | ✅ compatibleSdkVersion 6.0.0(20)(HarmonyOS 6.0)/ targetSdkVersion 26.0.0(HarmonyOS 7),编译验证通过 |
-| CLI 构建链 | ✅ scripts/build.sh(Java/SDK 环境配方固化,见 knowledge-base/build-recipe.md) |
-| 签名 | ✅ 自动签名完成,entry-default-signed.hap 构建通过 |
-| 验证设备 | ✅ MateBook Pro 模拟器(HarmonyOS 7 Beta / API 26 / 2in1)已部署;MatePad Edge 真机可接入(compatible=20 兼容回归 + 真机大屏场景) |
-| 知识库 | ✅ knowledge-base/(官方文档目录、SDK API 映射、生态跟踪、构建配方、问题清单) |
-| git | ✅ 本地仓库初始化(main 基线 2913ad6 + feature/protocol-native 双分支;仓库级身份 dotouch,无远程——开源时再加) |
-| 壳版(P0/P1) | 🔄 已在其它对话任务中启动(2026-08-23),本对话通过 git diff / 工程状态跟踪其进展 |
-| 协议原生线(P2a 起) | ⏳ 待启动,工作分支 feature/protocol-native |
-
----
-
-## 1. 项目概述
-
-### 1.1 目标
-
-1. 全原生体验:用 ArkTS/ArkUI 重写 DSH Web GUI 的完整功能(非 WebView 嵌套),获得鸿蒙 PC 原生窗口管理、多窗口、通知、系统集成。
-2. 随官方升级(第一优先级):DSH 官方发版后,客户端可在小时级内完成跟进,且不需要重新发版安装包——原生端零分叉官方代码,只消费官方 wire 协议;Host 运行时作为可热替换资产独立升级。
-3. 指定模型:模型与 provider 在配置层锁定,UI 只读展示,不提供模型切换。
-4. 支付界面(后续阶段):预留账户/计费/支付的模块边界与接口,本期只做架构占位。
-
-### 1.2 Non-goals(明确不做)
-
-- 不 fork / 不内嵌 / 不重新分发任何官方 UI 代码(这是「随官方升级」永远成立的前提)
-- 不替代 dsh 的 profile / 插件体系,只做托管、转发与展示
-- 不做云同步、多用户(本期)
-- 不做嵌入式交互终端(node-pty 在 ohos 未适配,见第 10 节风险)
-
-### 1.3 核心设计原则(四条,全部来自已验证的架构事实)
-
-| # | 原则 | 架构依据(已在本机源码确认) |
-|---|---|---|
-| P1 | 官方代码零分叉 | Web UI 必须由 dsh web 注入 window.__DSH_BOOT__ 才能跑,任何打包 UI 的做法都会分叉;但协议消费不分叉——DSH 官方为非浏览器壳预留了 __DSH_TRANSPORT__ 逃生舱,wire 契约(Typert RPC + 事件流)就是公开边界 |
-| P2 | 协议即边界 | 客户端与 Host 之间只有三样东西:HTTP POST /api(Typert RPC)、两条只下行 WebSocket(/api/events.mux 与 /api/events.host)、named-stream 会话增量协议。原生端只依赖这三样,绝不 import 任何 @deepseek-ai/dsh-* 内部模块 |
-| P3 | 数据驱动渲染 | 会话状态以 session projection 整体值 JSON 下发(todo、goal、plan、工具卡片数据),schema 校验、last-wins;DSH 官方明确「rendering belongs to the slot system」。原生端实现通用投影渲染器:官方新增工具/领域 → 新 key 进来 → 已知 key 用专属卡片、未知 key 用通用 JSON 卡片降级显示,不崩、不白屏、不阻塞升级 |
-| P4 | 运行时可插拔 | npm i -g @deepseek-ai/dsh@latest + 重启 = 整个后端与协议实现立即最新(web bundle 全是 CLI 包的依赖)。运行时升级走独立通道 + 冒烟测试 + 自动回滚(移植 macOS 版已验证的升级管家) |
-
----
-
-## 2. 依据:DSH 本地产品已实现功能盘点
-
-以下清单来自本机 @deepseek-ai/dsh@0.1.1-rc.2 安装的 dsh-client-ui-* 模块族实测盘点,是原生端的功能对齐基线。
-
-### 2.1 功能全景 → 原生端映射
-
-| 功能域 | Web GUI 已实现(来源包) | 原生端实现 | 优先级 |
-|---|---|---|---|
-| 会话列表/恢复 | dsh-client-ui-sidebar | 原生侧栏(会话列表、标题、按工作区分组) | P0 |
-| 对话主视图 | dsh-client-ui-conversation | 原生消息流(LazyForEach 虚拟滚动 + 流式增量) | P0 |
-| 消息渲染 | dsh-client-ui-renderer | 自研 Markdown/代码高亮/图像渲染器(见 5.3) | P0 |
-| 工具调用卡片 | dsh-client-ui-tool | 通用工具卡片框架 + 常用工具专属卡片(见 5.4) | P0 |
-| 用户提问/审批 | dsh-client-ui-user-questions | 原生审批弹层(选项/多选/自由输入) | P0 |
-| 会话中断/继续 | conversation 内 | 停止按钮 + 恢复 | P0 |
-| 附件上传 | dsh-client-ui-attachment | 系统文件选择器 + 图像预览 | P1 |
-| 文件引用 | dsh-client-ui-reference | @文件 引用与点击回跳 | P1 |
-| 权限预设 | dsh-client-ui-permission-presets | 审批策略选择(workspace-write/ask 等) | P1 |
-| 计划模式 | dsh-client-ui-plan | 计划审批流(exit_plan_mode 全屏计划卡片) | P1 |
-| Todo 列表 | dsh-tool-todo 投影 | 投影驱动的任务清单卡片 | P1 |
-| 目标 Goal | dsh-client-ui-goal | 目标状态卡片(轮次/阶段/blocked) | P1 |
-| 子代理 | dsh-client-ui-subagent | 子代理面板(列表/追问/中断) | P1 |
-| 后台任务 | dsh-client-ui-jobs | 任务中心(读取输出/终止) | P1 |
-| 工作流 | dsh-client-ui-workflow-run | 工作流运行视图(阶段进度) | P2 |
-| 技能 | dsh-client-ui-skill | 技能加载状态展示 | P2 |
-| 目录选择 | dsh-client-ui-directory-picker | 系统目录选择器(FSPicker) | P1 |
-| 工作区切换 | dsh-client-ui-workspace | 工作区管理与状态 | P1 |
-| Agent 预设 | dsh-client-ui-agent-preset | 预设选择(code/standard/minimal/cordis) | P1 |
-| 模型选择 | dsh-client-ui-model-selection | 替换为只读「模型信息」(见 6) | — |
-| 消息反馈 | dsh-client-ui-message-feedback | 点赞/点踩 + 反馈提交 | P2 |
-| 轨迹视图 | dsh-client-ui-trajectory | 详情侧栏(完整工具轨迹/参数/结果) | P1 |
-| 交付物 | dsh-client-ui-deliverables | 产出文件列表与直达 | P2 |
-| 斜杠命令 | dsh-client-ui-commands | 输入框命令触发器 | P1 |
-| 设置-通用 | dsh-client-ui-settings-general | 原生设置页 | P1 |
-| 设置-插件 | dsh-client-ui-settings-plugins | 插件面板(转发 dsh plugin 命令,流式输出) | P2 |
-| 设置-模型 | dsh-client-ui-settings-models | 锁定展示(见 6) | — |
-| 主题 | dsh-client-ui-theme | 深色/浅色/跟随系统 | P1 |
-| 布局 | dsh-client-ui-layout | 三栏自适应 + 自由窗口 | P1 |
-| 本地化 | dsh-client-locale | 中/英 | P2 |
-| 升级管家 | (macOS 薄壳版已实现) | 运行时升级中心(见 4.2,移植已验证设计) | P0 |
-
-### 2.2 关键架构事实(全部实测确认)
-
-通信协议(原生客户端要实现的全部):
-
-- 一元/应答调用:HTTP POST /api,Typert RPC 信封(InvocationDescriptor:精确命名参数 + 严格 codec 校验)
-- 事件下行:/api/events.mux 与 /api/events.host 各一条只下行 WebSocket,客户端不上行应用数据;任一断开即连接代际失效、重建两条流
-- 就绪握手:两条 WS 打开 + host.describe HTTP 调用成功 → onConnected,并发布 host 能力描述
-- 会话增量:独立的 named-stream 协议(同连接承载);投影帧 session/projection(整体值、schema 校验、last-wins)
-- 信任围栏:/api 要求 Host 为 loopback 或 trustedHosts 成员(DNS-rebinding 防御)→ 本方案 Host 永远跑在本机 loopback,天然满足
-
-Host 侧:
-
-- 会话持久化于 ~/.dsh/sessions(按工作区分片),服务重启不丢;历史读取走 api-proxy history tail 分页
-- SIGINT/SIGTERM 有界优雅停机(5 秒)→ 可被安全托管
-- profile(~/.dsh/profiles/web)只引用 bundle 名,解析到 CLI 安装目录的 node_modules;用户插件在 profile 自己的 node_modules,升级不影响
-- LLM 配置:dsh-llm-deepseek(baseURL/apiKeyEnv/models/thinking 全部可配)+ dsh-llm-pi-ai;凭据走 ctx.credentials(credentials.set/unset/describe RPC)
-
-OpenHarmony 侧(来自 dsh-ohos-patch 2026-08 实测):
-
-- Node v24.13.0(hnp,HarmonyOS 官方构建)可跑完整 DSH:pnpm install 全量成功、bin/dsh --help PASS
-- esbuild/oxc 均有 openharmony-arm64 WASM shim 变体,transform 可用;原生 ELF 不可在用户分区执行 → 只走 WASM 路线
-- node-pty 无 prebuild → PTY 终端功能不可用(本期 Non-goal)
-
----
-
-## 3. 总体架构
-
-### 3.1 分层架构图
-
-+---------------------------------------------------------------+
-|                DSH Harmony(原生 App,ArkTS/ArkUI)              |
-|                                                               |
-|  +---------------------------------------------------------+  |
-|  | UI 层:页面/组件(会话流、工具卡片、审批、设置、升级中心)      |  |
-|  |   ArkUI 声明式 + ObservedV2 状态 + LazyForEach 虚拟滚动      |  |
-|  +--------------------------+------------------------------+  |
-|  +--------------------------+------------------------------+  |
-|  | 视图模型层:SessionViewModel / ConnectionState /            |  |
-|  |   ApprovalQueue / TodoGoalPlanStore(订阅投影帧)            |  |
-|  +--------------------------+------------------------------+  |
-|  +--------------------------+------------------------------+  |
-|  | 协议适配层(Protocol Adapter,本方案核心资产)                 |  |
-|  |  - transport:HTTP POST /api + WS 下行x2 + 重连/代际管理     |  |
-|  |  - typert:RPC 信封编解码、命名参数、AbortSignal 取消          |  |
-|  |  - projections:投影帧解析 → 状态分发(已知 key/通用降级)      |  |
-|  |  - adapters:DshVersionAdapter 注册表(按 host 版本选择)      |  |
-|  |  - capabilities:host.describe 能力协商 → UI 特性开关          |  |
-|  +--------------------------+------------------------------+  |
-|  +--------------------------+------------------------------+  |
-|  | 运行时管理层(Runtime Manager,移植 macOS 版已验证设计)        |  |
-|  |  - Supervisor:探测/拉起/守护 Host,就绪探测,崩溃退避重启     |  |
-|  |  - Updater:盯 npm 发版 → 升级 → 冒烟 → 无感重启 → 回滚        |  |
-|  |  - EnvironmentDoctor:Node/hnp/网络/磁盘体检与修复引导         |  |
-|  +--------------------------+------------------------------+  |
-+-----------------------------+---------------------------------+
-                              | loopback: HTTP POST /api + WSx2
-+-----------------------------+---------------------------------+
-|  DSH Host(官方代码,黑盒资产,绝不修改)                          |
-|  node(hnp) + @deepseek-ai/dsh(npm/npmmirror 安装)              |
-|  dsh web --port 0 --host 127.0.0.1(端口从 stdout 解析)           |
-|  profile: ~/.dsh/profiles/web(含本产品的锁定补丁层,见 6)         |
-+-----------------------------------------------------------------+
-
-### 3.2 Host 托管模型(鸿蒙关键决策)
-
-鸿蒙三方 App 的沙箱对 spawn 任意子进程存在策略限制(2026-08-23 已由 SDK 源码证实,见附录 B),因此采用双轨托管:
-
-| 模式 | 做法 | 适用 |
-|---|---|---|
-| Attach(默认) | App 启动时探测 127.0.0.1 端口段的健康 dsh(GET / + host.describe),健康则直接复用 | 用户已在 hnp 终端跑着 dsh;或已安装我们的常驻服务 |
-| Guided Service(首启向导) | 首启向导引导用户在 hnp 终端执行一条我们生成的安装命令,安装「DSH Host 常驻服务」(ohos 下的 daemon 脚本 + dsh 运行时),此后开机自启,App 永远 attach | 大多数用户 |
-| ~~In-App Spawn~~(已否定) | SDK 源码证实 childProcessManager 仅支持 ArkTS 同步子进程,无法拉起 node 二进制(附录 B,2026-08-23) | 除非未来官方开放受限进程能力,否则不再评估 |
-
-双轨设计与 macOS 薄壳版 Supervisor 的「attach 优先、否则 spawn」策略同构,代码可平移。**移植清单必含 macOS 0.2.1 实战修复**:spawn 前重解析 dsh 路径(npm 升级重写 bin 链接的窗口期竞态)、ENOENT 每 3 秒重试最多 5 次、childEnv() 最小 PATH 增强(hnp 环境同样存在此问题)。
-
-### 3.3 数据流(一次对话的完整链路)
-
-用户输入 → POST /api session.send → Host 组装请求 → 指定模型(见 6)→ 流式响应 → events.mux 帧下推 → 协议适配层解码 → SessionViewModel 增量上屏;工具调用 → 投影帧 session/projection(工具卡片整体值)→ ToolCardStore → 卡片渲染;需要审批 → user-questions 事件 → ApprovalQueue → 原生弹层 → POST /api 应答;todo/goal/plan 变化 → 各自投影 key → 对应卡片实时刷新。
-
----
-
-## 4. 随官方升级机制(核心章节)
-
-### 4.1 升级的三个层面
-
-官方发版 @deepseek-ai/dsh@x.y.z 之后:
-
-- L1 运行时升级:npm 通道,小时级跟进,无需 App 发版——覆盖后端全部能力
-- L2 协议契约:契约测试矩阵 + 版本适配器 + 能力协商——保证原生端不被 breaking change 打死
-- L3 表现层:投影驱动的通用渲染 + 降级策略——新工具/新领域自动可渲染
-
-### 4.2 L1:运行时升级管家(移植已验证的 macOS 设计)
-
-- 发现:定时 npm view @deepseek-ai/dsh dist-tags(走独立 cache 目录;鸿蒙侧经 hnp npm,registry 用 npmmirror),启动时 + 每 6h(可配 1h/6h/24h)+ 手动
-- 执行:npm install -g @deepseek-ai/dsh@<tag>(hnp 全局 prefix,无需提权),不动 profile 与用户插件
-- 生效:SIGTERM 优雅停机 → 重新拉起/通知常驻服务重启 → 就绪探测(两条 WS + host.describe)通过 → UI 重连
-- 冒烟与回滚:升级后 60s 内服务起不来(rc 版本可能有破坏性变更)→ 自动回装旧版本 → 通知用户;版本史保留最近 5 个版本可手动切换
-- UI:设置内「运行时升级中心」——当前版本、可升级版本、升级日志、自动升级开关
-
-### 4.3 L2:协议契约测试 + 版本适配器
-
-这是原生方案区别于「WebView 薄壳」的最大工程投入,也是「随时升级」的保险:
-
-1. 契约快照仓库(Node 工程,独立于 App):对每个 dsh 版本启动真实 Host,录制:
-   - host.describe 全量输出
-   - 全部 RPC 端点的 InvocationDescriptor(参数名/schema)
-   - 会话事件流样本(一次含工具调用/审批/todo/图像的标准对话,录制成 fixture)
-2. 版本矩阵 CI:官方每发版自动跑 [新版本] x [当前 App 协议层],产出兼容性报告(绿/黄/红)
-   - 绿 → 升级管家放开该版本
-   - 黄(新增端点/新增投影 key)→ 原生端自动降级路径覆盖,排期跟进专属卡片
-   - 红(参数改名/语义变更)→ 写一个 DshVersionAdapter(纯映射层),App 发小版本
-3. 运行时适配器注册表:adapters/vN.ts 按 host.describe 的版本信息选择;adapter 只做字段改名/信封转换,绝不掺业务
-4. 能力协商:连接成功后以 host.describe 输出驱动 UI 特性开关(capability absent → 隐藏入口,不报错)
-
-### 4.4 L3:投影驱动的通用渲染
-
-- 已知投影 key(todo/goal/plan/工具卡片)→ 专属原生卡片
-- 未知 key → 通用 JSON 卡片(折叠、语法高亮、复制)——官方任何新增领域立即可见、不阻塞
-- 工具卡片按「工具名 → 卡片组件」注册表渲染;未注册工具名 → 通用卡片(参数表 + 结果 diff/文本 + 状态)
-- 每张卡片的数据层 schema 校验失败 → 降级为原始 JSON 展示,绝不整页崩溃
-
-### 4.5 WebView 逃生舱(兜底,非日常路径)
-
-保留一个隐藏的「兼容模式」入口:内置 ArkUI Web 组件加载本地 Host 的官方 Web UI。仅当契约测试未覆盖的极端 breaking change 发生时,用户可临时切到官方 UI 保证可用,同时我们发适配版本。这保证最坏情况下产品仍可用,且该路径加载的仍是官方随 npm 升级的 UI(不分叉)。
-
----
-
-## 5. 原生功能模块设计
-
-### 5.1 页面与导航
-
-主窗口(三栏,自由窗口/可最大化):
-- 左栏:会话列表(当前工作区分组 + 搜索 + 新建)
-- 中栏:会话主视图(消息流 + 输入区)
-  - 消息流:流式 Markdown、工具卡片、审批卡片、todo/goal/plan 卡片
-  - 输入区:多行输入、附件、@引用、斜杠命令触发器、发送/中断、权限预设选择、Agent 预设选择、计划模式开关
-- 右栏(可收起):轨迹详情(选中工具调用的完整参数/结果)、子代理/任务面板
-
-弹层:审批问答(ask_user_question:选项/多选/自由输入)
-独立窗口:设置(通用/运行时升级中心/插件/凭据/账户占位)、工作流运行视图
-系统级:通知(升级完成/审批等待/任务完成)、托盘/任务栏常驻(可选)
-
-### 5.2 会话与消息流
-
-- 消息模型:MessageItem[] 分片状态(ObservedV2),流式 delta 只更新尾部 item 的富文本缓冲,避免整列表重绘
-- 虚拟滚动:List + LazyForEach,长会话(数千事件)内存平稳;滚动到顶触发 history tail 分页拉取
-- 会话恢复:attach 已有会话走 history 分页 + 投影快照对齐 asOfSeq
-- 中断:RPC 取消(Typert 原生 AbortSignal 语义)+ UI 立即冻结输入区
-
-### 5.3 Markdown/代码渲染器(自研,工作量最大单体)
-
-- Markdown → ArkUI 节点树的两遍解析器(块级:标题/列表/代码块/引用/表格;行内:粗斜/链接/行内码)
-- 代码高亮:自研 tokenizer(TS/JS/JSON/YAML/Bash/Python/Md),流式期间高亮节流(150ms 批量重排)
-- 图像:Image 组件 + 本地缓存;附件图像直读
-- 官方消息内特殊语法(文件引用、折叠结果)走协议层识别后转原生组件
-
-### 5.4 工具卡片框架
-
-ToolCardRegistry:
-- bash/execute → 命令行卡片(等宽字体、退出码、截断展开)
-- read/write/edit → 文件卡片(路径、行号范围、diff 视图)
-- grep/glob → 检索卡片(命中列表、计数)
-- web_search → 结果卡片(标题/链接/摘要)
-- subagent → 子代理卡片(状态、输出摘要)
-- default → 通用卡片(参数 KV 表 + JSON 结果折叠展示)
-
-每张卡片:运行中(进度/耗时)→ 完成(可展开详情至右栏轨迹)→ 失败(错误高亮 + 重试语义提示)。
-
-### 5.5 审批与用户问答
-
-- Host 下发 user-question 事件 → 全局 ApprovalQueue → 模态弹层(单选/多选/自由文本,带推荐项标记)
-- 应答走 RPC 应答通道;排队期间输入区禁用并发对话
-- 权限预设变化(ask→workspace-write 等)即时生效于下次工具执行
-
-### 5.6 计划模式 / Todo / Goal
-
-- 三者均为投影 key:plan.active、todo 列表、goal 快照 → 各自专属卡片,整体值刷新、无增量合并复杂度
-- 计划审批:exit_plan_mode 触发全屏计划卡片(Markdown 渲染 + 批准/继续规划)
-
-### 5.7 子代理 / Jobs / 工作流
-
-- 子代理面板:代理树(父子关系)、状态(running/idle/ready)、send_message 追问输入、interrupt 按钮
-- Jobs:任务列表 + 输出流式查看 + kill
-- 工作流:阶段进度条(phase 标题)+ 阶段内代理计数 + 失败项定位
-
-### 5.8 附件 / 引用 / 目录选择
-
-- 附件:系统 FilePicker → 上传通道(RPC 附件端点)→ 消息内预览
-- 引用:输入 @ 触发文件浏览(走 fs 检索 RPC);消息内引用点击 → 定位文件
-- 目录选择:优先 DirectoryPickerNative(系统 FSPicker);不可用时降级 browse 模式(树形浏览 RPC)
-
-### 5.9 设置中心
-
-| 页 | 内容 |
-|---|---|
-| 通用 | 语言、主题、开机自启、端口策略、缓存管理 |
-| 运行时升级中心 | dsh 版本、检查更新、自动升级开关、版本史/回滚、冒烟日志 |
-| 模型信息 | 只读:指定模型名称、provider、上下文窗口、thinking 开关状态(见 6) |
-| 插件 | 插件清单(pluginInventory RPC)+ 安装/卸载(转发 dsh plugin,终端式流式输出面板) |
-| 凭据 | Asset Store 加密存储;API Key 录入/清除(credentials.set/unset);为支付预留:凭证可由计费网关下发(见 7) |
-| 账户(占位) | 后续支付阶段启用(见 7) |
-
----
-
-## 6. 模型指定方案
-
-### 6.1 锁定层级(配置层锁定,UI 层只读)
-
-在产品 profile 的补丁层(~/.dsh/profiles/web/cordis.patch.yml,我们首启向导生成)固定:
-
-- id: llm-deepseek
-  name: '@deepseek-ai/dsh-llm-deepseek'
-  config:
-    baseURL: <指定端点,由运行时管理器注入>   # 官方 API 或自建 OpenAI 兼容网关
-    models: ['<指定模型ID>']                   # 白名单 = 唯一可选
-    reasoningEffort: high
-    thinking: enabled
-
-- 若指定模型是 DeepSeek 官方 → 直接 dsh-llm-deepseek
-- 若是第三方 OpenAI 兼容端点(含后续计费网关)→ 同一 provider 配 baseURL 即可,官方 adapter 原生支持
-- API Key:不落明文,Asset Store 加密 → 启动 Host 时经受控环境变量注入(apiKeyEnv)
-- UI:隐藏 model-selection 与 settings-models 的编辑能力,替换为只读「模型信息」页(P1 中完成)
-
-### 6.2 与支付的关系(前瞻)
-
-指定模型为「计费网关换发凭证」留好了位置:baseURL 指向我们的网关,网关鉴权用户订阅 → 转发官方 API → 凭证由第 7 节的 Billing 服务下发。用户无感、DSH 零改动。
-
----
-
-## 7. 支付界面(后续阶段,本期只做架构预留)
-
-> **2026-08-24 更新:本章占位设计已被完整商业化方案取代**——见 [COMMERCIALIZATION-PLAN.zh.md](COMMERCIALIZATION-PLAN.zh.md)(账号体系/模型订阅/云同步/支付双通道/合规清单)。§1.2 中「不做云同步、多用户」的 Non-goal 在 M5 商业化阶段解除(商业化层为纯增量,本地模式与 BYOK 永久保留)。
-
-### 7.1 模块边界(本期定义接口 + 入口占位,不实现)
-
-- AccountService:登录态、用户资料(后续:手机号/华为账号)
-- BillingService:套餐、余额、用量、订单列表(后续:对接计费网关)
-- PaymentProvider 支付抽象(后续实现):
-  - HuaweiIapKit:华为应用内购买(订阅制首选)
-  - WeChatPayOhos:微信支付鸿蒙 SDK
-  - AlipayOhos:支付宝鸿蒙 SDK
-
-### 7.2 后续方案的商业模式假设(待定稿)
-
-- 订阅制(月/年)或按量套餐 → 网关换发模型访问凭证(见 6.2)
-- 设置页「账户」入口本期渲染为「即将上线」占位;协议层预留 billing.* RPC 命名空间(打到我们自己的云端,不走 dsh Host)
-
----
-
-## 8. 技术选型与工程结构
-
-| 维度 | 选型 | 理由 |
-|---|---|---|
-| IDE/SDK | DevEco Studio 26;compatibleSdkVersion 6.0.0(20)(HarmonyOS 6.0)/ targetSdkVersion 26.0.0(HarmonyOS 7) | 已定稿落地并编译验证;API 21+ 能力(如 HarmonyOS 7 悬浮窗)仅作增强,基础功能不依赖 |
-| 语言/UI | ArkTS + ArkUI(Stage 模型) | 方案C 本体 |
-| 状态 | ObservedV2/Trace + MVVM | 大列表细粒度更新 |
-| 网络 | ohos.net.http(RPC)+ ohos.net.webSocket(下行x2) | 协议适配层自建重连/代际 |
-| 持久化 | RelationalStore(会话索引缓存)+ Preferences(设置) | 真相在 Host(~/.dsh),端侧只做缓存 |
-| 凭据 | Asset Store(硬件级密钥库) | 见 6 |
-| JSON/校验 | 自研轻量 schema validator(对齐投影 wire schema) | L2 契约 |
-| 构建/分发 | hvigor CLI(scripts/build.sh,环境配方见 knowledge-base/build-recipe.md)+ 自动签名已通;侧载起步 → 应用市场 | 已跑通签名 HAP 产出 |
-
-工程结构:
-
-dsh-harmony/
-  entry/                        # 主 App
-    src/main/ets/
-      app/                      # UIAbility 入口、生命周期、窗口管理
-      pages/                    # 主窗口/设置/工作流
-      components/               # MessageList、ToolCard/*、ApprovalSheet 等
-      viewmodel/                # 会话/连接/审批/投影 Store
-      protocol/                 # 协议适配层(3.1,独立无 UI 依赖,可单测)
-        transport/  typert/  projections/  adapters/  capabilities/
-      runtime/                  # Supervisor/Updater/EnvironmentDoctor
-      platform/                 # 通知、Asset、文件、深链
-      common/
-  contract-tests/               # Node 工程:版本矩阵契约测试(4.3)
-    fixtures/                   #   录制的事件流样本
-    matrix/                     #   dsh 版本 x 协议层报告
-  docs/
-
-protocol/ 与 runtime/ 零 UI 依赖,可在 DevEco 单测环境 + Node 侧 contract-tests 双侧回归,是升级保险的载体。
-
----
-
-## 9. 路线图(v1.1:双速计划,2026-08-23 定稿)
-
-> v1.0 的 M0-M5 单线人力排期(16 周)已作废。现行路线为双速:工期估算模型(假设、P50/P90、关键路径、不可压缩项)见 SCHEDULE-AND-DECISIONS.zh.md 第 3 节。
-
-**分支策略**:git main = 壳版发布线(Web 组件加载官方 UI + Supervisor 托管,抢鸿蒙首发卡位);feature/protocol-native = 协议原生线(本方案 3-5 章全部设计)。协议 fixture 录制(本机 Mac 自主)与壳版 UI 开发**真并行**;原生模块逐个合流替换壳内 Web 视图——壳即 4.5 节 WebView 逃生舱,一石二鸟。
-
-| 阶段 | 工期 P50 | 交付 | 验收标准 |
-|---|---|---|---|
-| P0 链路 Spike | 3-5 天 | 协议 fixture 录制(本机 dsh web + Playwright);ArkTS HTTP+WS 客户端编译+单测;模拟器 Web 组件加载 dsh web 跑通(端口转发方案验证);hnp 常驻服务自启方式验证(真机) | 技术不确定性清零 |
-| P1 Web 壳首发版 | 6-9 天 | 工程骨架+Web 组件+生命周期;Supervisor(attach 探测 __DSH_BOOT__ + 端口策略 + 首启向导 + 0.2.1 移植清单);daemon 控制通道 + 升级管家 v1(手动升级+冒烟回滚);托盘/通知/签名打包 | **模拟器+真机可安装可演示(鸿蒙首发卡位)** |
-| P2a 协议适配层 | 4-6 天 | Typert 编解码+投影分发+重连代际+契约 fixtures 全量+单测(90% 覆盖目标) | 协议层 DevEco/Node 双侧回归通过 |
-| P2b 原生会话体验 | 8-10 天 | 消息流/Markdown 渲染器(最大单体)/工具卡片框架/审批弹层 | 日常可用,原生界面替换壳版主视图 |
-| P2c 功能完整 | 4-6 天 | todo/goal/plan/子代理/jobs/附件引用/目录选择/设置/主题 | 对照 2.1 清单 P0+P1 全绿 |
-| P2d 升级体系 | 3-4 天 | 契约矩阵 CI+版本适配器+能力协商+自动升级 | 官方发版 24h 内适配闭环演练通过 |
-| P2e 打磨发布 | 3-4 天 | 性能(万级事件会话)/异常恢复/本地化/分发 | 7x24 attach 稳定(代际重建覆盖) |
-| P3 支付阶段 | 后续另立方案 | 第 7 节全量实现 + 计费网关 | — |
-
-**全程 P50 约 7-9 周(首发壳版 2-3 周内交付)**。
-
----
-
-## 10. 风险与对策
-
-| # | 风险 | 等级 | 对策 |
-|---|---|---|---|
-| R1 | 鸿蒙 App 内无法 spawn node 子进程 | 已落定(原评级:高) | 2026-08-23 SDK 源码证实(附录 B):childProcessManager 仅支持 ArkTS 同步子进程。双轨托管(Attach + Guided Service)为唯一主路线;残余不确定性收窄为 hnp 常驻服务自启方式(P0 真机验证项) |
-| R2 | Typert 协议无公开稳定性承诺(developer preview) | 高 | 契约矩阵 + 适配器 + 能力降级 + WebView 逃生舱(4),四层防御 |
-| R3 | ArkTS 严格类型与 wire 动态 JSON 冲突 | 中 | 协议层收口为 JsonValue discriminated union + 生成式类型;卡片数据层 schema 校验先行 |
-| R4 | Markdown 流式渲染性能(长代码块) | 中 | 分片缓冲 + 节流重排 + 只高亮可视区(M4 专项) |
-| R5 | node-pty 缺失 → 无嵌入式终端 | 低 | Non-goal;命令输出以卡片形式完整展示;跟进 dsh-ohos-patch 的 PTY 适配进展 |
-| R6 | rc 版本破坏性变更导致升级失败 | 中 | 冒烟 + 自动回滚 + 版本锁定选项(已验证模式平移) |
-| R7 | npmmirror 与官方 registry 的包差异(esbuild shim 等) | 低 | 升级管家 pin 住已验证镜像路由;契约测试含安装冒烟 |
-| R8 | 鸿蒙 PC API 迭代(桌面能力仍在快速演进) | 中 | UI 层隔离平台能力到 platform/;最低 API 已定为 6.0.0(20),模拟器(API 26)无法验证 20 行为差异——编译期 compatible 检查作 CI 门禁 + 运行时 canUse 探测 + MatePad Edge 真机回归三重保障;HarmonyOS 7 悬浮窗等新能力仅作增强 |
-
----
-
-## 11. 测试与质量保障
-
-1. 协议层单测(DevEco):信封编解码、重连代际、投影分发、schema 降级——目标 90%+ 覆盖(升级保险的核心资产)
-2. 契约矩阵(Node CI):dsh 版本 x 协议层全组合冒烟 + fixture 回放(4.3)
-3. UI 快照测试:关键卡片(bash/edit/审批/todo)渲染快照,防样式回归
-4. 端到端剧本:Playwright 驱动官方 Web UI 与原生端同剧本对照(同一 Host,双客户端一致性)
-5. 升级演练:每次官方发版,在测试机演练「升级→冒烟→回滚」全链路
-6. 稳定性 soak:7x24 attach + 周期性代际断连注入
-
----
-
-## 12. 结论
-
-方案C 的可行性建立在四个已验证的事实上:一,DSH wire 协议是明确的公开边界且官方为非浏览器壳预留了接入设计;二,会话状态以 schema 校验的整体值投影下发,天然适配「通用渲染 + 降级」;三,DSH 后端已在 OpenHarmony arm64 实测跑通(Node hnp + esbuild WASM);四,「运行时升级管家」模式在 macOS 薄壳版上已经落地验证,可直接平移。
-
-因此:全原生 ArkUI 界面 + 协议适配层 + npm 通道运行时升级三者组合,可以在不 fork 任何官方代码的前提下,实现「原生体验」与「随官方随时升级」兼得。R1(App 内进程托管)已于 2026-08-23 落定(否定 In-App Spawn,双轨托管即主线);最大工程投入是协议契约体系(4.3),它同时是本产品相对社区桌面方案的核心壁垒——竞品调研(COMPETITIVE-RESEARCH.zh.md)证实:协议原生路线全网无先例,鸿蒙赛道完全空白,头部竞品 anywhere-labs(18.7k star)的「锁定固定版本」模式正是我们升级模型的打击面。
-
----
-
-## 附录 A:协议稳定性评估(基于官方发版数据,2026-08-22 核实)
-
-### 发版节奏(npm registry 实测)
-
-| 日期 | 版本 |
-|---|---|
-| 2026-08-10 | 0.0.1-rc.1(首发) |
-| 2026-08-11 | 0.0.1-rc.2 |
-| 2026-08-12 | 0.0.1-rc.5 |
-| 2026-08-13 | 0.1.0-rc.2 / rc.3 / rc.6 |
-| 2026-08-17 | 0.1.0-rc.7 |
-| 2026-08-19 | 0.1.0-rc.8 |
-| 2026-08-21 | 0.1.1-rc.1 / rc.2 |
-
-**11 天 10 个版本**(约每日一发);项目处于 0.x-rc(developer preview),0.x 阶段 SemVer 惯例允许 minor 位承载破坏性变更(0.0.1→0.1.0→0.1.1 两次 minor 跳位均在一周内)。
-
-### 判断
-
-1. **增量变更(新增端点/投影 key/事件)**:随每个功能版本必然发生(概率 ~100%)。已被 4.4 通用渲染 + 能力协商设计为零成本吸收(未知 key 降级显示,不阻塞不崩溃)。
-2. **破坏性变更(改名/语义变化/移除)**:rc 阶段**高频**——依据:官方文档明确 preview 期会有破坏性变更;源码可观察到协议迁移正在进行中(api-remotes 中「legacy API Proxy 方法与已迁移 Typert 方法共存」);各协议包普遍存在「Deferred Work」清单。估计:每两周窗口内消费面被波动的概率 40–60%;一个季度累计接近必然。
-3. **1.0 之后**:官方已内建契约纪律(严格 codec 校验、stateVersion 失效锚点、「撤回已观察的严格定义会显式失败而非静默弱化」),且浏览器/进程内/worker 三种传输消费者共存形成自我制衡——破坏性变更预计降至个位数百分比/版本。
-
-### 对目标的影响
-
-- 若协议长期不变:第 4.3 节契约体系退化为纯回归守卫,M3 由 3 周缩至约 1 周,维护成本趋零——目标全部可达。
-- 若协议如预期频繁演进:破坏性变更的影响被四层防御限定在「局部降级 + O(天) 适配」范围,目标仍可达,代价是持续的协议适配人力(预估每两周 0.5–2 人日)。
-
-**结论:不应以「协议冻结」为架构假设下注;应按「增量必然、破坏高频但有界」建模。契约测试体系是本方案中性价比最高的保险,不可因乐观而裁剪。**
-
----
-
-## 附录 B:R1 风险调研进展(2026-08-23,本地 SDK 源码判定)
-
-本地 SDK 26.0.0 的 @ohos.app.ability.childProcessManager.d.ts 源码阅读结论:官方子进程 API 仅支持启动 **ArkTS 源码子进程**(srcEntry 为 .ets 文件),且子进程只支持同步 ArkTS API、不能拉起任意二进制(node)。因此 3.2 节的 In-App Spawn 路线基本被否定,**双轨托管(Attach + Guided Service)确定为唯一主路线**,M0 验证项相应收窄为:hnp 终端常驻服务的开机自启方式。
-
-同日竞品调研(见 COMPETITIVE-RESEARCH.zh.md):全网不存在任何鸿蒙版 DSH 客户端,先发窗口以月计;头部桌面竞品 anywhere-labs(18.7k star,Electron 壳 + 锁定固定版本)因 Electron 在鸿蒙不可用,进入鸿蒙需整体重写壳。协议原生路线全网无先例——既是独占壁垒也是无先例可抄的风险。

+ 0 - 211
dsh-harmony/HANDOVER.md

@@ -1,211 +0,0 @@
-# DSH Harmony 项目交接文档(HANDOVER)
-
-> 目的:新会话开工前先读本文,10 分钟建立完整上下文。最后更新:2026-08-23 深夜(会话:dsh-harmony(plan) (mcp验证))
-
----
-
-## 0. 一句话使命与阅读顺序
-
-**使命**:在 HarmonyOS PC 上做 DSH(DeepSeek Harness)客户端——双速路线:先出 Web 壳版抢鸿蒙首发卡位,协议原生版并行分支推进,最终全原生 ArkUI + 永远跟随官方升级。
-
-阅读顺序(按需):
-1. 本文(全局状态与规则)
-2. DEVELOPMENT-PLAN.zh.md(技术方案 v1.1,含状态板)
-3. 干活前:knowledge-base/ 里与你任务相关的文件
-
----
-
-## 1. 关键决策记录(已定稿,勿重议)
-
-| # | 决策 | 依据/备注 |
-|---|---|---|
-| D1 | 双速路线:壳版先行(main 分支)+ 协议原生并行(feature/protocol-native 分支) | 竞品 anywhere-labs 18.7k★ 证明壳路线有市场;鸿蒙赛道完全空白 |
-| D2 | 命名:工程目录 dsh-harmony;bundleName com.dotouch.dshharmony;vendor dotouch;显示名 DSH Harmony | 已落地编译验证 |
-| D3 | API 版本:compatibleSdkVersion 6.0.0(20) / targetSdkVersion 26.0.0 | API 20 = HarmonyOS 6.0(用户要求支持鸿蒙 6 以上);hvigor 要求 API 10-25 用 X.Y.Z(API) 格式 |
-| D4 | 全程 AI 开发;工期 P50 约 7-9 周(壳版 2-3 周内首发) | 估算模型见 SCHEDULE-AND-DECISIONS.zh.md |
-| D5 | 协议原生 = 方案C:只消费官方 wire 协议,零分叉官方代码 | 协议已实证:POST /api/<method> 点号形式 + 双 WS 下行 |
-| D6 | 指定模型:profile 层锁定 provider/model,UI 只读(未实施) | 见方案 §6 |
-| D7 | 支付:后续阶段,本期只留接口占位 | 见方案 §7 |
-
-## 2. 当前状态(2026-08-23 深夜)
-
-### 已就绪的基础设施
-- ✅ 工程 /Users/eastudio/DevEcoStudioProjects/dsh-harmony:改名+API 配置+签名全部落地,scripts/build.sh 可产签名 HAP(已验证)
-- ✅ 本地 git:main(基线 2913ad6)+ feature/protocol-native(P2a-m1 提交 f3fefca)
-- ✅ MCP 工具链:harmonyos-mcp 0.3.0 已挂载(mcp__harmonyos__*),含 build/install/launch/screenshot/ui_dump 等
-- ✅ 模拟器:DSH_MB6 实例(HarmonyOS 6.0.0.48 / API 20 / 2in1),hdc 127.0.0.1:5555,完整闭环已验证(install→launch→app_state 前台确认)
-- ✅ 协议实证(P2a-m1):信封/端点格式/WS 帧结构全部破解,fixture 在 contract-tests/fixtures/
-
-### 两条工作线
-| 线 | 分支 | 状态 | 下一棒 |
-|---|---|---|---|
-| 壳版(P0/P1) | main(WIP 未提交) | 另一会话开发中:Supervisor.ets + Index.ets(+206行) + INTERNET 权限已存在 | 里程碑 commit 到 main;模拟器部署验证 |
-| 协议原生(P2a 起) | feature/protocol-native | m1 完成 | m2:端点清单枚举 + mock LLM 会话录制 + ArkTS 协议层骨架 |
-
-### 已知未解决问题
-- CASE-1(cases.md):deveco 会话模型选择不可用——服务端全绿,疑客户端重连不重放事件;用户判定非严重,观察中
-- CASE-2(cases.md):语音插件浅色模式黑底——**已修复**,等用户刷新验证
-
-## 3. 文件地图(全部精确路径)
-
-```
-工作区 /Users/eastudio/Documents/EvanAgent/dsh-harmony/
-├── DEVELOPMENT-PLAN.zh.md      # 技术方案 v1.1(§0 状态板 + 双速路线图)
-├── SCHEDULE-AND-DECISIONS.zh.md # AI 工期估算 + 三项决策依据
-├── COMPETITIVE-RESEARCH.zh.md  # 竞品调研(anywhere-labs 18.7k★ 等)
-└── knowledge-base/
-    ├── README.md               # 库索引 + 更新纪律
-    ├── build-recipe.md         # CLI 构建配方(Java/SDK 环境变量)
-    ├── emulator-notes.md       # 模拟器约束(账号鉴权)+ MCP 工具映射
-    ├── local-sdk-api-map.md    # SDK API 权威映射(含子进程限制结论)
-    ├── huawei-docs-catalog.md  # 官方文档 URL 目录(SPA,需浏览器读)
-    ├── cases.md                # 问题案例库(根因+教训)
-    ├── ecosystem-tracker.md    # 竞品数据快照
-    ├── fetch-ecosystem.py      # 生态数据刷新脚本
-    └── open-questions.md       # 待用户判断问题清单
-
-工程 /Users/eastudio/DevEcoStudioProjects/dsh-harmony/
-├── scripts/build.sh            # 一键构建签名 HAP
-└── contract-tests/
-    ├── capture/probe.mjs       # 协议探测脚本(Node 22+,零依赖)
-    ├── fixtures/               # P2a-m1 录制的协议 fixture
-    └── capture-workspace/      # 录制用 dsh web 实例的工作目录(空)
-```
-
-## 4. 环境事实与操作配方
-
-### 构建
-```bash
-cd /Users/eastudio/DevEcoStudioProjects/dsh-harmony && bash scripts/build.sh
-# 产出 entry/build/default/outputs/default/entry-default-signed.hap
-# 坑:必须注入 DevEco 自带 JAVA_HOME + DEVECO_SDK_HOME(脚本已固化);工程目录在工作区外,沙箱需提权
-```
-
-### 模拟器与部署
-- 模拟器实例 DSH_MB6(API 20)。**启动/重启需用户从 DevEco Device Manager 操作**(账号鉴权,CLI 走不通,见 emulator-notes.md)
-- 运行期间全自动化:mcp__harmonyos__device_list / install / launch / app_state / screenshot / ui_dump / wait_for_ui
-```
-
-### 协议探测(P2a 用)
-```bash
-# 拉起录制实例(独立端口,勿动 3080 的 GUI)
-cd /Users/eastudio/DevEcoStudioProjects/dsh-harmony/contract-tests/capture-workspace && dsh web --port 3099 &
-DSH_BASE=http://127.0.0.1:3099 node ../capture/probe.mjs
-```
-
-### 沙箱规则(重要)
-- 本会话沙箱 workspace-write:写 /Users/eastudio/Documents/EvanAgent 内无需提权;**写工程目录/DSWorkSpace/~/.dsh 等工作区外路径必须 sandbox_permissions: danger-full-access + 一句话理由**(用户已习惯批准,授权先例充分)
-- bash 的 ps 命令被沙箱禁(Operation not permitted),查进程需提权
-
-## 5. 工作规则(新会话必读纪律)
-
-1. **先查知识库再动手**:knowledge-base/ 没有的查官方文档;官方不明的记 open-questions.md 找用户判断,不得猜
-2. **git 纪律**:只提交自己负责的路径(壳版线:entry/ 壳相关;协议线:contract-tests/ + protocol/ ets 目录),绝不 git add -A(工作区有另一任务的 WIP);里程碑即 commit
-3. **会话开始先跑**:python3 knowledge-base/fetch-ecosystem.py 看 dsh 官方是否发新版(协议契约相关);git log + git status 看另一线进展
-4. **官方协议事实**(已实证,勿重验):POST /api/<method>(点号形式);信封 {type:client-request|server-response, rpcId, method, payload};WS 下行 /api/events.mux + /api/events.host 帧为 server-request 信封;host.describe 返回能力描述(version/provider/model/attachedSessions)
-5. **协议适配层设计约束**(CASE-1 教训):重连后必须主动拉取目录/设置快照,不能依赖事件重放(官方明确 no replay after reconnect)
-6. **升级管家移植清单**:对照 macOS dsh-desktop 0.2.1(spawn 前重解析路径 + ENOENT 重试 + childEnv PATH 增强)
-
-## 6. 下一步待办(按优先级)
-
-1. 壳版线:Supervisor/首启向导收尾 → 模拟器部署验证(install+launch+screenshot)→ 里程碑 commit 到 main
-2. 协议线 P2a-m2:端点清单枚举(从 dsh 安装包源码提取全部 RPC)→ mock LLM 会话事件录制(本地 OpenAI 兼容假端点 + baseURL 注入,零 token)→ ArkTS 协议层骨架 + 单测
-3. 待用户动作:确认 CASE-2 修复生效(刷新页面);OPEN-5(MatePad Edge 真机接入验证 compatible=20)
-4. 后续:P1 壳版首发 → P2b 原生会话体验(Markdown 渲染器是最大单体)→ 商业化(指定模型+支付,方案已预留)
-
-## 7. 常见坑速查(都已踩过,勿重复)
-
-| 坑 | 解法 |
-|---|---|
-| hvigor 报 Unable to locate Java Runtime | 注入 DevEco 自带 JBR(build.sh 已处理) |
-| compatibleSdkVersion 写 "20" 报 Specification Limit Violation | API 10-25 必须写 "6.0.0(20)" 格式 |
-| npm 装包 EPERM(~/.npm root 属主) | 用 --cache /tmp/xxx 独立缓存 |
-| 模拟器 CLI 启动报需登录账号 | 死路,走 Device Manager GUI 启动 |
-| Emulator -license accept 不能持久化全部协议 | 死路,勿再试 |
-| yes \| cmd & 挂住 bash 会话 | 用 nohup bash -c 完全脱离 |
-| macOS 无 timeout 命令 | 用 (cmd & sleep N; kill) 模式 |
-| run_code 长命令间歇性 description 丢失报错 | 拆小重试;写文件用 write 工具 + 数组拼接(勿用模板字符串) |
-| 华为文档站 SPA 抓不到正文 | 浏览器阅读 + 本地 SDK d.ts 为权威 |
-| DSH web 插件主题变量拼错不报错 | 对照 cases.md 里的官方 token 清单 |
-
----
-
-## 附:本会话完成事件时间线(2026-08-23)
-
-方案调研(竞品/协议/工期)→ 三项决策落地(改名/API/双速)→ 构建链打通(build.sh + 签名)→ git 双分支 → P2a-m1 协议实证(f3fefca)→ MCP 工具链接入(harmonyos-mcp)→ 6.0.0 镜像下载+DSH_MB6 实例 → 完整部署闭环验证 → 修复语音插件浅色主题 bug → 立案 CASE-1 → 本交接文档
-
----
-
-## 附:2026-08-23 深夜·安装包会话增量
-
-- **milestone-3(b74e93b)**:真机安装体验包完成。host+port 可配置、窗口标题修复、rport 隧道模型落地(LAN 直连被官方禁止,CASE-3)、引导页 15s 自动重连(已验证)
-- 交付物:工作区 dsh-harmony/dist/(DSH-Harmony-1.0.0-arm64.hap + INSTALL-GUIDE.zh.md)
-- 脚本:setup-device.sh(一键装机+隧道+启动,--fresh 切独立实例 3099)、dev-server.sh(隔离工作区实例)
-- 待用户:真机(MatePad Edge/PC)走完安装流程反馈体验;图标仍为模板默认(正式版待设计)
-
-## 附:2026-08-24 凌晨·真机安装通关会话增量
-
-- **milestone-4(24ac231)**:真机安装全链路打通(设备 6DP0225C08000520 运行中)
-- 路径:AGC 手动建调试 Profile(证书 auto_debug_19772439.cer + 真机 UDID)→ .p7b 换入 build-profile → 重建安装
-- 重大能力沉淀(CASE-7):CDP 浏览器自动化全配方(登录态引导/iframe 穿透/真实事件/键盘兜底),未来 AGC 操作均可复用
-- 用户侧事实:华为账号为企业认证(深圳大方无隅科技)——上架应用市场无账号门槛
-- 自动化 Chrome 可能还在运行(--user-data-dir=/tmp/agc-automation,调试口 9222),闲置可关
-
-## 附:2026-08-24·品牌替换会话增量
-
-- **web 端**:dsh-brand-client 插件上线(3099 验证全绿:字母标双插槽/favicon/title 守卫/官方文案清零);官方品牌经 profile 补丁同 id 重声明停用(CASE-8 全配方)。**用户 3080 GUI 需重启生效**
-- **macOS 桌面端**:DSH Desktop 0.2.2 重建(icns+托盘字母标,dist/DSH-Desktop-0.2.2-arm64.dmg),需重启 App 生效
-- 遗留:鸿蒙 App 图标仍为鲸鱼版(违反侵权规避清单),待换 assets/logo/exports/icon-1024
-
-## 附:2026-08-24·DoTouchAI 命名会话增量
-
-- 命名定稿落地(依据 assets/store/monetization-design.zh.md 商标分析):应用显示名 **DoTouchAI**(备选 Agent鸿蒙端仅兜底),品牌背书 **智价云**(kailin 标,assets/logo/appicon/)
-- **web 端**(dsh-brand-client v0.1.3,3099 全绿):kailin 标双插槽/title/favicon/文案全部 DoTouchAI,旧品牌清零
-- **鸿蒙端**:显示名与窗口标题已改 DoTouchAI,图标换 kailin 标(白底+透明前景分层),模拟器部署验证通过(自动重连正常)
-- **macOS 桌面端**:改名操作被用户拒绝,保持 DSH Desktop 原名——如需改名请明确指示
-- 3099 验证实例运行中;3080 主实例重启后生效
-
-## 附:2026-08-24·会话冲突排查与分工(02:08)
-
-- **撞车事件**:DoTouchAI 改名被两个会话同时执行(string.json 双改、构建重复)。结果一致无损坏,已对齐
-- **分工边界(后续会话遵守)**:
-  - 鸿蒙工程(strings/图标/构建/部署/深色资源)→ 命名会话收尾(dark/ 目录为其 WIP,kailin 深色适配,勿动勿提交他人文件)
-  - web 品牌插件(DSWorkSpace/dsh-brand-client)→ 品牌会话独占,v0.1.4 DoTouchAI 已全绿(title/mark×2/文案/旧名清零/无插件错误)
-  - macOS 桌面端改名被用户否决,保持 DSH Desktop
-- **冲突排查方法沉淀**:读文件前先 stat mtime;编辑报 file changed since read = 有会话正在动同一文件,先重读再决定,勿盲目重试;构建产物 mtime 突新 = 他会话正在部署,让行
-
-## 附:2026-08-24·C 版定稿会话增量(02:55)
-
-- **Logo 终稿**:DoTouchAI_icon_C_1024.png(dotouchai_logo/ 目录,深蓝紫底+亮蓝主图形),三端已统一(milestone-6)
-- 鸿蒙:分层/启动/深色图标全换 C 版,真机已部署验证(标题 DoTouchAI + Web 加载正常)
-- web:插件 v0.1.5(C 版圆角标 mark/favicon),3099 验证绿
-- macOS:DoTouchAI 0.2.4(C 版圆角 icns + 亮度剪影托盘),dist/DoTouchAI-0.2.4-arm64.dmg
-- **新机品牌未更新的根因**:3080 主进程是 22:57 启动的老进程(品牌插件之前)→ App 内网页内容为官方品牌。**须重启 3080 服务**(AI 不能自杀宿主,用户操作)后 App 内即刻变 DoTouchAI
-- 与命名会话的图标分歧:milestone-5 的消息块图标被用户否决,C 版为准
-
-## 附:2026-08-24·boot 闪屏品牌修复(03:10)
-
-- 问题:进入页面瞬间闪现 HARNESS(boot 卡片在插件 apply 之前渲染,apply 期替换来不及)
-- 解法(dsh-brand-client v0.1.6):替换逻辑提前到**脚本顶层执行**(HTML 解析期即装 MutationObserver),boot 卡片创建瞬间换字;初始 <title> 闪变同修;boot 卡片移除后观察器自动撤退(不耗运行时性能)
-- 覆盖文案:HARNESS→DoTouchAI、Loading plugins…→正在启动 DoTouchAI…、Failed to load plugins→插件加载失败
-- 验证:CDP 独立 tab(避开另一会话的 AGC 操作)导航后 150ms×22 高频采样,harnessFlash=false / dotouchaiSeen=true / title=DoTouchAI
-- 注意:自动化 Chrome 被上架会话占用中(AGC 页面),共用时开独立 tab 且用完关闭
-
-## 附:2026-08-24·上架材料收尾与会话统一(版本管理)
-
-- **命名统一**:全项目显示名统一为 **DoTouchAI**(连写),修正早期「Dotouch AI」带空格写法——覆盖 `assets/store/` 全部文档 + 本交接文档早期「命名会话增量」段落(已 sed 全局替换,无残留)
-- **上架材料交付**(`assets/store/`,均已定稿并加版本头):
-  - `appgallery-listing.md` v3.0 — 上架文案(DoTouchAI 定名 + 上架前核对进度表)
-  - `promo-copy.zh.md` v2.0 — 推广文案
-  - `monetization-design.zh.md` v2.0 — 商业化设计(与 `dsh-harmony/COMMERCIALIZATION-PLAN.zh.md`、`PRICING.zh.md` 互补)
-  - `privacy-policy.zh.md` / `user-agreement.zh.md` v1.0 — 隐私政策/用户协议模板
-  - `launch-checklist.zh.md` v1.1 — 上架执行时间线
-  - `MIT-LICENSE.txt` + `about-page-copy.md` — 开源合规物料(DeepSeek Harness MIT 全文 + 关于页文案)
-  - `screenshots/01/02/03` — 改名后重拍的 3 张交互截图
-  - `CHANGELOG.md` — 版本记录(单一事实源,可回溯)
-- **版本管理约定**:`assets/store/` 文档采用 `v<major>.<minor> + 日期 + 摘要` 版本头,历史见 `CHANGELOG.md`;工程侧仍以 git milestone 为准
-- **遗留待办**(详见 `appgallery-listing.md` 上架前核对表):
-  1. MIT 关于页工程落地(内容已备,`about-page-copy.md`,待接)
-  2. 隐私政策/用户协议托管到 kailin.com.cn
-  3. 完全干净截图:3080 主进程须重启(品牌插件才生效)后,用全新空工作区重拍
-- **分工边界重申**:本会话只负责 `assets/store/` + `assets/logo/`(文档/合规/素材),不碰鸿蒙工程(dark/ 为命名会话 WIP)、web 品牌插件(品牌会话)、macOS 工程

+ 0 - 149
dsh-harmony/PRICING.zh.md

@@ -1,149 +0,0 @@
-# DoTouchAI 商业收费标准细则
-
-> 版本:v1.0(2026-08-24)|上游文档:COMMERCIALIZATION-PLAN.zh.md(商业模式总纲)
-> 数据基线:DeepSeek API 2026-08-17 调价后实价 + 华为云空间官网实价 + 六个竞品订阅锚点(均 2026-08 实测调研)
-
----
-
-## 0. 定价环境的三个硬事实(2026-08 实测)
-
-**事实一:模型 API 正在大幅涨价。** DeepSeek 8 月 17 日调价(V4 Pro 高峰输出 27 元/M,涨幅 350%),8 月 23 日再调峰谷规则(周末全天低谷价)。国产大模型集体告别白菜价。任何「全模型不限量」的低价套餐在当前成本下必然亏损——**收费机制必须内置计量与公平使用量**。
-
-**事实二:订阅制普遍重度补贴。** 行业实测数据:重度用户 API 等价成本 $2,180/月,订阅只收 $200(补贴 91%)。所有玩家(Claude/Cursor/GLM)都靠公平使用量控制边界,无真正不限量。
-
-**事实三:国内价格锚点带已成形。** 豆包专业版 68 元/月是国内 C 端 AI 会员上限锚;GLM Coding Plan 18 美元起是「聚合订阅」最近似形态;海外 Pro 档普遍 $20≈145 元。
-
-### 0.1 上游模型成本表(DeepSeek 官方,每百万 tokens,元)
-
-| 模型 | 时段 | 输入(缓存未命中) | 输入(缓存命中) | 输出 |
-|---|---|---|---|---|
-| V4 Flash | 高峰 | 3 | 0.1 | 9 |
-| V4 Flash | 空闲/周末全天 | 1.5 | 0.05 | 4.5 |
-| V4 Pro | 高峰 | 9 | 0.3 | 27 |
-| V4 Pro | 空闲/周末全天 | 4.5 | 0.15 | 13.5 |
-
-混合均价(按 50% 高峰/50% 空闲估算,实际因低谷路由更低):Flash 输出 6.75、Pro 输出 20.25 元/M。**输出 token 是成本大头,agent 场景输出量远高于聊天——计量必须以输出为主。**
-
----
-
-## 1. 收费总表
-
-### 1.1 免费层(获客引擎,永久免费)
-
-| 项 | 额度 |
-|---|---|
-| 对话次数 | 100 次/月(新会话计次,恢复历史会话不计) |
-| 可用模型 | 基础模型(Flash 级,固定) |
-| 单会话限额 | 累计输入 40 万 token / 输出 6 万 token(超出自动截断并引导) |
-| 频控 | 每日新会话上限 10 个 |
-| 云同步 | 1GB |
-
-成本核算:轻量会话(6 轮对话)约 0.14 元/次;满额重度会话(达单会话上限)约 0.70 元/次。典型免费月活用户 30 次会话(七轻三重)成本约 **9 元/月**;满额边界 70 元/月(靠频控+风控抑制,属可接受的获客成本上限)。
-
-### 1.2 会员(指定套餐):一键接入全部模型,随时切换
-
-计量机制:**算力点数**——会员内所有模型统一用点数计量,换模型不换钱包:
-
-| 规则 | 定义 |
-|---|---|
-| 1 点 | = 1,000 个输出 token(Flash 级基准) |
-| Pro 级模型 | 输出按 3 倍计点 |
-| 输入折算 | 10 个输入 token 计 1 点;**缓存命中的输入不计点**(奖励长会话,对齐我方成本结构) |
-
-| 档位 | 月费 | 年费 | 含点数 | 附加 |
-|---|---|---|---|---|
-| **会员版** | **49 元/月** | 468 元/年(合 39/月) | 5,000 点/月 | 云同步 +10GB、全模型目录、优先客服 |
-| **Pro 版** | **129 元/月** | 1,248 元/年(合 104/月) | 12,000 点/月 | 云同步 +100GB、优先队列、新模型抢先体验 |
-| 加油包(消耗型) | 9.9 元 | — | 1,000 点(当月有效+1 个月) | 不限购买次数 |
-
-点数够不够用(用户视角):5,000 点 ≈ 轻聊 500 次或重度 agent 会话 70 次;12,000 点 ≈ 重度 agent 会话 170 次或 Pro 级重度会话 55 次。
-
-成本核算(毛利红线:成本 ≤ 定价 70%):
-
-| 档位 | 最坏用法 | 成本 | 毛利率 |
-|---|---|---|---|
-| 会员 49 元 | 5,000 点全烧 Pro 输出 | ≈34 元 | 31% |
-| 会员 49 元 | 典型混合(80% Flash) | ≈20 元 | 59% |
-| Pro 129 元 | 12,000 点全烧 Pro 输出 | ≈81 元 | 37% |
-| 加油包 9.9 元 | 全烧 Pro 输出 | ≈6.8 元 | 32% |
-
-(低谷路由红利未计入:网关自动将可延迟流量导向周末/夜间低谷价,成本再降 30-50%,是毛利率的隐藏安全垫。)
-
-### 1.3 云同步存储(对标 iCloud / 华为云空间的分级方式)
-
-| 档位 | 容量 | 月费 | 年费 |
-|---|---|---|---|
-| 免费 | 1GB | 0 | 0 |
-| 基础 | 20GB | 3 元 | 30 元 |
-| 标准 | 100GB | 8 元 | 80 元 |
-| 扩展 | 500GB | 25 元 | 250 元 |
-
-对照锚点:华为云空间 50GB 6 元 / 200GB 18 元 / 2TB 68 元(官网实测);iCloud 同级近似。我们的容量定价低 30-40%,依据:会话文本同步的成本结构远低于全设备备份,低价即是差异化武器。备选方案(保守对齐):50GB 5 元 / 200GB 15 元 / 2TB 55 元,二选一后在灰度期 A/B 验证。
-
-配额满行为:新增同步暂停 + 系统通知 + 用量条 + 升级引导;本地数据与历史已同步数据绝不受影响。
-
-### 1.4 组合与促销
-
-| 项 | 设计 |
-|---|---|
-| 首发早鸟(30 天限量) | 年付会员 299 元(合 25/月,前 1,000 名) |
-| 首月体验 | 会员首月 9.9 元 |
-| 邀请奖励 | 每邀 1 人双方各 +500 点(每月上限 2,000 点) |
-| 学生认证 | 会员 25 元/月(学信网/学生证认证) |
-| 续订规则 | 随时取消,周期末生效;续订前 3 天提醒 |
-
----
-
-## 2. 定价依据(为什么是 49 元)
-
-| 竞品 | 价格 | 形态 | 与我们的差异 |
-|---|---|---|---|
-| ChatGPT Plus / Claude Pro | $20≈145 元 | 单厂全量订阅 | 无原生客户端价值、无云同步捆绑 |
-| Cursor Pro | $20 | IDE 内 Agent | 绑定 IDE 形态,无鸿蒙端 |
-| GLM Coding Plan | $18 起 | 聚合订阅(最近似) | 仅模型接入,无客户端/同步产品 |
-| 豆包专业版 | 68 元 | 国内 C 端上限锚 | 通用助手,非 agent 工作台 |
-| **DoTouchAI 会员** | **49 元** | 多模型 + 原生 agent 客户端 + 云同步 | 三合一价值,低于所有海外档与豆包 |
-
-49 元处于国内「专业工具订阅」心理甜区(29-69 元带);相比 GLM Coding Plan 的溢价由客户端产品力与同步服务覆盖;相比豆包的折价由工具属性(非泛娱乐)合理化。
-
-## 3. 渠道价与费率(IAP 合规)
-
-| 渠道 | 抽成(以最新协议为准) | 策略 |
-|---|---|---|
-| 华为应用市场 IAP | 订阅类通常约 30%(有优惠档) | 上架版必须走 IAP(合规红线) |
-| 官网/侧载直连(支付宝/微信) | 约 0.6% | 同价销售 + 送 10% 点数补贴,引导长期用户走直连 |
-| Apple IAP(未来) | 15-30% | 苹果端定价单独核算覆盖抽成 |
-
-IAP 渠道毛利挤压测算:49 元会员经 IAP 到手约 34-42 元,最坏用法成本 34 元——**IAP 渠道毛利率趋零**。对策:a) 会员默认年付引导(年付 IAP 费率摊薄);b) 加油包与存储等高毛利品类补利润;c) 直连通道点数补贴持续导流。
-
-## 4. 调价与成本传导机制(应对涨价潮的必要条款)
-
-1. **价格保护**:已购周期内不调价;调价提前 30 天公告
-2. **点数基准季度评审**:模型官方 API 调价累计超 ±20% 时,新购订单的点数基准相应调整(存量权益不变)
-3. **成本对冲三件套**:低谷路由(周末全天+夜间自动走半价时段)、缓存强化(DSH 的 KV-cache 友好架构天然高命中,命中输入零点数零成本)、模型目录动态管理(成本异常的模型临时下架或调整倍率)
-4. **透明度**:用量页实时展示点数消耗明细与等效成本,建立信任(对标各家 Usage 页惯例)
-
-## 5. 退款与账号规则
-
-- 订阅 7 天内且点数消耗 <10% 可全额退;消耗超 10% 按比例退
-- 账号注销:数据 30 天冷静期后删除;订阅到期末生效
-- 家庭共享(v2):会员点数共享池 + 儿童模式
-
-## 6. 收入结构预测(第一年,保守假设)
-
-| 假设 | 值 |
-|---|---|
-| 免费注册用户 | 5 万 |
-| 付费转化率 | 3%(会员为主) |
-| ARPU(会员) | 42 元/月(月年付混合) |
-| 模型成本/付费用户 | 20 元/月(混合用法) |
-| 免费层成本 | 9 元/活跃免费用户/月(月活按 40%) |
-
-测算:订阅收入 ≈ 1,500 人 × 42 × 12 ≈ 75.6 万/年;模型成本 ≈ 36 万 + 免费层 ≈ 21.6 万;存储与其他成本 ≈ 5 万;**第一年经营性毛利约 13 万元,盈亏平衡点在转化率 2.2%**——商业模型成立且对补贴依赖低,核心变量是获客效率与免费层风控。
-
-## 7. 待决策项
-
-1. 存储档位:激进版(3/8/25 元)vs 对齐版(5/15/55 元),建议灰度 A/B
-2. 点数命名与展示:算力点 / 算力值 / Do 点——影响用户感知,需产品决策
-3. 早鸟限量名额与开放节奏(建议 1,000 名 + 倒计时页)
-4. IAP 到手毛利趋零的会员档是否在市场版隐藏年付引导(合规边界需华为审核侧确认)

+ 0 - 108
dsh-harmony/SCHEDULE-AND-DECISIONS.zh.md

@@ -1,108 +0,0 @@
-# 决策建议与 AI 开发工期估算(回应 OPEN-1/2/3)
-
-> 调研日期:2026-08-23 | 依旧只调研不行动:本文件全部为建议,未改动 DSHohos 工程任何配置
-
----
-
-## 1. 命名建议(OPEN-1)
-
-### 现状
-工程名 DSHohos,bundleName 为 com.example.dshohos(DevEco 模板占位)。
-
-### 生态命名惯例(实测归纳)
-
-DSH 生态的事实命名模式是 **dsh-<平台/形态>**,且已被官方生态认可:
-
-| 项目 | star | 命名 |
-|---|---|---|
-| dsh-TUI(官方公众号收录) | 2,343 | dsh-形态 |
-| dsh-web-ui | 5,668 | dsh-形态 |
-| dsh-market | 1,936 | dsh-功能 |
-| dsh-desktop / dsh-desk | 21 / 16 | dsh-平台 |
-| dsh-ohos-patch(鸿蒙 CLI 适配) | 5 | dsh-平台(ohos) |
-
-### 建议
-
-- **推荐:DSH Harmony(仓库名 dsh-harmony)**。理由:a) 精确对齐生态 dsh-<平台> 惯例;b) Harmony 是华为官方平台词(HarmonyOS),而我们目标是 HarmonyOS PC 商业版——ohos 实为 OpenHarmony 开源社区缩写,语义上略偏;c) 开发方案文档与工作区目录已在用 dsh-harmony,一致性好。
-- **保留 DSHohos 也完全可行**:语义无误、已有工程在手,切换有成本。两者差异主要在生态辨识度,不影响功能。
-- **bundleName 无论选哪个都必须在首发前改**:com.example.* 是保留前缀,华为应用市场不接受。建议自有域名反写(如 com.<你的域名>.dshharmony),此项等你定域名/厂商名后再改,不急。
-- **审核风险提示**:应用名含 DSH/DeepSeek 指向词,上架审核可能要求品牌资质(anywhere-labs 特意声明与 DeepSeek 无隶属即为此因)。建议准备一个中性备选显示名(如「鸿蒙智能体工作台」)作为 Plan B,首发若受阻即切换。
-
----
-
-## 2. API 版本建议(OPEN-3)
-
-### 版本对应关系(官方 Release Notes + 社区数据交叉确认)
-
-| API | 正式版本 | 渗透情况 |
-|---|---|---|
-| 20 | HarmonyOS 6.0.0 | 当前主力存量(6.1 占比仅约 23%,大量设备在 6.0) |
-| 23 | HarmonyOS 6.1.0 | 推广中 |
-| 26 | HarmonyOS 7(Beta,本机模拟器即此版) | 未大规模推送 |
-
-### 建议:compatibleSdkVersion = 20,targetSdkVersion = 26
-
-- **compatible = 20(HarmonyOS 6.0.0)**:精准命中「必须支持鸿蒙原生 6 以上」——再低(17/18)覆盖 5.x PC 但你已排除;再高(23)会把 6.0 主力存量挡在门外
-- **target = 26(HarmonyOS 7)**:用最新工具链编译、按最新平台行为对齐(官方推荐模式:target 高、compatible 低,向前兼容运行)
-- **本地已验证可行性**:SDK 20 中本产品所需全部 12 个 API 模块(http/webSocket/socket/UIAbility/window/webview/picker/preferences/relationalStore/notificationManager/asset/childProcessManager)齐备且 API 面完整(各文件最大 @since 均 ≤ 20)
-
-### 兼容性纪律(开发方案 8 节技术选型的补充)
-
-1. 模拟器是 API 26,**无法本地验证 API 20 行为差异**——三重替代:a) 编译期检查(DevEco 对超过 compatibleSdkVersion 的 API 调用会标红/告警,作为 CI 门禁);b) 运行时 canUse 特性探测;c) HarmonyOS 6.x 真机回归每阶段一轮(需你配合)
-2. HarmonyOS 7 (API 26) 新增的悬浮窗/闪控球等能力**只作增强**(如审批提醒悬浮窗——这是个不错的差异化点),基础功能绝不依赖 21+ API
-3. 每次发版前跑一次全 API 调用扫描(脚本可自动化:grep 所有 @ohos.* 调用对照 @since 表)
-
----
-
-## 3. AI 开发工期估算(OPEN-2,双速策略)
-
-### 估算模型(先声明假设,才谈得上严谨)
-
-**AI 加速项**(本 harness 可自主完成,5-10 倍于人日产出):
-- 全部代码产出(ArkUI 页面/组件、协议适配层、Supervisor/升级管家移植)——本机可直接跑 hvigorw 编译自校验
-- 协议 fixture 录制:本机 dsh web + Playwright 抓 /api 流量,全自主
-- 单元测试与契约测试编写
-
-**不可压缩项**(决定下限):
-- 真机验证回路:MateBook Pro 模拟器已部署(HarmonyOS 7 Beta),构建→部署→hdc 截图→读图验证的闭环 AI 可自主跑;但 **HarmonyOS 6.x 真机回归**与 **hnp 常驻服务安装验证**需你执行命令,每轮异步等待 0.5-2 天
-- 关键决策等待(如本文件三项决策):每个 0.5-1 天
-- 未知坑探索(ArkTS 严格类型边界、PC 窗口行为):P50 每阶段 1-2 天冗余
-- 应用市场审核:外部因素 3-7 天,不在开发估期内
-- dsh 官方 rc 演进的协议适配:随发处理,每次约 0.5-1 天,不在估期内
-
-### 双速计划排期
-
-| 阶段 | 内容 | 工期(工作日,P50) | P90 | 里程碑 |
-|---|---|---|---|---|
-| P0 链路 Spike | 协议 fixture 录制;ArkTS HTTP+WS 客户端编译通过;模拟器加载 dsh web 验证;hnp 常驻服务方案真机验证 | 3-5 | 7 | 技术不确定性清零 |
-| P1 Web 壳首发版 | 工程骨架+Web 组件;Supervisor(attach+首启向导);daemon 控制通道+升级管家 v1+冒烟回滚;托盘/通知/签名打包 | 6-9 | 12 | **鸿蒙首发卡位**(对齐 macOS 薄壳产品形态) |
-| P2a 协议适配层 | Typert 编解码+投影分发+重连代际+契约 fixtures 全量+单测 | 4-6 | 8 | 协议层 90% 覆盖 |
-| P2b 原生会话体验 | 消息流/Markdown 渲染器(最大单体)/工具卡片/审批弹层 | 8-10 | 13 | 日常可用,替换壳版主界面 |
-| P2c 功能完整 | todo/goal/plan/子代理/jobs/附件引用/设置/主题 | 4-6 | 8 | 对照功能基线 P0+P1 全绿 |
-| P2d 升级体系 | 契约矩阵 CI+版本适配器+能力协商+WebView 逃生舱 | 3-4 | 6 | 官方发版 24h 内适配闭环 |
-| P2e 打磨发布 | 性能(万级事件)/异常恢复/本地化/签名分发 | 3-4 | 6 | 稳定版 |
-
-### 汇总
-
-| 路线 | 总工期 P50 | 总工期 P90 | 对比原人力估算(16 周) |
-|---|---|---|---|
-| 双速(先壳后原生,推荐) | **约 7-9 周** | 约 10-11 周 | 压缩近一半,且 2-3 周即有首发卡位与真实反馈 |
-| 单速(直接方案C) | 约 6-8 周 | 约 9-10 周 | 省去壳版 2-3 周,但放弃首发卡位与早期用户验证 |
-
-### 关键路径与并行度
-
-1. **关键路径**:hnp 常驻服务真机验证(P0)→ daemon 控制通道(P1)→ 协议 fixture 全量(P2a)→ Markdown 渲染器(P2b)
-2. **可并行**:协议层与 UI 组件可由子代理并行推进(协议层零 UI 依赖的设计正为此);真机回归等待期与下一阶段开发重叠
-3. **最大不确定项**:Markdown 流式渲染器性能(长代码块场景)——P2b 内已含 2 天探索冗余,若超预期则首版降级为「完成态高亮」策略
-
-### 结论
-
-双速策略下:**2-3 周出鸿蒙首发壳版(抢唯一空窗),7-9 周达成完整原生版**。你判断的「AI 开发用不了那么久」成立——原 16 周是按人力估算的保守值,AI 模式下瓶颈从编码转移到真机验证与决策等待,本估算已按此重排。
-
----
-
-## 附:本轮调研新增事实
-
-- 本机已部署 MateBook Pro 模拟器(HarmonyOS 7.0.0 Beta1 / API 26 / 2in1 形态,2026-08-23 配置)——AI 验证闭环可自主运转
-- hdc v3.2.0e 可用(DevEco SDK toolchains 内),当前无真机连接
-- HarmonyOS PC 始于 5.0.5(17)(2025-05 首发),HarmonyOS 6.0(20) 为当前主力版本,7(26) 尚在 Beta