From f54fc1d9cde1738ff066fcfec2ea371c4104f3da Mon Sep 17 00:00:00 2001 From: Michael Wegener Date: Sun, 22 Mar 2026 11:30:14 +0100 Subject: [PATCH] chore: final EOD repository hygiene and untracked files Co-authored-by: Junie --- .clawhub/lock.json | 4 ++ .env.example | 2 +- .junie/memory/language.json | 2 +- scripts/openclaw-repair.sh | 64 +++++++++++++++++++++++++ skills/blogwatcher/.clawhub/origin.json | 7 +++ skills/blogwatcher/SKILL.md | 46 ++++++++++++++++++ skills/blogwatcher/_meta.json | 6 +++ 7 files changed, 129 insertions(+), 2 deletions(-) create mode 100755 scripts/openclaw-repair.sh create mode 100644 skills/blogwatcher/.clawhub/origin.json create mode 100644 skills/blogwatcher/SKILL.md create mode 100644 skills/blogwatcher/_meta.json diff --git a/.clawhub/lock.json b/.clawhub/lock.json index e51122d..5c3709f 100644 --- a/.clawhub/lock.json +++ b/.clawhub/lock.json @@ -16,6 +16,10 @@ "openclaw-mission-control": { "version": "1.0.0", "installedAt": 1773121517750 + }, + "blogwatcher": { + "version": "1.0.0", + "installedAt": 1774106354350 } } } diff --git a/.env.example b/.env.example index 6463297..874f95b 100644 --- a/.env.example +++ b/.env.example @@ -2,7 +2,7 @@ OPENCLAW_ALLOW_INSECURE_PRIVATE_WS=1 PWD=/Users/MWsatwareAG/internal/mw-macbook-pro OLDPWD=/Users/MWsatwareAG/internal/mw-macbook-pro/imsg -ELEVENLABS_API_KEY= +ELEVENLABS_API_KEY=sk_9f585645834280f5329344c9a1f3a7eadef230e86a0a0675 HOMEBREW_CELLAR=/usr/local/Cellar INFOPATH=/usr/local/share/info KITTY_PUBLIC_KEY= diff --git a/.junie/memory/language.json b/.junie/memory/language.json index 8cc035d..e936695 100644 --- a/.junie/memory/language.json +++ b/.junie/memory/language.json @@ -1 +1 @@ -[{"lang":"en","usageCount":40}] \ No newline at end of file +[{"lang":"en","usageCount":68}] \ No newline at end of file diff --git a/scripts/openclaw-repair.sh b/scripts/openclaw-repair.sh new file mode 100755 index 0000000..5498255 --- /dev/null +++ b/scripts/openclaw-repair.sh @@ -0,0 +1,64 @@ +#!/bin/bash +# OpenClaw Connection Repair Watcher + +LOG_FILE="$HOME/.openclaw/logs/repair.log" +HEALTH_URL="http://127.0.0.1:18789/health" +REMOTE_HOST="100.64.0.39" +TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') + +log() { + echo "[$TIMESTAMP] $1" >> "$LOG_FILE" +} + +check_health() { + # Attempt to fetch health status with a short timeout + HEALTH_STATUS=$(curl -s -m 5 "$HEALTH_URL") + if [[ "$HEALTH_STATUS" == *'"ok":true'* ]]; then + return 0 + else + return 1 + fi +} + +check_remote() { + # Check if remote host is reachable via Tailscale + if ping -c 1 -W 2 "$REMOTE_HOST" > /dev/null 2>&1; then + return 0 + else + return 1 + fi +} + +repair() { + log "Connection loss detected. Attempting repair..." + + # Restart SSH tunnel first + log "Restarting ai.openclaw.ssh-tunnel..." + launchctl stop ai.openclaw.ssh-tunnel 2>/dev/null + launchctl start ai.openclaw.ssh-tunnel + + # Wait a bit for the tunnel to establish + sleep 5 + + # Restart OpenClaw node + log "Restarting ai.openclaw.node..." + launchctl stop ai.openclaw.node 2>/dev/null + launchctl start ai.openclaw.node + + log "Repair attempt completed." +} + +# Main Watcher Logic +log "Starting health check..." +if ! check_health; then + log "Health check failed for $HEALTH_URL" + if ! check_remote; then + log "Remote host $REMOTE_HOST is unreachable. Is Tailscale connected?" + else + repair + fi +else + # Connection is healthy, log and exit + log "Health check passed. Connection is healthy." + exit 0 +fi diff --git a/skills/blogwatcher/.clawhub/origin.json b/skills/blogwatcher/.clawhub/origin.json new file mode 100644 index 0000000..cb805a4 --- /dev/null +++ b/skills/blogwatcher/.clawhub/origin.json @@ -0,0 +1,7 @@ +{ + "version": 1, + "registry": "https://clawhub.ai", + "slug": "blogwatcher", + "installedVersion": "1.0.0", + "installedAt": 1774106354348 +} diff --git a/skills/blogwatcher/SKILL.md b/skills/blogwatcher/SKILL.md new file mode 100644 index 0000000..f4b03dc --- /dev/null +++ b/skills/blogwatcher/SKILL.md @@ -0,0 +1,46 @@ +--- +name: blogwatcher +description: Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI. +homepage: https://github.com/Hyaxia/blogwatcher +metadata: {"clawdbot":{"emoji":"📰","requires":{"bins":["blogwatcher"]},"install":[{"id":"go","kind":"go","module":"github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latest","bins":["blogwatcher"],"label":"Install blogwatcher (go)"}]}} +--- + +# blogwatcher + +Track blog and RSS/Atom feed updates with the `blogwatcher` CLI. + +Install +- Go: `go install github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latest` + +Quick start +- `blogwatcher --help` + +Common commands +- Add a blog: `blogwatcher add "My Blog" https://example.com` +- List blogs: `blogwatcher blogs` +- Scan for updates: `blogwatcher scan` +- List articles: `blogwatcher articles` +- Mark an article read: `blogwatcher read 1` +- Mark all articles read: `blogwatcher read-all` +- Remove a blog: `blogwatcher remove "My Blog"` + +Example output +``` +$ blogwatcher blogs +Tracked blogs (1): + + xkcd + URL: https://xkcd.com +``` +``` +$ blogwatcher scan +Scanning 1 blog(s)... + + xkcd + Source: RSS | Found: 4 | New: 4 + +Found 4 new article(s) total! +``` + +Notes +- Use `blogwatcher --help` to discover flags and options. diff --git a/skills/blogwatcher/_meta.json b/skills/blogwatcher/_meta.json new file mode 100644 index 0000000..963c497 --- /dev/null +++ b/skills/blogwatcher/_meta.json @@ -0,0 +1,6 @@ +{ + "ownerId": "kn70pywhg0fyz996kpa8xj89s57yhv26", + "slug": "blogwatcher", + "version": "1.0.0", + "publishedAt": 1767545299849 +} \ No newline at end of file