Skip to content

feat: migrate per-agent heartbeats to crons + forbid HEARTBEAT.md - #21

Open
MarquisG wants to merge 2 commits into
mainfrom
feature/migrate-heartbeats-to-crons
Open

feat: migrate per-agent heartbeats to crons + forbid HEARTBEAT.md#21
MarquisG wants to merge 2 commits into
mainfrom
feature/migrate-heartbeats-to-crons

Conversation

@MarquisG

Copy link
Copy Markdown
Contributor

Summary

OpenClaw's per-agent agents.list[].heartbeat does not fire for squad sub-agents today, so every recurring wake is now driven by a cron in crons/jobs.json — each squad's old HEARTBEAT.md procedure is embedded in a new heartbeat-pulse cron payload on the same 2h cadence, the heartbeat field is removed from agent.json (rejected as unknown), and HEARTBEAT.md is 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 the create-squad / validate-squad skills 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.mjs passes locally (CI runs it too).
  • If a squad was added: the README.md official squad table is updated. (n/a — no new squads)
  • If a squad was changed: its manifest.json version is bumped (semver).
  • No <!-- TODO --> placeholders or template scaffolding left in a real squad bundle.

🤖 Generated with Claude Code

MarquisG and others added 2 commits May 26, 2026 01:01
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
@getpancake getpancake Bot added the P1 High: broken functionality affecting users, needs fix soon label Jun 8, 2026
@getpancake

getpancake Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

🤖 Triage Assessment — P1 (High Priority)

Classification: Broken functionality fix, needs prompt review

This PR fixes a real runtime defect: agents.list[].heartbeat does not fire for squad sub-agents, meaning all existing squads (ai-seo, outreach, reddit) have non-functional heartbeats. The fix migrates heartbeat procedures into crons/jobs.json, removes the broken heartbeat field from agent.json, and adds validator enforcement of HEARTBEAT.md as a forbidden filename. 25 self-tests are included; squad versions are bumped correctly.

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:

  • Prioritize review — this has been open 13 days without a reviewer
  • Confirm cron cadence matches old heartbeat cadence (2h)
  • Deploy to test pod and verify cron fires correctly for at least one squad

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

P1 High: broken functionality affecting users, needs fix soon

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant