feat: add heartbeat_tick tool for automated task pickup (#13) (#14)

Adds heartbeat_tick tool that automates task pickup across all projects:

- Runs session health checks (zombie cleanup) before pickups
- Loops over all registered projects
- Picks up tasks by priority (To Improve > To Test > To Do)
- Supports two work modes:
  - parallel: each project can have DEV+QA running independently
  - sequential: only 1 DEV + 1 QA globally (can be different projects)
- Respects per-project maxDevWorkers/maxQaWorkers settings
- Supports dryRun mode and maxPickups limit
- Context guard: only works from DM/cron, blocks project groups

Also adds:
- workMode config option (parallel | sequential)
- maxDevWorkers/maxQaWorkers fields to Project type
This commit is contained in:
Lauren ten Hoor
2026-02-09 23:49:13 +08:00
committed by GitHub
parent 4f4952f978
commit 9afa318697
3 changed files with 515 additions and 1 deletions

View File

@@ -9,6 +9,7 @@ import { createSetupTool } from "./lib/tools/devclaw-setup.js";
import { createOnboardTool } from "./lib/tools/devclaw-onboard.js";
import { createAnalyzeChannelBindingsTool } from "./lib/tools/analyze-channel-bindings.js";
import { createContextTestTool } from "./lib/tools/context-test.js";
import { createHeartbeatTickTool } from "./lib/tools/heartbeat-tick.js";
import { registerCli } from "./lib/cli.js";
const plugin = {
@@ -29,6 +30,12 @@ const plugin = {
qa: { type: "string", description: "QA engineer model" },
},
},
workMode: {
type: "string",
enum: ["parallel", "sequential"],
description: "Work mode: parallel (each project independent) or sequential (1 DEV + 1 QA globally)",
default: "parallel",
},
},
},
@@ -64,6 +71,9 @@ const plugin = {
api.registerTool(createContextTestTool(api), {
names: ["context_test"],
});
api.registerTool(createHeartbeatTickTool(api), {
names: ["heartbeat_tick"],
});
// CLI: `openclaw devclaw setup`
api.registerCli(({ program }: { program: any }) => registerCli(program), {
@@ -71,7 +81,7 @@ const plugin = {
});
api.logger.info(
"DevClaw plugin registered (10 tools, 1 CLI command)",
"DevClaw plugin registered (11 tools, 1 CLI command)",
);
},
};