feat: migrate per-agent heartbeats to crons + forbid HEARTBEAT.md - #21
feat: migrate per-agent heartbeats to crons + forbid HEARTBEAT.md#21MarquisG wants to merge 2 commits into
Conversation
OpenClaw's per-agent agents.list[].heartbeat does not fire for squad sub-agents today, so every recurring wake must be driven by a cron in crons/jobs.json. Each squad's old HEARTBEAT.md procedure is now embedded in a heartbeat-pulse cron payload targeting the squad's agent on the same 2h cadence. The heartbeat field is removed from agent.json (now rejected as an unknown field) and HEARTBEAT.md is a forbidden filename anywhere in a bundle. Validator, schema, tests, docs, and create-squad / validate-squad skills updated to match; squad versions bumped. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…beats-to-crons # Conflicts: # squads/reddit-squad/SQUAD.md # squads/reddit-squad/agents/reddit-agent/HEARTBEAT.md # squads/reddit-squad/agents/reddit-agent/MEMORY.md # squads/reddit-squad/manifest.json
🤖 Triage Assessment — P1 (High Priority)Classification: Broken functionality fix, needs prompt review This PR fixes a real runtime defect: Rationale for P1: This fixes broken autonomous behavior across 3 production-ish squads. The validator and schema changes are well-tested, and the approach is clean. The PR has been open since May 26 and is unreviewed — that's too long for a fix to a systemic runtime issue. Action items:
|
Summary
OpenClaw's per-agent
agents.list[].heartbeatdoes not fire for squad sub-agents today, so every recurring wake is now driven by a cron incrons/jobs.json— each squad's oldHEARTBEAT.mdprocedure is embedded in a newheartbeat-pulsecron payload on the same 2h cadence, theheartbeatfield is removed fromagent.json(rejected as unknown), andHEARTBEAT.mdis added to the validator's forbidden filenames. Validator + schema + 25 self-tests, docs (CLAUDE.md,README.md,bundle-reference.md,creating-a-squad.md,how-squads-work.md), and thecreate-squad/validate-squadskills are updated to match. Squad versions bumped: ai-seo-squad → 1.2.0, outreach-squad → 0.2.0, reddit-squad → 1.1.0.Checklist
node scripts/validate.mjspasses locally (CI runs it too).README.mdofficial squad table is updated. (n/a — no new squads)manifest.jsonversionis bumped (semver).<!-- TODO -->placeholders or template scaffolding left in a real squad bundle.🤖 Generated with Claude Code