refactor #22

Merged
hzhang merged 33 commits from refactor into main 2026-04-10 07:49:57 +00:00
Showing only changes of commit 8073c33f2c - Show all commits

View File

@@ -258,42 +258,42 @@
### B4. `plugin/hooks/message-received.ts` ### B4. `plugin/hooks/message-received.ts`
#### B4.1 Multi-Message Mode 入口/出口 #### B4.1 Multi-Message Mode 入口/出口
- [.] 检测 human 消息中的 multi-message start marker - [x] 检测 human 消息中的 multi-message start marker
- [.] start marker 命中时,将 channel 切换到 multi-message mode - [x] start marker 命中时,将 channel 切换到 multi-message mode
- [.] 检测 human 消息中的 multi-message end marker - [x] 检测 human 消息中的 multi-message end marker
- [.] end marker 命中时,将 channel 退出 multi-message mode - [x] end marker 命中时,将 channel 退出 multi-message mode
- [.] 避免 moderator 自己的 prompt marker 消息触发 mode 切换 - [x] 避免 moderator 自己的 prompt marker 消息触发 mode 切换
#### B4.2 Multi-Message Mode 中的 moderator 提示 #### B4.2 Multi-Message Mode 中的 moderator 提示
- [.] 当 channel 处于 multi-message mode 时,人类每发一条消息触发 moderator prompt marker - [x] 当 channel 处于 multi-message mode 时,人类每发一条消息触发 moderator prompt marker
- [.] prompt marker 文案/内容使用配置项 `multiMessagePromptMarker` - [x] prompt marker 文案/内容使用配置项 `multiMessagePromptMarker`
- [.] 避免重复触发或回环 - [x] 避免重复触发或回环
#### B4.3 与现有 mention override 的兼容 #### B4.3 与现有 mention override 的兼容
- [ ] 明确 multi-message mode 下 human @mention 是否忽略 - [x] 明确 multi-message mode 下 human @mention 是否忽略
- [ ] 避免 multi-message mode 与 mention override 冲突 - [x] 避免 multi-message mode 与 mention override 冲突
### B5. `plugin/hooks/before-model-resolve.ts` ### B5. `plugin/hooks/before-model-resolve.ts`
- [.] 当 channel 处于 multi-message mode 时,强制相关 session 走 `noReplyProvider` / `noReplyModel` - [x] 当 channel 处于 multi-message mode 时,强制相关 session 走 `noReplyProvider` / `noReplyModel`
- [.] 确保 multi-message mode 的 no-reply 覆盖优先于普通 turn 决策 - [x] 确保 multi-message mode 的 no-reply 覆盖优先于普通 turn 决策
- [.] 确保退出 multi-message mode 后恢复正常 turn 逻辑 - [x] 确保退出 multi-message mode 后恢复正常 turn 逻辑
- [.] 补充必要调试日志 - [x] 补充必要调试日志
### B6. `plugin/turn-manager.ts` ### B6. `plugin/turn-manager.ts`
#### B6.1 Multi-Message Mode 与 turn pause/resume #### B6.1 Multi-Message Mode 与 turn pause/resume
- [ ] 设计 multi-message mode 下 turn manager 的暂停语义 - [x] 设计 multi-message mode 下 turn manager 的暂停语义
- [ ] 明确 pause 是通过外层 gating还是 turn-manager 内显式状态 - [x] 明确 pause 是通过外层 gating还是 turn-manager 内显式状态
- [ ] 退出 multi-message mode 后恢复 turn manager - [x] 退出 multi-message mode 后恢复 turn manager
- [ ] 退出时确定下一位 speaker 的选择逻辑 - [x] 退出时确定下一位 speaker 的选择逻辑
#### B6.2 Shuffle Mode #### B6.2 Shuffle Mode
- [.] 为每个 channel 增加 `shuffling` 开关状态 - [x] 为每个 channel 增加 `shuffling` 开关状态
- [.] 识别“一轮最后位 speaker 发言完成”的边界点 - [x] 识别“一轮最后位 speaker 发言完成”的边界点
- [.] 在进入下一轮前执行 reshuffle - [x] 在进入下一轮前执行 reshuffle
- [.] 保证上一轮最后 speaker 不会成为新一轮第一位 - [x] 保证上一轮最后 speaker 不会成为新一轮第一位
- [.] 处理单 Agent 场景 - [x] 处理单 Agent 场景
- [.] 处理双 Agent 场景 - [x] 处理双 Agent 场景
- [.] 处理 mention override / waiting-for-human / dormant 状态下的 reshape 边界 - [x] 处理 mention override / waiting-for-human / dormant 状态下的 reshape 边界
### B7. `plugin/commands/dirigent-command.ts` ### B7. `plugin/commands/dirigent-command.ts`
- [x] 新增 `/turn-shuffling` 子命令 - [x] 新增 `/turn-shuffling` 子命令