b60225779c641fdf37ed5cf4ae8eb05a62514491
## 后端
- Store.deleteTask():BFS 收集子孙 id,清理 events,删根节点(子孙/runs/approvals 由 FK CASCADE 自动清除),广播 task.updated{kind:'delete'}
- API POST /api/tasks/:id/cancel:transition → cancelled(复用状态机守卫)
- API DELETE /api/tasks/:id:级联删除任务及子孙
## 前端
- 任务行(task-row):鼠标悬停后右侧出现「✕取消」「🗑删除」浮动按钮,点击弹 confirm() 二次确认(含子孙数提示),stopPropagation 防止触发行展开
- 任务详情(detail):底部行内确认区——「取消任务」显示确认条(确认取消 / 算了),「删除」显示含级联提示的高亮确认条,折叠/切换项目时自动清除确认状态
- 归档详情对话框:底部增加「🗑 删除归档」按钮,confirm() 确认后删除并关闭弹窗
- CSS:.task-row-cancel/.task-row-delete(悬停淡入)、.detail-actions / .detail-action-confirm / .detail-confirm-msg、.archive-modal-actions
## 测试
- 新增 4 个 store 测试:deleteTask 叶子、deleteTask 级联、deleteTask 不存在、transition→cancelled
- 全部 78 条 pass
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
maestro
多项目 TODO 管理与 Agent 执行系统(本地优先 daemon · Node/TypeScript)。
按任务复杂度(Hard / Medium / Easy)分级驱动审批闸,用后台 agent(Claude Code)在隔离 git worktree 自动执行可执行任务,改动不自动合并、等你审。
- 完整设计见 DESIGN.md。
- 当前状态:脚手架 + 基础模型/状态机/schema(Phase 1 起步)。
结构
src/model/ 复杂度、状态机、实体类型(已落地)
src/store/ SQLite schema + 访问层
src/api/ REST + WebSocket
src/mcp/ MCP server(给 Claude Code)
src/executor/ Agent SDK 封装、worktree 管理、verify
src/daemon/ maestrod 入口、编排器、worker
web/ 看板 cli/ maestro CLI
开发
npm install
npm run typecheck # tsc --noEmit
npm run build # → dist/
npm run dev # 启动 daemon(开发)
依赖版本为初始值;MCP SDK 与 Claude Agent SDK 在 Phase 2 接入时按官方文档核定后再加。
接入 Claude Code(MCP)
先 npm run build,并保证 maestrod 在跑(npm run dev,默认 http://127.0.0.1:4517)。两种接法:
# 方式一:claude mcp add(在要接入的项目里执行)
claude mcp add maestro -e MAESTRO_URL=http://127.0.0.1:4517 -- node /绝对路径/maestro/dist/mcp/index.js
// 方式二:项目根放 .mcp.json(模板见本仓库 .mcp.json.example)
{ "mcpServers": { "maestro": {
"command": "node",
"args": ["/绝对路径/maestro/dist/mcp/index.js"],
"env": { "MAESTRO_URL": "http://127.0.0.1:4517" } } } }
工具:list_projects / create_project / list_tasks / get_task / create_task / decompose_task / write_plan / write_spec / write_operations / update_status / get_next_executable / get_pending_approvals(只读;accept/reject 在 Web 看板做)。
Description
Languages
JavaScript
44.7%
TypeScript
44.7%
HTML
5.9%
CSS
4.1%
Shell
0.6%