Kanban:补齐任务操作链路,明确能力边界#615
Merged
EKKOLearnAI merged 3 commits intoMay 11, 2026
Merged
Conversation
- Align board slug normalization with canonical underscore/lowercase/64-char rules - Validate malformed Kanban action bodies before CLI shell-out - Narrow task log no-log handling and expose phase-1 capabilities - Extend client/server regression coverage for parity actions
This was referenced May 10, 2026
Merged
Collaborator
Author
|
补充验证:
这次补充验证主要覆盖 Web UI → server route → Hermes kanban bridge 的端到端 wiring;真实外部通知投递、plugin-native canonical proxy 仍不在本 PR 范围内。 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
相关:#594
Kanban 模块这次先把 comments、task log、reassign/specify/dispatch 这些已接入动作打通到 client/server 两侧,并把能力状态拆清楚。已经可用的显示可用,只接了一部分的显示部分支持;还没接好的 realtime、批量关系、外部通知和 adapter 迁移继续显示未完成,避免 UI 看起来能点,实际后端还没准备好。
为什么
当前的问题是:看板已经能把任务列出来,但“能看到任务”和“能安全操作任务”不是一回事。comments、task log、reassign/specify/dispatch 这些路径都会从 UI 经过 server route,再落到 Hermes Agent;如果 board 没传准,或者 UI 把还没完全接好的能力显示成可用,用户点下去就会得到一个看起来能操作、实际边界不清的结果。
所以这次需要先把中间这层理清楚:已接的动作都带 board,请求格式不对先在 server 拦住,能力状态也不再只有简单的“能/不能”,而是区分已支持、部分支持、还没接。后续再接 realtime / bulk / notify 时,就不用每个入口重新猜后端到底支持到哪一步。
完整形态是一个能真正操作 Kanban 的页面:按 board 看任务、改任务、查日志、加评论;UI 只展示后端已经支持到位的动作;后续 realtime、links/bulk、notify/subscription 都沿着同一套请求和能力状态接进来。
图景
边界
这次固定的边界是中间这层:已有动作要带 board、输入要先校验、能力状态要诚实返回、task log 不能吞掉真实 CLI 错误。图里虚线部分仍是后续工作,当前只保留明确的未接入 / 部分支持状态。
改动
commentsRead;还没接完整的能力不再只用一个可用开关表示。_和 64 字符 slug;省略 board 仍走default,显式空 board 拒绝。验证
已通过:
git diff --check npm test -- tests/client/kanban-api.test.ts tests/client/kanban-store.test.ts tests/client/kanban-view.test.ts tests/client/kanban-task-drawer.test.ts tests/server/hermes-kanban-service.test.ts tests/server/kanban-controller.test.ts tests/server/kanban-routes.test.ts npm run build结果:
已知:
npm test目前仍会在tests/server/session-sync.test.ts报no such table: sessions;单独跑该文件也失败,且不在这个 PR 的 diff 里。这里先不把 session DB fixture 问题混进 Kanban 改动。说明