wangjia fa472a06a7 feat: 同步引擎+Agent配置+依赖自动落位+看板大改(预览/md渲染/筛选/徽章组)
后端:
- src/sync/todo-sync.ts: todo.json 单向同步引擎(导入=首次同步,幂等,source_ref 映射,
  subs 复杂度修正为 easy,旧侧 done 历史事实优先 forceDone)
- 依赖自动落位:ready 意图按 deps 落位 blocked,依赖全 done 自动放行,
  daemon 启动 reconcileDeps 对账,手动绕过会弹回
- 新 API: PATCH projects/:id(autonomy/concurrency)、POST :id/sync、GET /api/agents、
  PATCH tasks/:id(title/priority/complexity 重置)
- daemon 定时同步(MAESTRO_SYNC_INTERVAL 默认 300s) + project.synced 事件
- priority 语义翻转: P0 最高/P1 默认/P2 最低,取值限 0..2,排序/映射/MCP/CLI 全跟进
- 静态服务发 no-cache 头(修浏览器吃旧 CSS/JS)
- schema 迁移: tasks.source_ref / projects.last_sync_at(ensureColumn 平滑升级旧库)

看板:
- 全屏预览模式(94vh 读完整方案+就地裁决,Esc/遮罩/裁决自动关闭)
- 产出 markdown 渲染为 HTML(零依赖渲染器,转义优先)
- 任务树筛选(复杂度/状态分组/关键字)+ 顶栏徽章组(待审批/可执行/执行中,hover 展开)
- 依赖可视化:详情 DEPS 区块 + 行内⛓等依赖 + 锚点跳转定位
- 按钮收敛:提交评审/编辑产出移除(CC 经 MCP 操作),界面只留用户动作
- Agent 执行面板 + 项目配置(并发/工作模式)+ 同步按钮

测试:21 个全过(新增 sync 幂等/迁移/patch/依赖落位/对账幂等)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-12 23:58:28 +08:00

maestro

多项目 TODO 管理与 Agent 执行系统(本地优先 daemon · Node/TypeScript)。

按任务复杂度(Hard / Medium / Easy)分级驱动审批闸,用后台 agentClaude Code)在隔离 git worktree 自动执行可执行任务,改动不自动合并、等你审。

  • 完整设计见 DESIGN.md
  • 当前状态:脚手架 + 基础模型/状态机/schemaPhase 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 CodeMCP

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 看板做)。

S
Description
No description provided
Readme 2 MiB
Languages
JavaScript 44.7%
TypeScript 44.7%
HTML 5.9%
CSS 4.1%
Shell 0.6%