feat(workflow): MCP tools, skill, agentProviders#98
Conversation
Always include bundled skills root when subagents enabled so seeding subagent-delegation no longer hides later skills. Seed dynamic-workflows alongside subagent-delegation on init. Co-Authored-By: Claude <noreply@anthropic.com>
Load ordered enable-list from config/env, probe available providers on init and doctor, and filter workflow CLI providers by enabled∩live. Co-Authored-By: Claude <noreply@anthropic.com>
Gate on config.subagents. run_workflow spawns the same detached worker as CLI; status long-polls journal events; cancel requests cooperative stop. Co-Authored-By: Claude <noreply@anthropic.com>
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
| title: "Workflow status", | ||
| description: "Drain events for a workflow run; optional long-poll yield.", | ||
| inputSchema: { | ||
| runId: z.string(), |
There was a problem hiding this comment.
[P1] Status is authorized only by a global runId and is not scoped back to the open workspace. Please include workspaceId (or enforce equivalent ownership) and verify the run's workspaceId/root before returning events. The same check is needed for cancel and resume.
| const run = store.requestCancel(runId); | ||
| if (run.pid && (run.status === "running" || run.status === "starting")) { | ||
| try { | ||
| process.kill(run.pid, "SIGTERM"); |
There was a problem hiding this comment.
[P0] MCP cancellation has no grace-period supervision or hard-kill/terminal fallback. It sends one SIGTERM and can leave the database row running forever if the worker dies before journaling. Please reuse the same shared cancellation supervisor as the CLI and guarantee run_cancelled plus terminal status.
|
This PR also needs integration coverage for MCP disconnect survival, cancellation reaching a terminal state, paginated terminal event draining, and provider-config filtering. |
Summary
run_workflow/workflow_status/workflow_cancel(gate:subagents)dynamic-workflows+ seed both default skills on initagentProviderson user/ServerConfig; init/doctor probe write-backStack
PR5 of 5 · base:
pr/dw-4-cli-worker· tip of full stackTest plan
tsx src/config.test.ts(seeds both skills)tsx src/skills.test.tssubagents: true→ tools registerednpm run typecheck/npm test