• ## W14 · POST /:cid/tasks 补上前端调用方
    
    该端点此前**全仓库没有任何前端调用方** —— 界面走查确认过:用户在控制台上
    没有任何办法给公司下达任务,只能 curl。这是「实现在、零调用方」在 P3 里的
    第 N 次出现(W8 刚给 replan 补上,tasks 还欠着)。
    
    新增 DispatchTaskButton.vue:
    - 手动/自动**在下达时就选**,不是跑起来再改 —— execution_mode 是 run 的属性,
      起 run 时定;后补一个下拉会让人以为能中途换
    - 自动模式在这一步就给成本预警(真 CLI 一次中等任务 $10-20 / 1-2 小时),
      GraphRunPane 的「启动」那道确认是针对已有 run 的,下达是更早的闸门
    - 409(v1 并发约束)连同服务端 hint 原样透出,比翻译成「出错了」有用
    - run 在跑时按钮直接不出现,而不是让人点了吃 409
    
    挂载:有图未跑 run 时给主操作位(这时候它是页面唯一该做的事),
    有 run 时收进标题栏。顺手修 .left-actions 缺 gap 导致两个按钮重叠。
    
    ## 第二次真 CLI 冒烟(worktree 隔离,主仓库 data/ 零写入)
    
    链路比上一轮走得远得多,两个硬缺陷的修复都在真跑中直接验证:
    
    1. **R-18.1 端到端成立**:POST /create 自动触发 orggraph-planning 真跑,
       它自己把图落库(3 节点 4 边,含两条 backward fail 边)**并自己雇了
       org-planner / org-coder / org-validator** —— Step 7 的招聘真执行了。
    2. **W5/W6 自雇再次验证,且规划质量明显更高**:workgraph-planning 规划出
       brd → prd → benchmark → validator 四节点主干,两条回退边一条带
       fail_reason=input_underspecified、一条无 reason 作兜底 —— 它自己用上了
       D.2.2 的细分路由并满足 fail-fallback-edge 规则。四个本体全部自雇。
    3. **守卫归属修复直接命中**:timeline 里
       「本次调用窗口内有 1 处 agent 运行态文件改动,无法归属到本节点,不计入越界
         unattributable = ['M system/agents/agent-creator/.claude/scheduled_tasks.json']」
       ——正是上一轮把成功节点判成 fail 的那个文件,这次被正确摘出,
       org-planner-brd → **success**(上一轮它跑起来了但被误判)。
    4. tokens 真的在计量(24,218),mock 下恒为 0。
    
    产出位置正确:brd.md 落在 runs/<rootRunId>/nodes/<nodeRunId>/,
    项目根 projects/p-4hjo36 按 root run 分配。worktree 源码跑完已复原到跑前状态。
    
    测试 760/760 全绿(72 文件)。
    
    Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
    yibo authored
     
    Browse File »