Skip to content

适配 Harness 0.1.2-alpha.3 - #264

Open
yaojin3616 wants to merge 28 commits into
mainfrom
claude/harness-alpha3-adapt-adfd61
Open

适配 Harness 0.1.2-alpha.3#264
yaojin3616 wants to merge 28 commits into
mainfrom
claude/harness-alpha3-adapt-adfd61

Conversation

@yaojin3616

@yaojin3616 yaojin3616 commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

概述

将 dsh-desktop 从锁定的 Harness dsh-v0.1.2-alpha.1 升级到 dsh-v0.1.2-alpha.3(commit dd6322d)。跳过 alpha.2,直接对比 alpha.1 → alpha.3。上游仍未发布到 npm,继续用仓库内 file: tarball 桥接。

详见 docs/harness-0.1.2-alpha.3-upgrade.md

主要改动

  • 本地打包packages/harness-0.1.2-alpha.3/(9 vendor + 244 dsh tarball),删除旧的 packages/harness-0.1.2-alpha.1/
  • 依赖package.json 全部 @deepseek-ai/* 切到 alpha.3;删除上游已移除的 dsh-agent-spine-demo;5 个新增上游闭包包(dsh-dequedsh-util-timedsh-util-valuesdsh-client-ui-scheduledsh-session-turn-outline)提升为 file: 直接依赖;3 个桌面插件包 peer 范围对齐 ^0.1.2-alpha.3;lockfile 重生成
  • 补丁(19 个):逐个 rebase 到 alpha.3。含 CSS module hash 迁移(model-selection _2WBGbq_Ydf5zq_、workspace koIWyW__zvJpq_、settings-models uVX9wq_A_4Mua_ / oGvYtW__2CJT8a_、agent-preset _4FiJda_YgMYBq_);交还给上游的能力(submitLabelKey prop、builtInGroup/customGroup i18n、onboarding apioperations);顺带修掉 alpha.1 补丁自身的 dual-hash bug 和 picker 类误挂
  • 永久删除会话:把 PR fix: add permanent session deletion #31 的能力迁移到 alpha.3 新架构。dsh-api-session-controller 统一处理删除 RPC 和普通 Agent 释放;JSONL persistence 删除权威会话记录;workspace registry 清理会话索引。工作区文件保留,UI 明确提示不可撤销;子 Agent 或其他 capability 持有的会话拒绝删除
  • 会话持久化:上游删除可选的 SQLite 权威存储后端。桌面端一直用 JSONL,历史会话可见性零影响;清理了过时的 session-persistence-sqlite 排除项
  • 主机 API / 移动端桥接:逐一比对确认 alpha.3 上游无契约变化(src/main/** 一行未改);上游仅给错误码加了 gateway/ 前缀,桌面端不消费。永久删除是桌面补丁新增的 Typert RPC,不改变现有桥接端点
  • 文档:新增升级记录;6 份 README 版本字样更新

验证

  • npm ci:19 个 patch-package 补丁全部干净应用
  • npm test:76 files / 569 tests,0 失败
  • npx vitest run test/session-delete-patch.test.ts:9 tests,0 失败;覆盖补丁存在性、双语危险提示和 JSONL 精确删除
  • npm run typecheck:通过
  • npm run build:通过
  • 原 alpha.3 升级验证:scripts/verify-harness-auth.mjs(401 → 303 → 200);实际启动 Electron(harness web 127.0.0.1:43128 返回 200,profile 中 4 个桌面插件全部挂载,无 plugin-recovery)

剩余工作

上游发布到 npm 后:package.json 换回语义化版本、删除 packages/harness-0.1.2-alpha.3/、从真实 registry 重生成 lockfile、重跑验证。

重命名 alpha.1 -> alpha.3 并重建 18 个 hunk:
- Seat CSS hash _4FiJda_ -> YgMYBq_,picker/search/awesome 类改挂 AgentPresetSeat_module_css_default
- Section 追加类沿用桌面命名空间 rtSEdW_(未随上游变化)
- 丢弃 builtInGroup/customGroup i18n 键(alpha.3 已原生提供)
- 新增本地 messageOf 助手(alpha.3 产物不再内联该函数)
- onSelect 的 Awesome 链接分支保留(绕开上游 select 失败 toast)
@yaojin3616

Copy link
Copy Markdown
Contributor Author

最新 Windows x64 检查中,本 PR 新增的 test/session-delete-patch.test.ts 9 项全部通过,npm ci 也确认 19 个补丁全部可重放。

工作流最终失败在刚合入 main 的 PR #251 路径:src/main/state/plugin-removal.ts:2070 调用了未定义的 markPending,触发 ReferenceErrortest/plugin-removal.test.ts)。当前 origin/main 中只有该调用、没有 markPending 定义;这与本次 Harness/session patch 无关,因此本 PR 未混入 plugin-removal 修复。

@yaojin3616
yaojin3616 force-pushed the claude/harness-alpha3-adapt-adfd61 branch from 709e48e to f13001b Compare September 1, 2026 11:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants