cowork-flow 1.5.0 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +204 -170
- package/CONTRIBUTING.md +137 -0
- package/LICENSE +1 -1
- package/README.md +108 -350
- package/docs/architecture.md +122 -0
- package/docs/hosts.md +290 -0
- package/docs/index.md +32 -0
- package/docs/release.md +95 -0
- package/package.json +36 -6
- package/presets/claude-code/.claude-plugin/plugin.json +28 -0
- package/presets/claude-code/skills/cowork-flow-bootstrap/SKILL.md +35 -0
- package/presets/codex/.codex-plugin/plugin.json +37 -0
- package/presets/codex/assets/logo.svg +4 -0
- package/presets/codex/skills/cowork-flow-bootstrap/SKILL.md +35 -0
- package/presets/dsh/agent.cordis.yml +35 -12
- package/presets/dsh/plugins/workflow-state.js +88 -72
- package/presets/dsh/preset.yml +1 -1
- package/presets/kimi-code/.kimi-plugin/plugin.json +35 -0
- package/presets/kimi-code/hooks/cowork-flow-inject.mjs +125 -0
- package/presets/kimi-code/skills/cowork-flow-bootstrap/SKILL.md +35 -0
- package/presets/opencode/cowork-flow/plugin-core.js +1077 -0
- package/presets/opencode/cowork-flow/skills/cowork-flow-bootstrap/SKILL.md +35 -0
- package/presets/opencode/plugins/cowork-flow.js +44 -0
- package/presets/plugin-meta.json +52 -0
- package/presets/qoder/.qoder-plugin/plugin.json +29 -0
- package/presets/qoder/agents/cowork-check.md +29 -0
- package/presets/qoder/agents/cowork-implement.md +30 -0
- package/presets/qoder/agents/cowork-research.md +23 -0
- package/presets/qoder/hooks/hooks.json +50 -0
- package/presets/qoder/hooks/inject-context.py +122 -0
- package/presets/qoder/skills/cowork-flow-bootstrap/SKILL.md +35 -0
- package/{template/.zcode → presets/zcode}/.zcode-plugin/plugin.json +4 -2
- package/{template/.zcode → presets/zcode}/agents/cowork-check.md +4 -4
- package/{template/.zcode → presets/zcode}/agents/cowork-implement.md +4 -4
- package/{template/.zcode → presets/zcode}/agents/cowork-research.md +1 -1
- package/{template/.zcode → presets/zcode}/hooks/inject-context.js +36 -19
- package/presets/zcode/skills/cowork-flow-bootstrap/SKILL.md +35 -0
- package/src/cli.js +130 -124
- package/src/commands/host.js +182 -0
- package/src/commands/init.js +28 -43
- package/src/commands/install-claude-code-plugin.js +129 -0
- package/src/commands/install-codex-plugin.js +312 -0
- package/src/commands/install-dsh-hook.js +36 -43
- package/src/commands/install-dsh-preset.js +228 -49
- package/src/commands/install-kimi-code-plugin.js +142 -0
- package/src/commands/install-kimi-hook.js +363 -0
- package/src/commands/install-opencode-plugin.js +158 -0
- package/src/commands/install-qoder-plugin.js +211 -0
- package/src/commands/install-zcode-plugin.js +131 -82
- package/src/commands/mcp-state.js +7 -6
- package/src/commands/registry.js +345 -0
- package/src/commands/source-refresh.js +10 -11
- package/src/commands/sync.js +10 -13
- package/src/commands/update.js +5 -10
- package/src/lib/cli-flags.js +102 -0
- package/src/lib/copy-template.js +89 -75
- package/src/lib/host-assets.js +193 -67
- package/src/lib/install-support.js +50 -0
- package/src/lib/platforms.js +0 -15
- package/src/lib/plugin-metadata.js +187 -0
- package/src/lib/plugin-payload.js +70 -0
- package/template/.cowork-flow/.version +1 -1
- package/template/.cowork-flow/adapters/claude-code/adapter.yaml +0 -1
- package/template/.cowork-flow/adapters/dsh/adapter.yaml +0 -1
- package/template/.cowork-flow/adapters/kimi-code/adapter.yaml +30 -0
- package/template/.cowork-flow/adapters/qoder/adapter.yaml +32 -0
- package/template/.cowork-flow/adapters/zcode/adapter.yaml +2 -2
- package/template/.cowork-flow/config.yaml +6 -4
- package/template/.cowork-flow/scripts/adapters/cli/batch_mode.py +10 -12
- package/template/.cowork-flow/scripts/adapters/cli/spec_check.py +68 -36
- package/template/.cowork-flow/scripts/adapters/cli/subagent.py +122 -61
- package/template/.cowork-flow/scripts/adapters/cli/task.py +42 -3
- package/template/.cowork-flow/scripts/adapters/cli/task_create_command.py +1 -9
- package/template/.cowork-flow/scripts/adapters/cli/task_lifecycle_commands.py +6 -0
- package/template/.cowork-flow/scripts/adapters/cli/task_navigation.py +13 -10
- package/template/.cowork-flow/scripts/adapters/cli/task_next_runner.py +2 -1
- package/template/.cowork-flow/scripts/adapters/git/git_context.py +14 -82
- package/template/.cowork-flow/scripts/adapters/host/claude_code_policy.py +5 -17
- package/template/.cowork-flow/scripts/adapters/host/codex_policy.py +2 -5
- package/template/.cowork-flow/scripts/adapters/host/host_manifest.py +123 -12
- package/template/.cowork-flow/scripts/adapters/host/inject.py +57 -21
- package/template/.cowork-flow/scripts/adapters/host/kimi_code_policy.py +21 -0
- package/template/.cowork-flow/scripts/adapters/host/policy_base.py +58 -0
- package/template/.cowork-flow/scripts/adapters/host/qoder_policy.py +66 -0
- package/template/.cowork-flow/scripts/adapters/host/workflow_state_hook.py +150 -141
- package/template/.cowork-flow/scripts/adapters/host/zcode_policy.py +23 -41
- package/template/.cowork-flow/scripts/adapters/mcp/state_server.py +41 -56
- package/template/.cowork-flow/scripts/adapters/review/test_intent.py +2 -33
- package/template/.cowork-flow/scripts/infra/config.py +26 -23
- package/template/.cowork-flow/scripts/infra/developer_profile.py +4 -41
- package/template/.cowork-flow/scripts/infra/files.py +3 -7
- package/template/.cowork-flow/scripts/infra/git_snapshot.py +8 -7
- package/template/.cowork-flow/scripts/infra/paths.py +9 -77
- package/template/.cowork-flow/scripts/infra/process.py +9 -0
- package/template/.cowork-flow/scripts/infra/skill_manifest.py +262 -169
- package/template/.cowork-flow/scripts/infra/storage/operation_log.py +2 -0
- package/template/.cowork-flow/scripts/infra/storage/state_store.py +0 -2
- package/template/.cowork-flow/scripts/infra/storage/unit_of_work.py +163 -18
- package/template/.cowork-flow/scripts/kernel/workflow_route.py +6 -16
- package/template/.cowork-flow/scripts/run.py +14 -4
- package/template/.cowork-flow/scripts/runtime/host_identity.py +278 -0
- package/template/.cowork-flow/scripts/runtime/session_state.py +122 -71
- package/template/.cowork-flow/scripts/services/context_discovery.py +15 -38
- package/template/.cowork-flow/scripts/services/context_paths.py +4 -4
- package/template/.cowork-flow/scripts/services/fact_view.py +13 -11
- package/template/.cowork-flow/scripts/services/lifecycle_checks.py +47 -33
- package/template/.cowork-flow/scripts/services/lifecycle_policy.py +5 -2
- package/template/.cowork-flow/scripts/services/readiness.py +8 -3
- package/template/.cowork-flow/scripts/services/spec_check.py +24 -34
- package/template/.cowork-flow/scripts/services/task_archive.py +76 -41
- package/template/.cowork-flow/scripts/services/task_context.py +0 -2
- package/template/.cowork-flow/scripts/services/task_creation.py +90 -34
- package/template/.cowork-flow/scripts/services/task_lifecycle.py +210 -50
- package/template/.cowork-flow/scripts/services/task_routing.py +0 -8
- package/template/.cowork-flow/scripts/services/task_tree.py +181 -29
- package/template/.cowork-flow/scripts/services/task_utils.py +3 -20
- package/template/.cowork-flow/scripts/services/workflow_runtime.py +39 -22
- package/template/.cowork-flow/spec/contracts/context-injection.md +113 -4
- package/template/.cowork-flow/spec/contracts/fact-layer-access.md +8 -4
- package/template/.cowork-flow/spec/contracts/index.md +4 -0
- package/template/.cowork-flow/spec/contracts/spec-checks.md +14 -2
- package/template/.cowork-flow/spec/runtime/host-assets.json +201 -16
- package/template/.cowork-flow/spec/runtime/index.md +1 -1
- package/template/.cowork-flow/spec/schemas/host-assets.schema.json +70 -15
- package/template/.cowork-flow/spec/schemas/index.md +1 -0
- package/template/.dsh/README.md +27 -7
- package/template/.kimi-code/agents/cowork-check.md +29 -0
- package/template/.kimi-code/agents/cowork-implement.md +30 -0
- package/template/.kimi-code/agents/cowork-research.md +23 -0
- package/template/.opencode/cowork-flow/plugin-core.js +1077 -0
- package/template/.opencode/plugins/cowork-flow.js +23 -800
- package/template/skills/python-runtime-design/SKILL.md +6 -0
- package/template/skills/runtime-health/scripts/doctor.py +827 -9
- /package/{template/.zcode → presets/zcode}/hooks/hooks.json +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,257 +1,291 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 更新日志
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## [Unreleased]
|
|
4
4
|
|
|
5
|
-
###
|
|
5
|
+
### Added
|
|
6
6
|
|
|
7
|
-
- `scripts/release.sh` 新增 `--no-publish`:刷新、self-instance 镜像、双套测试门禁、版本 bump、changelog 校验、提交、tag 全部照常执行,只跳过最后的 `npm publish`,并提示 tag 仍是本地(后续走 `npm publish` 或 `gh release create v<v>` 触发 CI 通道)。不带该 flag 时行为逐项不变。
|
|
8
|
-
- 参数解析改为逐个消费:`--no-publish` 位置无关且可重复;release-type 与 `--version` 仍互斥、最多出现一次,重复被拒。
|
|
9
|
-
- 动机是既有的 CI 发布通道——tag 落地后由 `gh release create` 触发 publish.yml,而脚本此前只能一路 publish 到底。
|
|
10
7
|
|
|
11
|
-
|
|
8
|
+
## [1.7.1] - 2026-09-30
|
|
12
9
|
|
|
13
|
-
|
|
14
|
-
- **opencode**:插件新增 `tool.execute.after` 钩子——`edit`/`write` 命中时调用 `run spec-check --phase edit --file <path> --throttled`,把非空单行结果追加到工具结果文本;2.5 秒超时,运行时不存在的静默且不阻断编辑。
|
|
15
|
-
- **dsh**:预设插件注册 `tools/post-execute` waterfall——`write`/`edit` 命中时调同一 Python 协议(`run_edit_checks`),把单行告警作为 `additionalContexts` 附件送入下一轮请求;2.5 秒超时,无根/无解释器/协议异常一律静默。DSH 的 `tools/result` 只能观察不能回写,故走 post-execute 而非复用刷新监听。
|
|
16
|
-
- **路径提取多形态**:PostToolUse 的路径提取兼容 `file_path`/`filePath`/`path` 与 codex `apply_patch` 补丁文本(`*** Update/Add/Delete File:` 行);同一路径去重,避免重复消耗节流窗口。
|
|
17
|
-
- **契约诚实化**:`spec-checks.md` 矩阵与 README 从"opencode 降级:无"改为准确表述——五个宿主全部覆盖,其中 zcode 仅主会话、dsh 经预设注入;此前的"降级"是项目未接线,不是宿主能力缺失。
|
|
18
|
-
- **实弹验收项(未在本地执行)**:codex 会话编辑后 stderr 反馈可见(需宿主 hook 信任批准);opencode 会话 edit 后工具结果含单行警告;dsh 会话编辑后下一轮上下文含 spec-check 通知。
|
|
10
|
+
### Fixed
|
|
19
11
|
|
|
20
|
-
|
|
12
|
+
- 三个机器级 hook shim(Qoder / ZCode / Kimi Code)改为 **fail-open**:项目侧运行时返回非零、无法启动或超时时,shim 把原因写进宿主运行日志并返回 0,只跳过本次注入——不再把宿主的「hook 失败」升级成「拒绝用户输入」。修前在 Qoder 里,只要工作区项目的运行时早于 qoder 适配(本项目 9 个旧项目都是),每次输入都会被拦:`inject.py: error: argument --host: invalid choice: 'qoder'` → `exit code 2` → `Blocking hook failure(s) … for UserPromptSubmit`。项目级写入的 Edit 期规范门禁(Claude Code / Codex)保留阻止语义,它与所调用的运行时同源、不存在版本错配。升级动作:`cwf host add qoder --force`(或对应宿主)刷新机器级载荷后重启宿主;要让旧项目恢复注入,再对该项目运行 `cwf project sync .`。
|
|
21
13
|
|
|
22
|
-
|
|
23
|
-
- **doctor 检测**:新增只读 advisory 检查 `check_dsh_preset`——预设缺失时不报告;无标记或标记不可读 → `PRESET-UNKNOWN-VERSION`;与项目 `.cowork-flow/.version` 不一致 → `PRESET-STALE`;两者都附 `install-dsh-preset --force` 提示,且不进入 doctor 的 error 集合(`ok` 不受影响)。
|
|
24
|
-
- **背景**:预设不随 `sync`/npm 更新,此前升级路径只存在于 README 散文,用户可能长期停留在旧注入逻辑且没有任何提示;协议失败时该宿主的注入会静默降级为空输出。
|
|
14
|
+
## [1.7.0] - 2026-09-29
|
|
25
15
|
|
|
26
|
-
###
|
|
16
|
+
### Added
|
|
27
17
|
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
18
|
+
- 新增 `cwf` 命令名,并把命令整理为 `project`、`host`、`self`、`mcp`、`dev` 五组。`cwf --help` 和各层 `--help` 由同一注册表生成。
|
|
19
|
+
- 新增统一的机器级宿主命令:`cwf host add`、`cwf host remove` 和 `cwf host list`。
|
|
20
|
+
- 新增 Claude Code 插件安装器。插件写入用户技能目录,只提供 `cowork-flow-bootstrap` 引导技能,项目 hook 和 agents 仍由 `project init` 交付。
|
|
21
|
+
- 新增 OpenCode 全局插件安装器。插件自行注册引导技能目录,不修改用户的 `opencode.json`。
|
|
22
|
+
- 新增 Qoder 插件适配,提供 hook、三个 fixed subagent 和引导技能;工作区需要受信任,安装后需要重启 Qoder。
|
|
23
|
+
- 新增 Kimi Code 插件载荷。`cwf host add kimi-code` 默认准备插件源并打印 TUI 安装指令;工作流注入仍可显式使用 `--component hook`。
|
|
24
|
+
- 新增 Codex 插件。安装器准备稳定 marketplace 源并委托 Codex 官方 CLI 注册,不直接修改 `config.toml`。
|
|
25
|
+
- 新增 `cowork-flow-bootstrap` 机器级引导技能,用于没有项目运行时的目录。
|
|
26
|
+
- 新增 `presets/plugin-meta.json` 作为插件显示名、简介、作者、仓库、许可证和关键词的单一来源,并修正作者名拼写。
|
|
27
|
+
- Codex 插件支持 `interface.logo` 和 `interface.brandColor`;ZCode marketplace 支持 HTTPS 图标 URL。
|
|
28
|
+
- 新增 `SECURITY.md`、Issue 模板、PR 模板、Dependabot 和编辑器基础配置。
|
|
29
|
+
- Qoder 的 hook 注入新增一条用户可见痕迹:hook 输出补顶层 `systemMessage`,`qodercli` 的终端 TUI 会把它显示成 `<hook 名> says: <文案>`,每次 SessionStart / UserPromptSubmit 注入都会显示 `cowork-flow: 工作流状态已注入 · status=… · task=…`(只给人看,模型上下文不受影响;Edit 期的规范自查不带这条),文案与实际注入的状态走同一条解析路径。**Qoder 桌面版不渲染 hook 输出文本**:1.1.64 的桌面客户端里没有 `systemMessage` / `hook_system_message` 的渲染路径,聊天中的 hook 部件被直接跳过,所以桌面端要核对注入是否发生,看回复操作条上的锚点图标 tooltip(列出 `SessionStart`、`UserPromptSubmit` 及状态),或看 `~/.qoder/logs/runs/<最新一次运行>/qodercli.log` 里的 `hook.finished … success=true exit_code=0`。其它六个宿主的输出逐字节不变。升级动作:`cwf host add qoder --force` 刷新插件缓存,并在项目里运行 `cwf project sync .` 更新项目运行时(文案由项目运行时渲染),然后重启 Qoder。
|
|
34
30
|
|
|
35
|
-
|
|
31
|
+
### Changed
|
|
36
32
|
|
|
37
|
-
|
|
33
|
+
- 七个宿主统一通过 `host-assets.json` 声明平台、技能根、载荷和同步策略;机器级组件、doctor 和命令帮助与声明保持一致。
|
|
34
|
+
- 项目技能只由 `template/skills/` 分发,插件不再复制项目技能。Codex、OpenCode、ZCode、Qoder、Kimi Code 和 DSH 统一改用 `.agents/skills/`;Claude Code 使用 `.claude/skills/`。
|
|
35
|
+
- Kimi Code 默认机器级组件改为插件;hook 保留为显式组件。DSH 默认组件仍为预设。
|
|
36
|
+
- `template/.zcode/` 迁到 `presets/zcode/`,机器级载荷与项目级资产分目录维护。
|
|
37
|
+
- `host-assets.json` 增加 `payload` 描述符,插件安装器从声明读取载荷位置和清单,不再各自硬编码。
|
|
38
|
+
- 插件清单统一由元数据投影并在安装时写入版本;项目级和机器级载荷共用同一份引导技能。
|
|
39
|
+
- 文档改为 README 用户指南、`docs/` 详细说明、`CONTRIBUTING.md` 贡献流程和 Keep a Changelog 更新日志,并随 npm 包发布。
|
|
40
|
+
- 发布脚本新增 `--dry-run` 和 `--no-publish`。前者会真实刷新自实例并运行前置检查,但停在版本 bump 之前;后者完成版本、提交和 tag 后交给 CI 发布。
|
|
41
|
+
- CI 明确记录测试跳过项;Windows 缺少 POSIX 前提时不再把跳过记为通过。
|
|
42
|
+
- 核心库做了一轮结构与注释整理(Python 运行时 + Node 核心库),**行为与对外契约零变化,无需升级动作**:`# ====` 横幅 13 处、`del` 占位 7 处、超长函数 14 个(Python 7 + Node 7)、≥60 字符的注释行 626 条(Python 161 + Node 465)、模板化 docstring 18 条全部清零;九个宿主安装器的重复骨架收敛为 `src/lib/install-support.js`;注释与 docstring 改为只写读代码看不出来的约束。按设计保留的例外:1 处 93 行的宿主载荷函数(`presets/dsh` 的 `apply`),以及 6 处属于协议或统一命令签名的参数。
|
|
43
|
+
- **升级动作**:升级 CLI 后运行 `cwf project sync .`。已有机器级组件按需重装:Codex、Claude Code、OpenCode、ZCode、Qoder 使用 `cwf host add <host> --force`;DSH 使用 `cwf host add dsh --component preset --force`;Kimi Code 重新运行 `cwf host add kimi-code` 并在 TUI 中安装插件。DSH 桌面版(0.2.0+)还需在 DSH 内执行一次 `plugin_manager { action: "install_bundle", target: "$DSH_HOME/bundles/cowork-flow" }`,命令输出里会打印完整路径。
|
|
38
44
|
|
|
39
|
-
|
|
45
|
+
### Fixed
|
|
40
46
|
|
|
41
|
-
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
47
|
+
- 适配 DeepSeek Harness 0.2.0 桌面版。0.2.0 起预设不再是 `$DSH_HOME/.agent-presets/<id>/` 目录(宿主自带技能原文:"Nothing reads that directory any more"),而是 bundle patch 里 `@deepseek-ai/dsh-agent-preset` 的一条声明行。`cwf host add dsh --component preset` 现在同时写 legacy 目录(0.1.x / CLI 线)与可安装 bundle(`$DSH_HOME/bundles/cowork-flow/`,含生成的 `cordis.patch.yml`、`package.json` 与插件副本),bundle 由宿主自己的插件管理器安装(桌面版是侧边栏 Plugins 页,填 bundle 目录的绝对路径;`plugin_manager` 工具行在桌面宿主组合里被禁用)。两条交付线只差宿主 API 不同的两处,bundle 生成时替换:工作流行(0.1.x `dsh-workflow-worker-thread` ↔ 0.2.0 `dsh-workflow-ptc`)与 persona 行的配置键(0.1.x `text` ↔ 0.2.0 `prefix`)——包解析不到或配置键不被接受,宿主会把**整个**预设判为不可用,因此两边都只写目标线存在的包与 schema 接受的键;workflow-state 插件补订阅 0.2.0 的 `agent/created` 事件(与旧名 `agent/session-start` 并存,两代都能预热)。
|
|
48
|
+
- 修复 `config.yaml` 行内注释剥离把引号内的 `#` 也当作注释起点的问题。`description: "a # b"` 以前被解析成 `a`,以 `#` 开头的引号值(`note: "# keep"`)还会被误判成段落头并吞掉后续缩进行。现在只有引号外、且位于行首或空白之后的 `#` 才开启注释;未加引号的 `v1#beta` 按 YAML 语义保留,列表项与标量使用同一判定。
|
|
49
|
+
- 修复 OpenCode 插件模块导出测试 helper 后导致宿主启动崩溃的问题。插件入口现在只导出可调用的插件工厂,逻辑放在独立模块中。
|
|
50
|
+
- 修复 Kimi Code 插件清单字段和路径不符合宿主 schema 的问题:技能路径改为 `./` 形式,显示信息移入 `interface`,安装器不再输出宿主拒绝的相对源目录。
|
|
51
|
+
- 修复 Qoder 插件清单路径不符合宿主 schema、导致插件被整体丢弃的问题。清单的 `hooks`/`agents`/`skills` 沿用了 zcode 宿主的裸路径写法,而 Qoder 要求路径以 `./` 开头(`hooks` 还要以 `.json` 结尾)、`agents` 只接受 `.md` 文件路径——一处不合法宿主就解析清单失败并丢弃**整个**插件:hook 不注册、agents 与 skills 也不加载,只在 `~/.qoder/logs/qodercli.log` 里留一行 `Failed to load installed plugin`。现在 `hooks`/`skills` 用 `./` 形式,`agents` 交给宿主的目录约定发现。升级动作:`cwf host add qoder --force` 后重启 Qoder。
|
|
52
|
+
- 修复 ZCode 技能根声明与宿主实际扫描路径不一致的问题,旧 `.cowork-flow/skills/` 副本在同步时清理。
|
|
53
|
+
- 修复测试和技能脚本在 `template/`、`presets/` 下写入 `__pycache__` / `*.pyc` 的问题,并增加交付树纯净性门禁。
|
|
54
|
+
- 修复 Windows 全新检出把 JavaScript 和运行器脚本转成 CRLF 的问题;`.gitattributes` 固定相关文件使用 LF。
|
|
55
|
+
- 修复 CLI 未知旗标被静默忽略的问题。`cwf` 统一区分用法错误和操作失败,并拒绝多余位置参数。
|
|
56
|
+
- 修复 `host list` 与注册表中的过时“无机器级组件”分支;所有已声明宿主都必须有对应组件和测试。
|
|
57
|
+
- 七家宿主的项目技能发现通道均完成本机验证,不再登记为未验证假设。
|
|
46
58
|
|
|
47
|
-
|
|
59
|
+
### Removed
|
|
48
60
|
|
|
49
|
-
|
|
61
|
+
- 任务导航的 `allowedOperations` 不再列出没有实现的操作名(`verify_change`、`apply_review_fix`、`report_result`、`report_needs_context`)。这些 id 既没有状态迁移事实,也没有归属 Skill,永远不会成为下一步动作;路由判定结果不变。
|
|
62
|
+
- 删除插件、预设中的项目技能副本。旧安装由 `PLUGIN-SKILLS-LEGACY` 提示重装清理。
|
|
63
|
+
- 删除 qoder、zcode 和其他宿主的失效适配器路径声明,以及不再使用的技能路径推测和宿主枚举。
|
|
64
|
+
- 删除 `install-kimi-hook` 的无效 `--force` 选项;Kimi hook 始终重写自己的托管区块。
|
|
50
65
|
|
|
51
|
-
|
|
66
|
+
## [1.6.0] - 2026-09-20
|
|
52
67
|
|
|
53
|
-
|
|
54
|
-
- **zcode shim 化**:`inject-context.js` 从 ~1000 行事实镜像降为 ~140 行传输层——事件路由、PostToolUse(Bash) 廉价过滤(非生命周期命令零 spawn)、解释器定位(项目 runtime 优先、插件缓存副本兜底)、stdin/stdout 转发。删除 `inject-context.selfcheck.mjs`。matrix 逐字相等测试中的 zcode 线改为经 shim 驱动单源。
|
|
55
|
-
- **每宿主策略模块**:`adapters/host` 拆出 zcode/claude_code/codex policy(digest 措辞、警告静默、rebind 提示、essential-files、PostToolUse 传输、emit 格式化),共享层与入口零 `host ==` 分支;无模块宿主(dsh)走中立默认。字节级契约不变(fingerprint、stage-contract matrix 绿)。
|
|
56
|
-
- **JS-only 行为移植进 Python 单源**:`formatRebindHints`(zcode 无任务体补活动任务列表)、`editScopeWarning`(逐文件 scope 白名单警告,与 spec 警告合并进同一载荷)、missing-task 统一文案(原 "stale" 通用回退改为明确指向任务目录不存在 + 建任务指引,全宿主生效)、`checkEssentialFiles` 缺文件警告(zcode)、无会话身份时的 newest-session 显示回退(zcode,仅显示不改写绑定语义)。
|
|
57
|
-
- **MCP 重定位**:`task_scope` / `task_specs` 补 CLI 同源事实命令(`task scope` / `task specs`),MCP 不再有独占能力;contract-registry 注册 `FACT_LAYER_ACCESS_V1` 契约(digest 行注入"MCP 优先查询事实,CLI 兜底");doctor 新增 MCP 注册健康项(项目级 .mcp.json 存在性 / 全局+项目双重注册提示 / 缺失提示),只读 advisory 不阻断;README 增加两档注册说明(全局受支持默认 + 项目 opt-in 地图)。
|
|
58
|
-
- **修复(1.2.0 遗留,Windows)**:`spec_check._run_command` 三处——含引号命令经 list2cmdline 转义后 cmd.exe 解析失败;`text=True` 未显式 `encoding="utf-8", errors="replace"`,中文 Windows cmd GBK 输出致解码线程崩溃、输出丢失;命令入口缺失在 Windows 被误分类为 violation(现经 `shutil.which` 归 unchecked,契约三态语义恢复一致)。
|
|
59
|
-
- **修复**:legacy runtime context 文件(缺 `runtime_context_id` 字段)注入显示回退到检测到的 id。
|
|
68
|
+
### Changed
|
|
60
69
|
|
|
61
|
-
|
|
70
|
+
- PR CI 改为运行与发布相同的 `release:check` 门禁,避免只覆盖部分测试。
|
|
71
|
+
- 宿主必需集合改由 Host Asset Manifest 派生,删除 Python、JavaScript 和 schema 中的重复宿主枚举。
|
|
72
|
+
- README 保护文件说明、spec-check 超时文案和 schema 索引与实际行为对齐。
|
|
73
|
+
- 发布和测试报告保留平台跳过项,不把未执行用例记为通过。
|
|
62
74
|
|
|
63
|
-
###
|
|
75
|
+
### Fixed
|
|
64
76
|
|
|
65
|
-
|
|
77
|
+
- 修复 `spec-check` 文本模式对规范声明解析错误伪绿的问题:解析错误与 `unchecked` 同样返回退出码 2,并在文本输出中列出出错的规范文件;`--allow-unchecked` 不豁免解析错误。
|
|
78
|
+
- 修复 Unit of Work 冲突补偿的两处丢失:回滚会恢复内容为 `{}` 的已删文件,也会把"写入前并不存在"的新文件还原为不存在。
|
|
79
|
+
- 修复任务创建重复使用已有目录、失败后留下半成品的问题:创建拒绝任何已存在的任务目录,中途失败只清理本次写入的文件与空目录,同 slug 可以重试。
|
|
80
|
+
- 修复 OpenCode 插件绑定运行上下文时两次写入不原子导致的半绑定:会话记录与上下文绑定在同一组锁下定稿,第二次写入失败会撤销已落盘的第一次。
|
|
81
|
+
- 修复运行上下文的 `initialize`、`bind`、`close` 在外部回滚后重试被旧记录卡住的问题:每次尝试使用独立操作 id,重试会真正改写文件,正常幂等重放与冲突诊断不变。
|
|
82
|
+
- 修复 Codex 插件卸载在 CLI 解绑失败时删除 marketplace 与缓存的问题:现在保留现场并打印可重试的手工步骤。
|
|
83
|
+
- 修复 Qoder 插件把"只有载荷、没有注册"的安装当成已安装的问题:判定同时要求注册表条目与启用标记,缺失时自动补齐。
|
|
84
|
+
- 修复根目录 `.zcodeignore` 未被忽略而阻塞发布干净工作树门禁和任务复核的问题。
|
|
85
|
+
- 修复状态文件含非法 UTF-8 时读取崩溃的问题:现在返回空结果、保留原文件并输出诊断。
|
|
86
|
+
- 修复 unittest 收集不到模块级测试函数的问题,并增加测试收集守卫。
|
|
87
|
+
- 修复 Windows 专属测试文件在顶层退出时被记为通过的问题;现在明确显示跳过原因。
|
|
88
|
+
- 修复宿主适配测试中的恒真断言。
|
|
89
|
+
- 修复 JavaScript 文件在 Windows 全新检出后使用 CRLF、导致 shebang 断言失败的问题。
|
|
90
|
+
- 补齐 DSH workflow-state 插件的刷新事件、section 注册、降级和工具透传测试。
|
|
66
91
|
|
|
67
|
-
|
|
68
|
-
- **scope 路径相对化**:`edit_scope_warning` 此前拿原始绝对路径与仓库相对白名单比对,所有编辑都被误标越界;现与 spec 路径同样归一为仓库相对,警告行显示相对路径。
|
|
69
|
-
- **编辑期预算与节流加固**:edit 钳制 3s→2.5s(子进程预算余量);节流只在跑完一次后写入(执行器崩溃不再吞掉节流窗口);`files` 多值列表逐 token 剥引号。
|
|
70
|
-
- **delegated 子代理收到 spec 反馈**:编辑期 spec 警告的静默范围此前在 Python/JS 两侧不一致,现统一为 delegated 会话可达(scope 警告保持仅主会话)。
|
|
92
|
+
### Removed
|
|
71
93
|
|
|
72
|
-
|
|
94
|
+
- 删除无调用的技能路径链、孤儿异常处理、恒空校验器和其它只由测试触发的死代码。
|
|
73
95
|
|
|
74
|
-
|
|
96
|
+
## [1.5.0] - 2026-09-18
|
|
75
97
|
|
|
76
|
-
###
|
|
98
|
+
### Added
|
|
77
99
|
|
|
78
|
-
-
|
|
100
|
+
- 发布脚本新增 `--no-publish`,可完成版本、提交和 tag 后交给 CI 执行 npm 发布。
|
|
101
|
+
- Codex、OpenCode 和 DSH 增加编辑期规范检查,违规以单行提示返回,不阻断编辑动作。
|
|
102
|
+
- DSH 预设写入版本标记;doctor 可报告 `PRESET-UNKNOWN-VERSION` 和 `PRESET-STALE`。
|
|
103
|
+
- 修复上下文后补齐 MCP 注册、运行帮助和相关文档入口。
|
|
79
104
|
|
|
80
|
-
|
|
105
|
+
### Fixed
|
|
81
106
|
|
|
82
|
-
|
|
107
|
+
- 修复 PostToolUse 对 `file_path`、`filePath`、`path` 和 Codex 补丁文本的路径提取差异。
|
|
108
|
+
- 修复 DSH 预设升级后没有提示的问题。
|
|
109
|
+
- 修复无可信会话身份时 fallback 文案无法指导用户重新绑定的问题。
|
|
83
110
|
|
|
84
|
-
|
|
111
|
+
## [1.4.0] - 2026-09-14
|
|
85
112
|
|
|
86
|
-
|
|
87
|
-
- **三态门禁语义**:`pass` / `violation`(complete 阻断、状态不推进)/ `unchecked`(命令缺失、解释器缺失、超时——阻断并要求显式 `--allow-unchecked`,豁免留痕进 `task.json` `meta.specCheckExempt` 供 review 可见)。unchecked 永不冒充 pass。
|
|
88
|
-
- **收口遥测**:complete 时全量结果写 `meta.specCheckSummary`,为"返工前移"效果提供可对比基线。
|
|
89
|
-
- **三线 digest 注入**:进入 in_progress 后,stage-contract 的 Specs 行升级为 h2 标题树索引(每 spec 最多 6 条、每条截断 24 字符),规范条目名随契约常驻注意力;spec 正文改动不影响 digest,超预算整行让位(Scope/Gates 永不丢)。python/zcode/opencode 输出由 matrix 用例锁定逐字相等,claude 线经 Python 单源自动获得。
|
|
90
|
-
- **编辑期快跑**:zcode(PostToolUse 短路径,spawn 单源 CLI、3.8s 上限)与 claude(PostToolUse 新增 hook 资产,exit 2 单行 stderr 反馈)在编辑命中 `files` 的声明时就地执行,违规单行警告、同文件 10 秒节流(状态在 `.cowork-flow/.runtime/`)、执行器缺失静默不阻断编辑流;opencode 降级为仅 digest + 收口。
|
|
91
|
-
- **doctor 健康项**:`specChecks` 报告声明解析错误与命令入口不存在——"跑不了的声明"在收口前暴露。
|
|
113
|
+
### Fixed
|
|
92
114
|
|
|
93
|
-
|
|
115
|
+
- 修复多窗口下未绑定 hook 会话可能读取其它会话任务的问题。激活命令会认领当前会话;只有一个可信绑定时才允许回退跟随,多个绑定时保持 `no_task` 并提示重新绑定。
|
|
116
|
+
- MCP 任务查询不再用不可信的进程级身份冒认任务。
|
|
117
|
+
- 工作流状态新增 `session` 属性,供 hook 与后续 CLI 调用共享会话身份。
|
|
94
118
|
|
|
95
|
-
## 1.
|
|
119
|
+
## [1.3.0] - 2026-09-09
|
|
96
120
|
|
|
97
|
-
###
|
|
121
|
+
### Changed
|
|
98
122
|
|
|
99
|
-
-
|
|
123
|
+
- 状态注入逻辑收拢到 Python 单一入口,宿主适配层只负责事件和传输差异。
|
|
124
|
+
- `task_scope`、`task_specs` 增加与 MCP 同源的 CLI 查询命令;MCP 主要作为无 hook 宿主的只读查询通道。
|
|
125
|
+
- ZCode 注入脚本缩减为传输层,编辑期检查使用节流和统一预算。
|
|
126
|
+
- 子代理无法收到宿主编辑期反馈时,改为在报告前显式运行 `spec-check` 自检。
|
|
100
127
|
|
|
101
|
-
|
|
128
|
+
### Fixed
|
|
102
129
|
|
|
103
|
-
|
|
130
|
+
- 修复 Windows 下带引号命令、中文输出解码和命令缺失分类不一致的问题。
|
|
131
|
+
- 修复未绑定 ZCode 会话的编辑期 scope/spec 警告完全静默。
|
|
132
|
+
- 修复 scope 使用绝对路径比较导致所有编辑都被误报越界。
|
|
133
|
+
- 修复缺少 git 时任务启动崩溃;无 HEAD 时降级为 working-tree 状态。
|
|
104
134
|
|
|
105
|
-
|
|
135
|
+
## [1.2.0] - 2026-09-08
|
|
106
136
|
|
|
107
|
-
|
|
108
|
-
- Python(context_paths/fact_view)与 zcode/opencode JS 镜像运行时消费同一文件;文件缺失/畸形降级到与默认内容逐字一致的内嵌默认(默认等价由 tests/test_scope_rules.py 与 selfcheck 锁定)。
|
|
109
|
-
- 规则可真实改变行为:wildcardChars 置空 → 通配条目进入 Scope;budget 调小 → 预算降级路径触发。
|
|
110
|
-
- 修复预算兜底 1 字节超限:裁剪切分与闭标签间的换行预留。
|
|
111
|
-
- **CI 修复(delegated 注入崩溃)**:zcode delegated 分支不再以空输入对象重新发现项目根(`findProjectRoot({})`),改为复用 main 已解析的工作流根——在无 `.cowork-flow/` 的目录(干净 checkout、非项目目录)触发 delegated prompt 不再 `join(null)` 崩溃;对应的注入测试显式指定 spawn 工作目录,消除对测试运行 cwd 的隐式依赖(干净 checkout 下此前必红,实测 dev 推送 CI 双平台失败)。
|
|
112
|
-
- **CI 修复(Windows git 降级)**:`git` 二进制不可用(PATH 缺失/未安装)时 `_run_git_command` 捕获 OSError 按 rc!=0 降级——`current_head` 视为无头(不写 baseline)、变更集收集降级 status-only,`task start` 不再崩溃(Windows 的 CreateProcess 在 PATH 缺失时不回退,清空环境的会话测试此前必红;macOS execvp 有默认 PATH 兜底故本地绿)。
|
|
137
|
+
### Added
|
|
113
138
|
|
|
114
|
-
|
|
139
|
+
- 新增规范挂命令:项目规范可在 frontmatter 中声明 `cmd`、`files`、`timeout` 和 `when`。
|
|
140
|
+
- 新增 `./.cowork-flow/run spec-check`,结果分为 `pass`、`violation` 和 `unchecked`;后两者阻断完成。
|
|
141
|
+
- 编辑期检查提供单行提示,收口检查把结果写入任务记录。
|
|
142
|
+
- doctor 报告无法解析或无法执行的规范检查声明。
|
|
115
143
|
|
|
116
|
-
|
|
144
|
+
## [1.1.4] - 2026-08-31
|
|
117
145
|
|
|
118
|
-
|
|
119
|
-
- **变更集合并**:review 门禁以 `baseline..HEAD` diff 与 working-tree status 的并集去重作为变更集——agent 中途 `git commit` 越界文件后,review 的 `unlisted_changed_file` 仍会触发(此前提交即从 status 消失,形成无痕通道)。
|
|
120
|
-
- **降级语义**:无 git 仓库 / HEAD 不存在 / 基线缺失 / diff 失败(如 rebase 孤儿化)→ 降级 status-only,与旧行为一致,不产生错误 blocker。
|
|
121
|
-
- **契约重开**:task-review SKILL 输入语义写明基线变更集与降级行为;已审查任务的增量重审聚焦自基线以来的变化,证据要求不变。
|
|
146
|
+
### Fixed
|
|
122
147
|
|
|
123
|
-
|
|
148
|
+
- 修复 Windows 下 Node 直接启动 npm `.cmd` shim 时出现 `EINVAL` 的问题;`mcp-state` 改用与 npm 一致的 shell 启动方式。
|
|
124
149
|
|
|
125
|
-
|
|
150
|
+
## [1.1.3] - 2026-08-30
|
|
126
151
|
|
|
127
|
-
|
|
128
|
-
- **stage-contract 预算降级**:超限输入不再产出未闭合的畸形块;按 Verify → Specs → Scope 条目(至少 1 条)逐级降级,收尾标签与 Gates 行恒在;三线同构算法。
|
|
129
|
-
- **MCP 路径隔离**:`task_scope`/`task_specs` 拒绝仓库外路径(`../`、绝对路径)返回 `task-outside-repo`;无 id 的 JSON-RPC 通知(含 initialize/ping/tools/list)不再响应。
|
|
130
|
-
- **JS 白名单语义对齐**:zcode/opencode 过滤规则与 Python `normalize_context_file_scope_entry` 一致(非法 type、`../`、绝对路径、盘符、通配符一律丢弃)——editScopeWarning 与 Scope 行不再对 gate 会标记越界的文件静默放行;spec 指针同规则过滤。
|
|
131
|
-
- **delegated 只读 scope**:子代理注入包删除 `Scope: subagent` 行;stage-contract 以父任务 scope `[read-only]` 变体呈现,Gates 话术同步(不再暗示子代理可自声明 scope)。
|
|
132
|
-
- **异常降级可诊断**:锚点文件非法 UTF-8 时 stage-contract 保留 Scope/Gates 仅丢 Verify(此前整块静默消失);非例行异常在 stderr 留痕。
|
|
133
|
-
- **review 门禁补洞**:implement.jsonl 缺失时 review 产生 `missing_implement_jsonl_file_scope` blocker(此前静默放行,删除 manifest 即绕过白名单)。
|
|
134
|
-
- **矩阵化跨端测试**:`test/fixtures/stage-contract-matrix.json` 单一数据文件驱动三线(python/zcode/opencode)逐字节相等断言,覆盖规范/`./` 前缀/非法边界/超限/emoji/缺锚点/空 scope/delegated 8 类用例;zcode hooks.json matcher(Bash|Edit|Write|MultiEdit)由模板测试锁定;新增 Python 侧矩阵断言。
|
|
135
|
-
- dev_type 畸形值(非字符串)在 task_specs 中按缺省降级;spec 指针忽略 directory 条目;normalizeScopePath 带 trim;zcode 生命周期刷新正则对齐 dsh(task|subagent|resume)。
|
|
136
|
-
- 契约文档如实化:context-injection.md 不再声称三线结构恒等/always emitted,改为差异表 + 矩阵锁定范围 + 残余缺口清单(matcher 依赖 ZCode 运行时工具名、JS 过滤为规则移植)。
|
|
152
|
+
> 1.1.1 和 1.1.2 的变更首次随 1.1.3 一起发布;本版本同时承载前两个版本的代码。
|
|
137
153
|
|
|
138
|
-
|
|
154
|
+
### Changed
|
|
139
155
|
|
|
140
|
-
|
|
156
|
+
- scope 规则和阶段契约预算移入 `spec/runtime/scope-rules.json`,Python 与 JavaScript 运行时共用同一份数据。
|
|
157
|
+
- 缺少或损坏规则文件时使用与原行为一致的默认值。
|
|
141
158
|
|
|
142
|
-
###
|
|
159
|
+
### Fixed
|
|
143
160
|
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
147
|
-
- 阶段 3:`run mcp-state` 无依赖 MCP stdio 只读服务(`task_state` / `task_list`)+ `spec/contracts/fact-layer-access.md` 接入契约。
|
|
148
|
-
- MCP 全局入口:`cowork-flow mcp-state` 透传命令——MCP 客户端全局注册一次即可服务所有 cowork-flow 项目。
|
|
161
|
+
- 修复 delegated 注入在非项目目录中因空项目根崩溃。
|
|
162
|
+
- 修复 Windows 缺少 git 时任务上下文收集失败。
|
|
163
|
+
- 修复 scope 预算裁剪少保留一个换行,导致闭标签不完整的问题。
|
|
149
164
|
|
|
150
|
-
## 1.
|
|
165
|
+
## [1.1.2] - 2026-08-30
|
|
151
166
|
|
|
152
|
-
|
|
167
|
+
### Added
|
|
153
168
|
|
|
154
|
-
|
|
169
|
+
- 任务进入实现阶段时记录固定 review 基线。审查范围合并基线后的提交和当前 working tree,避免中途提交让越界文件从检查中消失。
|
|
170
|
+
- 无 git、HEAD 或基线时降级为 working-tree 状态,不产生虚假阻断。
|
|
155
171
|
|
|
156
|
-
|
|
157
|
-
- **状态注入协议冻结**:`<workflow-state>` 块 + contract-digest(SessionStart 全量 / 逐消息指纹行)+ 生命周期快照(`.runtime/state-snapshot.json`,与状态转换同单元原子提交)构成宿主 hook 的标准输入;`build_hook_context` 共享协议具备直接单测覆盖。
|
|
158
|
-
- **会话模型冻结**:按会话身份(host session id / 显式 context id / hook sessionId)绑定;显式身份无绑定时判 `no_task` 并列可改绑任务,无身份请求才走全局最新有效兜底;进程级 fallback 绑定不再自动跟随。
|
|
172
|
+
## [1.1.1] - 2026-08-30
|
|
159
173
|
|
|
160
|
-
###
|
|
174
|
+
### Fixed
|
|
161
175
|
|
|
162
|
-
-
|
|
163
|
-
-
|
|
164
|
-
-
|
|
165
|
-
-
|
|
166
|
-
-
|
|
167
|
-
-
|
|
168
|
-
- 事实层 API 化(阶段 1a):新增 `./.cowork-flow/run state [task] --json` 事实视图——聚合 task.json(含 `_state` 修订)、decision-anchor 结构化要点(目标/验收项/被拒方案名)、plan 绑定、绑定会话与受信快照;无绑定输出 `task: null` 供机器分支。
|
|
169
|
-
- 注入结构化(阶段 1b):`<workflow-state>` 升级为属性事实头(`task`/`status`/`source` 进开标签,body 保留人读面包屑),三线一致并在协议契约冻结;planning/in_progress/review 状态下三线注入紧凑 `<decision-anchor>` 决策要点块(Python 复用 fact_view 解析单源),completed 终态与缺文件不注入。
|
|
170
|
-
- 多执行者语义(阶段 2):task.json 增加 `executor` 归属(start 写入会话 key 或显式 `--executor`);执行者冲突 fail-closed(`LIFECYCLE-EXECUTOR-001`,幂等重跑同样拦截),`--takeover` 显式接管并覆写归属(含已激活任务的幂等接管);`--executor` 允许无会话 CI/无头 start(不建会话绑定);子代理运行时上下文新增 `evidence` 证据位(`subagent evidence <id> --note [--artifact]`,CAS 保护、closed 可补记、不影响任务状态机);`run state` 人读摘要透出 Executor。
|
|
171
|
-
- 生态适配(阶段 3):新增 `./.cowork-flow/run mcp-state`——无依赖 MCP stdio 只读服务(newline-delimited JSON-RPC 2.0),工具 `task_state`(事实视图)与 `task_list`(活动任务概览);接入契约 `spec/contracts/fact-layer-access.md` 冻结只读保证与"不自创跨 agent 协议、adapter 保持薄"立场,写路径仍独占于 CLI 门禁链。
|
|
172
|
-
- 实现阶段守卫三件套:MCP `task_scope`/`task_specs` 只读工具(越界判定与规范清单,宿主无关、Python 单源);`<stage-contract>` 实现契约块三线注入(编辑白名单/规范入口/门禁预告/任务自声明验证命令,≤1200 字符,跨宿主逐字相等测试锁定);zcode 编辑越界实时警告(PostToolUse Edit/Write/MultiEdit 短路径,能力矩阵声明 `editScopeWarning`,其余宿主 fallback 到静态预告)。
|
|
173
|
-
- MCP 全局入口:npm CLI 新增 `cowork-flow mcp-state` 透传命令——从 cwd 向上定位最近 `.cowork-flow/` 并以继承 stdio exec 该项目的 `run mcp-state`;MCP 客户端全局注册一次(`cowork-flow mcp-state`)即可服务所有 cowork-flow 项目,无需逐项目配置。
|
|
176
|
+
- 修复带 `./` 前缀的 scope 条目导致 ZCode/OpenCode hook 崩溃。
|
|
177
|
+
- 修复超预算阶段契约产生未闭合文本的问题。
|
|
178
|
+
- MCP 拒绝仓库外路径和没有工具调用的 JSON-RPC 通知。
|
|
179
|
+
- JavaScript 与 Python 使用一致的 scope 过滤规则,delegated 子代理只读呈现父任务范围。
|
|
180
|
+
- 非法 UTF-8 锚点不再让整个阶段契约静默消失。
|
|
181
|
+
- review 缺少 `implement.jsonl` 时明确阻断。
|
|
174
182
|
|
|
175
|
-
##
|
|
183
|
+
## [1.1.0] - 2026-08-29
|
|
176
184
|
|
|
177
|
-
|
|
185
|
+
> npm 上的 1.0.0 包早于最终发版修复;下文阶段 0-3 的完整能力从 1.1.0 起实际发布。
|
|
178
186
|
|
|
179
|
-
|
|
180
|
-
- 注册 zcode 为一等宿主平台:`host-assets.json` platforms 条目 + `adapters/zcode/adapter.yaml`,alias 解析、平台检测、adapter 一致性校验与 doctor 全链路覆盖;`.zcode/` 维持插件分发不落工程。
|
|
181
|
-
- 纯 zcode 工程生命周期可用:技能落盘 `.cowork-flow/skills/`(宿主提示层仍由插件单源提供),内核 `skill_roots()` 解析 action owner;`detectAny` 增加 adapter 标记修复 sync 静默失养。
|
|
182
|
-
- contract digest 注入瘦身:SessionStart(含 compact/clear)注入完整块,UserPromptSubmit 仅重复指纹行。
|
|
183
|
-
- 新增 PostToolUse(Bash) 轮内刷新:生命周期命令落定后立即注入最新 workflow-state 与指纹行,无关命令零输出。
|
|
187
|
+
### Added
|
|
184
188
|
|
|
185
|
-
|
|
189
|
+
- 新增统一的工作流状态注入、contract digest 和 decision anchor 摘要。
|
|
190
|
+
- 新增 `run state [task] --json` 事实视图,汇总任务、计划、会话和规范绑定。
|
|
191
|
+
- 新增 executor 归属、冲突阻断、显式接管和无会话 CI 启动。
|
|
192
|
+
- 新增子代理 evidence 记录。
|
|
193
|
+
- 新增无第三方依赖的只读 MCP 服务,提供 `task_state` 和 `task_list`。
|
|
194
|
+
- 新增全局 `cowork-flow mcp-state` 透传入口。
|
|
186
195
|
|
|
187
|
-
|
|
188
|
-
- doctor 新增会话卫生检查:报告失效任务绑定、超龄未活跃、不可读的运行时会话文件。
|
|
196
|
+
## [1.0.0] - 2026-08-26
|
|
189
197
|
|
|
190
|
-
|
|
198
|
+
首个稳定主线版本,冻结任务状态、会话身份和宿主注入协议。
|
|
191
199
|
|
|
192
|
-
|
|
200
|
+
### Added
|
|
193
201
|
|
|
194
|
-
|
|
202
|
+
- 支持 Codex、OpenCode、Claude Code、DSH 和 ZCode 五个宿主。
|
|
203
|
+
- 新增 `<workflow-state>`、contract digest 和状态快照协议。
|
|
204
|
+
- 新增任务事实视图、executor 归属、stage contract、MCP 只读查询和全局 MCP 入口。
|
|
205
|
+
- 新增计划绑定、任务树、Party Mode 与 Batch 基础能力。
|
|
206
|
+
- 新增发布脚本、跨平台测试和主机资产同步。
|
|
195
207
|
|
|
196
|
-
###
|
|
208
|
+
### Changed
|
|
197
209
|
|
|
198
|
-
-
|
|
199
|
-
-
|
|
200
|
-
- 补齐协议失败静默降级边界测试;记录 DSH 子代理绑定 field-test 路径(subagent init/bind/close)。
|
|
210
|
+
- 会话绑定区分宿主 session id、显式 context id 和进程 fallback;不可信身份不再自动跟随其它会话。
|
|
211
|
+
- 状态转换与运行快照在同一事务单元内提交。
|
|
201
212
|
|
|
202
|
-
|
|
213
|
+
## [0.0.52] - 2026-08-26
|
|
203
214
|
|
|
204
|
-
|
|
205
|
-
- 归档任务快照绑定计划(snapshot bound plan into archived task)。
|
|
215
|
+
### Added
|
|
206
216
|
|
|
207
|
-
|
|
217
|
+
- 接入 ZCode 宿主、插件、hook、会话身份和项目技能。
|
|
218
|
+
- 生命周期命令后立即刷新工作流状态,无需等待下一条用户消息。
|
|
219
|
+
- doctor 新增会话卫生检查。
|
|
208
220
|
|
|
209
|
-
|
|
210
|
-
- 共享 PYTHONPATH bootstrap;批量动作与 codex hook 在 Windows 通过 cmd wrapper 运行。
|
|
211
|
-
- CI 在 Ubuntu/Windows 双平台跑全量 pytest;发布流程先同步 Skill replicas 再过全量门禁。
|
|
221
|
+
### Fixed
|
|
212
222
|
|
|
213
|
-
|
|
223
|
+
- 全局回退不再选择失效绑定或子代理会话。
|
|
224
|
+
- contract digest 在会话开始时输出完整内容,后续消息只输出指纹。
|
|
214
225
|
|
|
215
|
-
|
|
226
|
+
## [0.0.51] - 2026-08-15
|
|
216
227
|
|
|
217
|
-
|
|
228
|
+
### Added
|
|
218
229
|
|
|
219
|
-
|
|
230
|
+
- 接入 DeepSeek Harness 预设和 workflow-state hook。
|
|
231
|
+
- 任务可绑定计划,归档时保留计划快照。
|
|
232
|
+
- CI 在 Ubuntu 和 Windows 上运行 Python 测试。
|
|
220
233
|
|
|
221
|
-
###
|
|
234
|
+
### Fixed
|
|
222
235
|
|
|
223
|
-
-
|
|
224
|
-
-
|
|
236
|
+
- 统一平台和 ZCode 会话上下文解析。
|
|
237
|
+
- Windows 通过 cmd wrapper 启动批处理和 hook。
|
|
225
238
|
|
|
226
|
-
|
|
239
|
+
## [0.0.50] - 2026-08-10
|
|
227
240
|
|
|
228
|
-
|
|
229
|
-
- 状态恢复诊断增强;host manifest 契约对齐;批量与 party 编排器模块化。
|
|
230
|
-
- 保持 python 3.9 runner 兼容。
|
|
241
|
+
### Changed
|
|
231
242
|
|
|
232
|
-
|
|
243
|
+
- task-review 明确把用户绑定的 spec 视为必须完成的检查项。
|
|
233
244
|
|
|
234
|
-
|
|
245
|
+
## [0.0.49] - 2026-08-08
|
|
235
246
|
|
|
236
|
-
|
|
247
|
+
### Added
|
|
237
248
|
|
|
238
|
-
|
|
249
|
+
- 新增源码仓库 `source-refresh` 命令。
|
|
250
|
+
- 计划绑定 lite 在高风险任务启动前检查计划和 decision anchor。
|
|
239
251
|
|
|
240
|
-
|
|
241
|
-
- 移除 legacy changes control plane 与 add-session journal 工作流;guides 指引归入规划阶段。
|
|
252
|
+
### Changed
|
|
242
253
|
|
|
243
|
-
|
|
254
|
+
- 拆分任务上下文服务,精简 lifecycle CLI 适配层。
|
|
255
|
+
- 状态恢复、host manifest、Batch 和 Party Mode 使用明确模块边界。
|
|
256
|
+
- CI 增加 Windows 发布信心门禁。
|
|
244
257
|
|
|
245
|
-
|
|
246
|
-
- Batch 增加 inspect facts 与 host action 结果校验;恢复契约文档化。
|
|
258
|
+
## [0.0.48] - 2026-08-05
|
|
247
259
|
|
|
248
|
-
###
|
|
260
|
+
### Changed
|
|
249
261
|
|
|
250
|
-
-
|
|
251
|
-
-
|
|
262
|
+
- 拆分 lifecycle 命令并收紧路由和 runtime context 恢复规则。
|
|
263
|
+
- 移除旧 changes control plane 和 session journal 工作流。
|
|
264
|
+
- Party Mode 使用独立 board 存储;Batch 增加事实检查和 host action 结果校验。
|
|
265
|
+
- 新增 host capability matrix、集中同步策略和健康检查输出。
|
|
266
|
+
- README 增加任务流程图与故障排查说明。
|
|
252
267
|
|
|
253
|
-
|
|
268
|
+
## [0.0.47] - 2026-08-05
|
|
254
269
|
|
|
255
|
-
|
|
270
|
+
此版本未保留本地条目正文,详情见 [GitHub Release](https://github.com/fishlikewater/cowork-flow/releases/tag/v0.0.47)。
|
|
256
271
|
|
|
257
|
-
|
|
272
|
+
[Unreleased]: https://github.com/fishlikewater/cowork-flow/compare/v1.7.1...HEAD
|
|
273
|
+
[1.7.1]: https://github.com/fishlikewater/cowork-flow/compare/v1.7.0...v1.7.1
|
|
274
|
+
[1.7.0]: https://github.com/fishlikewater/cowork-flow/compare/v1.6.0...v1.7.0
|
|
275
|
+
[1.6.0]: https://github.com/fishlikewater/cowork-flow/compare/v1.5.0...v1.6.0
|
|
276
|
+
[1.5.0]: https://github.com/fishlikewater/cowork-flow/compare/v1.4.0...v1.5.0
|
|
277
|
+
[1.4.0]: https://github.com/fishlikewater/cowork-flow/compare/v1.3.0...v1.4.0
|
|
278
|
+
[1.3.0]: https://github.com/fishlikewater/cowork-flow/compare/v1.2.0...v1.3.0
|
|
279
|
+
[1.2.0]: https://github.com/fishlikewater/cowork-flow/compare/v1.1.4...v1.2.0
|
|
280
|
+
[1.1.4]: https://github.com/fishlikewater/cowork-flow/compare/v1.1.3...v1.1.4
|
|
281
|
+
[1.1.3]: https://github.com/fishlikewater/cowork-flow/compare/v1.1.2...v1.1.3
|
|
282
|
+
[1.1.2]: https://github.com/fishlikewater/cowork-flow/compare/v1.1.1...v1.1.2
|
|
283
|
+
[1.1.1]: https://github.com/fishlikewater/cowork-flow/compare/v1.1.0...v1.1.1
|
|
284
|
+
[1.1.0]: https://github.com/fishlikewater/cowork-flow/compare/v1.0.0...v1.1.0
|
|
285
|
+
[1.0.0]: https://github.com/fishlikewater/cowork-flow/compare/v0.0.52...v1.0.0
|
|
286
|
+
[0.0.52]: https://github.com/fishlikewater/cowork-flow/compare/v0.0.51...v0.0.52
|
|
287
|
+
[0.0.51]: https://github.com/fishlikewater/cowork-flow/compare/v0.0.50...v0.0.51
|
|
288
|
+
[0.0.50]: https://github.com/fishlikewater/cowork-flow/compare/v0.0.49...v0.0.50
|
|
289
|
+
[0.0.49]: https://github.com/fishlikewater/cowork-flow/compare/v0.0.48...v0.0.49
|
|
290
|
+
[0.0.48]: https://github.com/fishlikewater/cowork-flow/compare/v0.0.47...v0.0.48
|
|
291
|
+
[0.0.47]: https://github.com/fishlikewater/cowork-flow/releases/tag/v0.0.47
|