Skip to content

Latest commit

 

History

History
103 lines (82 loc) · 4.14 KB

File metadata and controls

103 lines (82 loc) · 4.14 KB

HEARTBEAT.md

Every Heartbeat

Update lastHeartbeat in memory/heartbeat-state.json with current Unix timestamp. This lets me detect gaps and know how long I was offline.

Recovery Notice Check

Check ~/.openclaw/recovery-notice.json at the start of each heartbeat:

  • If exists → system recovered from failure while you were offline
  • Log the recovery (action, reason, timestamp)
  • Delete the notice file after acknowledging
  • Mention it in startup message if you notify Alex

Startup Check

On first heartbeat, check memory/heartbeat-state.json for lastHeartbeat. If the gap is more than 1 hour, calculate downtime and note it when sending startup message. Also check lastStartupNotify — if it's been more than 10 minutes, send Alex a brief "I'm back online" message (with downtime if significant) and update both timestamps. Keep it short. Don't be annoying about it. Respect quiet hours (11pm-6am).

Regular Checks (rotate through these, don't do all every time)

  • Allbirds replacement — Check for new emails in thread 19bb940707b7116c (order UK6687907). If new reply from Allbirds, notify Alex. Remove when resolved.

Email Monitoring (every heartbeat)

Check for new unread emails worth flagging:

gog gmail messages search "is:unread" --max 10

Priority (notify Alex immediately):

  • School/ParentMail emails relevant to Pearl (Year 1) — skip stuff for other year groups
  • Delivery updates (parcels arriving today)
  • Urgent/time-sensitive items

Worth mentioning:

  • Important-looking personal emails
  • Bills/statements that need attention
  • Replies to ongoing threads

Skip silently:

  • Marketing/newsletters
  • Automated notifications
  • Spam/promotions

School/Pearl emails → future broadcast: Once patterns are established, post school-related updates to working-parents group (like newsletters).

Weekly Checks

Pearl's Year 1 Newsletter (Mondays ~4pm)

On Monday evenings, check for new Year 1 Newsletter:

gog gmail messages search "from:parentmail subject:\"Year 1 Newsletter\"" --max 1

If there's a new one (check against memory/newsletter-state.json):

  1. Download & Process:

    • Get email, extract Google Drive PDF link
    • Create folder: memory/newsletters/YYYY-MM-DD/
    • Download PDF → original.pdf
    • Convert to PNG → page.png
    • Analyze with image tool → extract structured data
  2. Save Files:

    • content.json — structured data (events, learning, reminders, actions)
    • summary.md — short format (max 12 lines, heads up before learning)
  3. Broadcast to Groups:

  4. Create Cron Reminders for Time-Sensitive Actions:

    • If newsletter mentions "opens at X", "deadline X", "sign up by X"
    • Also check related ParentMail emails for booking links
    • Create cron job to fire at that time
    • Post reminder to broadcast groups with action link
  5. Notify Alex:

    • Send summary to Alex DM
    • Flag any events needing calendar entries
  6. Update State:

    • Track in memory/newsletter-state.json

Active Monitors

Facebook Marketplace (via Messenger)

Monitor https://www.messenger.com/marketplace/ for new buyer messages.

  • Browser tab kept open in clawd profile (targetId in memory/marketplace-state.json)
  • Snapshot the tab, look for conversations where last message isn't "You:" (unanswered)
  • Compare against knownConversations in state file to detect new messages
  • Check every 2-3 heartbeats during waking hours

I handle negotiations:

  • Respond to inquiries (confirm availability, answer questions)
  • Counter lowball offers, hold firm on price when interest is good
  • Track all activity in memory/marketplace-listings.json
  • ALWAYS check with Alex before accepting any offer
  • Never double-book — only one buyer pending per item
  • See memory/procedures/marketplace.md for full negotiation rules

WhatsApp Disconnect Tracking (until 2026-02-07)

Log any WhatsApp disconnects to memory/whatsapp-disconnect-tracker.json. After a week, summarize results for Alex — did the keepAliveIntervalMs patch reduce disconnects?