feat: 补齐深挖任务委托的灰度开关(issue #61) #64
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/61-delegate-task-gray-release-toggle"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #61
这个 PR 做了什么
补齐
docs/design.md"上线路线"第 5 阶段原文承诺的深挖任务委托"灰度、可一键关"——issue #52 PRD → #53-#56(PR #57-#60)实现完成后核实,delegate_task/cancel_delegate_task两个工具恒可见,没有落地任何专属开关。已如实记录进 ADR-0020/CONTEXT.md/design.md(用删除线标注,不是悄悄改口)。本 PR 补上这个开关本身。静态 config 开关
config.py:新增arise_delegate_enabled: bool = True(默认保持现有恒开启行为不变,不是破坏性变更)工具可见性门控
tools.py:DELEGATE_TASK_SCHEMA/CANCEL_DELEGATE_TASK_SCHEMA从_ALWAYS_AVAILABLE_STATIC_SCHEMAS移出,改为build_tool_schemas()按新增的delegate_enabled参数条件追加——同capabilities.poke_send/capabilities.reaction_send/capabilities.profile_like既有"能力为假=模型看不到"策略,不是调用时报错note_pending_intent那套模式):arise_delegate_enabled是静态 host 部署级开关,跟capabilities一样是"两条触发路径共享同一份、不按 chat 现算"的值,PR #59 review 已经拍板深挖任务委托不适用渐进解锁的"新部署更保守"语义,本 PR 不重开这个讨论runtime_loop.py:RuntimeLoop新增delegate_enabled构造参数(同spontaneous_goal_unlocked先例,必需参数),__init__.py从 config 读取注入不影响存量状态
DelegatedTaskRegistry是独立进程内状态,与RuntimeLoop构造无关)_callback_scan/run_callback()从不查询这个开关,已登记的待送回记录照常送达)测试
默认开启/关闭时工具列表含/不含这两个工具;关闭不影响其它恒可见工具;关闭不影响已登记的运行中任务;关闭不影响 Callback 送回管线本身。
全部 894 个测试通过,
ruff check/ruff format干净。Code review
跑过
/code-review(Standards + Spec 两轴并行子智能体):build_tool_schemas参数门控而非NOTE_PENDING_INTENT_SCHEMA式外部条件追加"这个设计选择站得住(arise_delegate_enabled语义上和capabilities同属"静态、两条触发路径共享"一类,不是spontaneous_goal_unlocked那种按 chat 现算的值),未发现硬性标准违反;两处风格建议——一处已采纳(合并连续 append 为 extend),一处评估后判断维持现状更合适(见对应 commit 说明)