83 lines
3.0 KiB
Markdown
83 lines
3.0 KiB
Markdown
# Checkpoint: Systemd PATH Fix + Heartbeat Consolidation
|
||
|
||
**Date:** 2026-04-06
|
||
**Session:** Main (Telegram)
|
||
|
||
---
|
||
|
||
## Context
|
||
|
||
Michael asked about whether OpenClaw could see inside the `openclaw.json` gateway config. This led to a broader discussion about heartbeat vs cron for multi-task intelligence gathering (email triage, weather, calendar, news, blog alerts, step/health monitoring).
|
||
|
||
---
|
||
|
||
## Key Decisions Made
|
||
|
||
### 1. Heartbeat Consolidation (✅ Done)
|
||
|
||
**Old approach:** 9 separate cron jobs, 6 delivering to Telegram throughout the day.
|
||
|
||
**New approach:** 1 consolidated heartbeat every 45 min, 6am–9pm Sydney, with internal checks for:
|
||
- Home monitor (motion/camera changes)
|
||
- Email inbox scan (personal emails only)
|
||
- Weather — Narooma (always report first beat of day; rain ≥10% or gusts ≥30 km/h triggers alert)
|
||
- Blog RSS scan (new articles)
|
||
- Real estate morning report (6am only)
|
||
|
||
**CRUD operations:**
|
||
- `Narooma Weather Day Update` cron → **disabled**
|
||
- All other crons → **left intact** (Michael disabled them himself)
|
||
- HEARTBEAT.md → **updated** with new weather logic
|
||
|
||
### 2. Heartbeat Config Change in openclaw.json (✅ Done)
|
||
|
||
**Before:**
|
||
- Every: 30m
|
||
- Active hours: 9:00 AM – 10:00 PM
|
||
|
||
**After:**
|
||
- Every: 45m
|
||
- Active hours: 6:00 AM – 9:00 PM
|
||
|
||
**Applied via:** direct JSON edit to `/home/openclaw/.openclaw/openclaw.json` → required manual `sudo systemctl restart openclaw` (Michael ran this)
|
||
|
||
### 3. OpenClaw CLI Not in PATH — Root Cause Identified
|
||
|
||
**Problem:** OpenClaw CLI (`openclaw`) lives at `/home/openclaw/.npm-global/bin/openclaw` but this directory was missing from the PATH in exec sessions, even though Michael's interactive shell has it set via `~/.bashrc`.
|
||
|
||
**Root cause:** systemd services don't source `~/.bashrc`. The `User=openclaw` directive in the systemd unit doesn't trigger a login shell — it just runs the binary directly with a minimal environment.
|
||
|
||
**Solution (proposed, pending Michael's action):** Add a drop-in systemd override at:
|
||
```
|
||
/etc/systemd/system/openclaw.service.d/path.conf
|
||
```
|
||
With content:
|
||
```
|
||
[Service]
|
||
Environment="PATH=/home/openclaw/.npm-global/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/bin"
|
||
```
|
||
|
||
Then reload: `sudo systemctl daemon-reload && sudo systemctl restart openclaw`
|
||
|
||
Michael also plans to add additional PATHs to this drop-in as needed.
|
||
|
||
---
|
||
|
||
## Pending Actions
|
||
|
||
| Action | Owner | Status |
|
||
|--------|-------|--------|
|
||
| Create systemd drop-in with PATH fix | Michael | Pending |
|
||
| Restart openclaw gateway after drop-in | Michael | Pending |
|
||
| Confirm `openclaw` CLI is reachable | Soren | Will verify once done |
|
||
|
||
---
|
||
|
||
## Notes
|
||
|
||
- All heartbeat checks use `bestEffort: false` except weather which uses `bestEffort: true`
|
||
- Real estate DB scrape cron (`5139e9b1`) runs independently at 6am — no delivery, just DB update
|
||
- Security audit cron (`healthcheck:security-audit`) remains untouched — weekly Sunday 3am
|
||
- Michael confirmed he built the OpenClaw system himself (not auto-installed by a package manager)
|
||
- OpenClaw version: 2026.4.2
|