Skip to content

[ZCode适配] 新增sessionId支持 + ZCode插件结构 + 自动同步上游机制 - #5

Open
yyz0313 wants to merge 2 commits into
hootandy321:mainfrom
yyz0313:zcode-plugin
Open

[ZCode适配] 新增sessionId支持 + ZCode插件结构 + 自动同步上游机制#5
yyz0313 wants to merge 2 commits into
hootandy321:mainfrom
yyz0313:zcode-plugin

Conversation

@yyz0313

@yyz0313 yyz0313 commented Aug 15, 2026

Copy link
Copy Markdown

Changes

新增:ZCode 插件适配(二开说明)

本项目是基于 hootandy321/dsh-Agentlink二次开发,在保留全部原有 Codex 功能的基础上,新增了以下 ZCode 专属内容:

  1. .zcode-plugin/plugin.json — ZCode 插件 manifest,含 MCP 服务器配置、用户可配置的 DSH Host URL 和 agent preset
  2. skills/dsh-collab/SKILL.md — ZCode 专用协作技能,包含完整的工具调用指南、工作流和安全规则
  3. scripts/install.ps1 — ZCode 一键安装脚本,自动检测环境并写入配置
  4. .github/workflows/sync-upstream.yml — 自动同步上游更新的工作流,每 6 小时检查一次

新功能:sessionId 参数

  • dsh_delegate 工具新增可选 sessionId 参数,支持复用已有的 DSH 会话
  • 适用于需要续接上一次对话的长期任务场景

说明

  • 本仓库 main 分支始终与上游保持同步
  • 上游的新功能会自动通过 GitHub Action 同步到本仓库
  • 我们的 ZCode 适配文件不受上游影响,始终保留

请原作者审阅,如有问题随时沟通。

yyz20 added 2 commits August 16, 2026 03:01
Add optional sessionId parameter to BridgeService.delegate() and MCP tool schema, enabling session reuse across delegation calls.

Add .zcode-plugin/ manifest with MCP server config, user-configurable Host URL and agent preset.

Add skills/dsh-collab/SKILL.md with ZCode-specific collaboration guidance.

Add scripts/install.ps1 for one-click ZCode MCP registration.
@hootandy321

Copy link
Copy Markdown
Owner

感谢你的 PR,也感谢你对 dsh-Agentlink 的兴趣!这次 Review 的结论是:当前形态无法合并,但你的工作里有价值的部分我们很想用正确的方式承接,请往下看。

不能合并的原因(仓库卫生)

  1. 两个 README 被编码损坏README.md 被写入 BOM 且大量字符变成乱码(如 鈥?),README.zh-CN.md 整篇中文成了 GBK 误读乱码。这是编辑器编码配置问题,请检查你的编辑器是否以 UTF-8 保存。
  2. PR_BODY.md 被误提交进了仓库根目录。
  3. README 中"本仓库是 hootandy321/dsh-Agentlink 的二开 fork"的内容放错了位置——这段话只应该存在于你的 fork(yyz0313/dsh-Agentlink)的 README 里,不应提交到上游。
  4. sync-upstream.yml 不能进入上游:它每 6 小时自动 merge 并直接 push 到 main,在上游仓库等于绕过 review 的自动写通道。fork 同步上游用 GitHub 自带的 "Sync fork" 即可,不需要这个 workflow。
  5. plugin.jsonicon 指向了 cdn.z.ai 的 favicon,品牌归属需要澄清。

关于 sessionId 参数

这个功能的方向我们理解,但目前不会接受:多调用方架构文档的 §10.2 已经明确——在 attach/resume 语义(存在性校验、工作目录来源、并发冲突行为等)设计完成之前,不给 dsh_delegatesessionId。它不是一个参数的事,背后是一整套会话复用语义。欢迎到架构文档下参与这部分设计的讨论。

关于 ZCode 适配:请参考 Claude Code 的接入方式重新提交

ZCode 支持是我们想要的(架构文档 Phase 3 已经把它列为验证目标,并点名了你的工作可以按契约重新提交上游)。请参照刚合并的 Claude Code Integration Pack(#7)的做法:

  • 先读架构文档docs/caller-integration-architecture.md,核心是"一个共享 Runtime + 各调用方只做声明式 Integration Pack";
  • 参照实现src/claude-code-integration.ts + src/setup-claude-code.ts——Pack 只产出声明式 InstallPlan(封闭操作集),所有配置写入走共享的 src/setup-engine.ts(备份、原子写入、并发检测、fail-closed);
  • skill 不要手写副本:从 src/skill-content.ts 的单一来源加 ZCode overlay 生成;
  • 不要携带 fork 专有内容(fork 关系说明、sync workflow)进入上游 PR。

你的 skills/dsh-collab/SKILL.md 质量不错,安全规则保留得很完整——按上面的方式重做,我们很乐意 review。

install.ps1 的具体问题(无论是否上游都建议修)

  • 硬编码 Node 路径精确到补丁版本(...\node\versions\22.22.2\node.exe),应从 PATH 探测;
  • & $NodePath npm install 是无效调用(node.exe 会把 npm 当作脚本文件执行),应使用 npm.cmd
  • 配置合并会丢弃用户 config.json 中除 plugins 外的所有顶层配置,并整体覆盖 mcp 段(会删掉用户其他的 MCP server),且没有备份——对比本仓库 setup 的做法:先备份、只改自己拥有的键、写入前验证。

期待你的新 PR!有任何设计上的问题,欢迎先开 Issue 讨论。

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.

3 participants