#1742(按群自动关闭无交互会话)已合入,双审 0 阻断。以下为评审中记录的非阻断 followup,集中跟踪: ## 测试硬化(变异探针发现的 fail-safe 冗余分支无直接用例) `src/core/group-idle-close-sweeper.ts` 的复合 guard 中,以下 3 个子句删除后现有测试仍全绿(代码方向安全,但缺切片断言钉住): - [ ] 休眠分支 `ds.workerPort != null` 保留条款(与 dashboard/session-cleanup 的 dormant webPort 闸同语义:仍在提供终端的行不可扫) - [ ] `ds.tuiPromptProcessing`(TUI 答案已派发、等待 worker ACK 期间防重复点击) - [ ] `ds.pendingRepoCommitInFlight`(内存 owner 正在为 pending repo 准备首个 worker) 建议在 `test/group-idle-close-sweeper.test.ts` 各补一行夹具级断言。 ## 结构:guard 清单收敛 - [ ] `isGroupIdleCloseCandidate` 目前是**手写枚举**十几个在途字段。`ds.pendingCrossPrincipalSuggestions` 等字段不在清单内;目前该队列在 master 上**零生产者**(只有读者),今天不可触发,但将来若新增生产者会被这份手写清单静默漏掉。建议把「会话持有不可放弃的在途工作」收敛为一个共享的 in-flight 谓词(可与 session-mutation-guard / idle-worker-sweeper 的候选判定共用),替代各处继续枚举字段。 ## 文档 / UX - [ ] 本特性(按群配置,最小 1 小时,daemon 每 60s 扫)与既有**全局** auto-cleanup(dashboard/auto-cleanup.ts,24/72/168h,dashboard 跨 bot 定时清理)并存,docs-site 群组管理/options 文档两处应互相指引,避免使用者混淆两个开关。 - [ ] 自动关闭发出的是标准关闭卡,未注明「按群无交互策略自动关闭」;建议关闭上下文/卡片上体现来源,便于用户理解会话为何被关。 ## 真机验收 - [ ] 作者仅在 macOS + 合成数据验证。功能默认关,部署后建议真机点一次:开关保存热生效、天/小时边界、执行中/等待确认会话被跳过、休眠会话关闭。 参考:#1742;落地前修复的 bun-test 基线红见 #1835。 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Activity