From d4513c1482c85a930b7fdf630e63bc67b505754f Mon Sep 17 00:00:00 2001 From: dtzp555 Date: Sun, 8 Mar 2026 19:19:42 +1000 Subject: [PATCH] Wire minimal project-heartbeat runtime state --- HEARTBEAT.md | 21 +++++++++++++++++++++ memory/CURRENT_STATE.md | 5 +++-- memory/project-heartbeat-state.json | 16 ++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 HEARTBEAT.md create mode 100644 memory/project-heartbeat-state.json diff --git a/HEARTBEAT.md b/HEARTBEAT.md new file mode 100644 index 0000000..7d3236f --- /dev/null +++ b/HEARTBEAT.md @@ -0,0 +1,21 @@ +# HEARTBEAT.md + +# Task progress / silence guardrails +# - When Tao assigns a task that takes > a few minutes, acknowledge quickly with Plan + ETA. +# - Then send updates at *milestones* (not time-based spam). +# - If ETA slips or a tool/process is still running unusually long, proactively message Tao with: status + blocker + next step. +# +# Project-heartbeat runtime rule +# - If `memory/project-heartbeat-state.json` exists and contains an active project with state `armed`, treat it as a live anti-silence timer. +# - Compare now vs `lastUserVisibleUpdateAt`. +# - If elapsed time >= `timeoutMin`, switch mentally to `checking` and inspect: +# 1) worker/session traces +# 2) CURRENT_STATE.md +# 3) known blockers (launch/model/auth/tool/path/scope/policy/external) +# - Then send a real user-visible status update (who / status / output / next). +# - After sending the update, treat the timer as reset from now. +# - If the project state is `done`, `paused`, `failed`, or `cancelled`, do not send heartbeat progress nudges. +# +# Periodic check (lightweight): look for any "in-flight" work mentioned in today's memory notes or running background processes; +# if found and Tao hasn't been updated recently, send a short milestone/status update. + diff --git a/memory/CURRENT_STATE.md b/memory/CURRENT_STATE.md index 4ca0370..bb12607 100644 --- a/memory/CURRENT_STATE.md +++ b/memory/CURRENT_STATE.md @@ -3,13 +3,14 @@ _Last updated: 2026-03-08 11:13 Australia/Brisbane_ ## In Flight -- [in_progress] continuity architecture rollout — main — defining CURRENT_STATE + dual reporting protocol -- [in_progress] anti-silence workflow hardening — main — turning reporting into explicit state-change rules +- [in_progress] Geopolitical Turbulence Trapper — main — Milestone 2: brief + schema + module/page draft in progress +- [in_progress] anti-silence workflow hardening — main — project-heartbeat runtime state + heartbeat hook added ## Blocked / Waiting - none ## Recently Finished +- promo_worker packaging pass completed — added MIT LICENSE to execution-agent-planner and gh-pr-release-flow, added README related-project links across OCM/clawkeeper/skill repos, merged OCM PR #12, published clawkeeper v0.1.0 - Tao's original 1-5 task list completed (clawkeeper switch --dry-run, OCM checklist, repo rule detector, execution-agent dispatch drill, OCM CLI copy helper) - All recurring cron jobs disabled except Daily OpenClaw backup - GPT-5.4 support restored again after update-related breakage; if it breaks again, report Tao immediately diff --git a/memory/project-heartbeat-state.json b/memory/project-heartbeat-state.json new file mode 100644 index 0000000..31b7359 --- /dev/null +++ b/memory/project-heartbeat-state.json @@ -0,0 +1,16 @@ +{ + "version": 1, + "activeProject": { + "name": "Geopolitical Turbulence Trapper", + "state": "armed", + "timeoutMin": 10, + "lastUserVisibleUpdateAt": "2026-03-08T19:04:00+10:00", + "lastCheckAt": null, + "trackedWorkers": [ + "data_worker", + "strategy_worker", + "dashboard_worker" + ], + "notes": "Use project-heartbeat rules. If timeout expires with no meaningful update, inspect worker traces / CURRENT_STATE / blocker state and send a user-visible update. Close when project is done, paused, failed, or cancelled." + } +}