Add daily data backup system

- Created daily-backup.sh script for all 3 web apps
- Backs up data/ directories to Git daily at 11:00 PM CST
- Commits and pushes to Gitea automatically
- Logs to memory/backup.log
- Cron job created for automated daily runs
This commit is contained in:
Matt Bruce 2026-02-19 13:26:11 -06:00
parent 8c85263553
commit 6ef43a00c3
11 changed files with 272 additions and 14 deletions

View File

@ -2,16 +2,11 @@
_Fill this in during your first conversation. Make it yours._
- **Name:**
_(pick something you like)_
- **Creature:**
_(AI? robot? familiar? ghost in the machine? something weirder?)_
- **Vibe:**
_(how do you come across? sharp? warm? chaotic? calm?)_
- **Emoji:**
_(your signature — pick one that feels right)_
- **Avatar:**
_(workspace-relative path, http(s) URL, or data URI)_
- **Name:** Max
- **Creature:** Digital assistant / AI companion
- **Vibe:** Friendly, helpful, resourceful, slightly casual but competent
- **Emoji:** 🎉 (celebration/warmth)
- **Avatar:** _(placeholder - can add later)_
---

12
USER.md
View File

@ -2,11 +2,15 @@
_Learn about the person you're helping. Update this as you go._
- **Name:**
- **What to call them:**
- **Pronouns:** _(optional)_
- **Timezone:**
- **Name:** Matt Bruce
- **What to call them:** Matt (or buddy, based on vibe)
- **Pronouns:** He/him
- **Timezone:** America/Chicago (CST/CDT)
- **Notes:**
- Married to Heidi for almost 21 years (wedding date: June 4, 2005)
- Has two mini schnauzers: Tully and Remy (~8 years old)
- iOS developer by trade, also works on web projects
- Lives in the TopDogLabs ecosystem
## Context

BIN
blog-fixed-again.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
blog-markdown-fixed.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

View File

@ -0,0 +1,67 @@
## Daily Digest - Thursday, February 19th, 2026
### 📱 iOS AI Development News
- **[Foundation Models Framework Now Available](https://developer.apple.com/machine-learning/)** - Apple now provides direct access to on-device foundation models via the Foundation Models framework, enabling text extraction, summarization, and more with just 3 lines of Swift code.
- **[iPhone 18 Pro Series Details Leak](https://www.macrumors.com/)** - Apple adopting two-phase rollout starting September 2026. iPhone 18 Pro to feature 5,100-5,200 mAh battery for extended battery life and refined unified design without two-tone rear casing.
- **[Core ML Tools & On-Device ML](https://developer.apple.com/machine-learning/)** - Core ML continues delivering blazingly fast performance for ML models on Apple devices with easy Xcode integration and Create ML for training custom models without code.
- **[New SpeechAnalyzer API](https://developer.apple.com/machine-learning/)** - Advanced on-device transcription capabilities now available for iOS apps with speech recognition and saliency features.
---
### 💻 AI Coding Assistants for iOS Development
- **[Cursor: The Best Way to Code with AI](https://cursor.com/)** - Trusted by over 40,000 NVIDIA engineers. Y Combinator reports adoption went from single digits to over 80% among their portfolio companies.
- **[Cursor's "Self-Driving Codebases" Research](https://cursor.com/blog/self-driving-codebases)** - Multi-agent research harness now available in preview, moving toward autonomous code generation and maintenance.
- **[Salesforce Ships Higher-Quality Code with Cursor](https://cursor.com/blog/salesforce)** - 90% of Salesforce's 20,000 developers now use Cursor, driving double-digit improvements in cycle time, PR velocity, and code quality.
- **[SWE-bench February 2026 Leaderboard Update](https://www.swebench.com/)** - Fresh independent benchmark results for coding agents released, providing non-self-reported performance comparisons across AI models.
---
### 🤖 Latest Coding Models Released
- **[Claude Opus 4.6 Released](https://www.anthropic.com/news)** - Upgraded Anthropic model leads in agentic coding, computer use, tool use, search, and finance benchmarks. Industry-leading performance, often by wide margins.
- **[Anthropic Raises $30B at $380B Valuation](https://www.anthropic.com/news)** - Series G funding led by GIC and Coatue. Run-rate revenue hits $14 billion, growing 10x annually over past three years. Solidifies enterprise AI market leadership.
- **[OpenAI API Platform Updates](https://developers.openai.com/api/docs)** - GPT-5.2 now available via API with improved developer quickstart and documentation.
- **[AI Model Benchmarking via Arena](https://arena.ai/)** - Community-driven platform for benchmarking and comparing the best AI models from all major providers.
---
### 🐾 OpenClaw Updates
- **[OpenClaw Featured in DeepLearning.ai "The Batch"](https://www.deeplearning.ai/the-batch/issue-339/)** - Recent OpenClaw coverage in Andrew Ng's AI newsletter alongside discussions of open models and AI agent frameworks.
- **[OpenClaw AI Agent Framework](https://github.com/sirjager/OpenClaw)** - Lightweight multi-agent framework for task automation. (Note: Repository currently being restructured)
---
### 🚀 Digital Entrepreneurship & SaaS Ideas
- **[Bootstrapping a $20k/mo AI Portfolio](https://www.indiehackers.com/post/tech/bootstrapping-a-20k-mo-ai-portfolio-after-his-vc-backed-company-failed-rQxwZBD9xWVgfHhIxvbJ)** - Founder shares lessons from pivoting after VC failure to building profitable AI products independently.
- **[LeadSynth: Distribution is the Bottleneck](https://www.indiehackers.com/product/leadsynthai)** - Indie Hackers truth: building is easy now. Distribution has become the primary challenge for product success.
- **[Copylio: AI SEO Product Descriptions](https://www.indiehackers.com/post/show-ih-copylio-an-ai-tool-to-generate-seo-optimized-ecommerce-product-descriptions-from-a-product-link-c5cd295d14)** - New tool generates SEO-optimized ecommerce product descriptions from just a product link.
- **[Vibe is Product Logic: Branding Your AI](https://www.indiehackers.com/post/vibe-is-product-logic-how-to-inject-branding-into-your-ai-e9c6766a2d)** - How to differentiate AI products in a crowded market through strategic branding.
---
### 🍎 Apple Ecosystem
- **[Low-Cost MacBook Expected March 4](https://www.reddit.com/r/apple/)** - Multiple colors expected for the rumored affordable MacBook launch.
- **[Meta Revives Smartwatch Plans](https://www.macrumors.com/)** - Meta reportedly preparing to release a smartwatch later this year to compete with Apple Watch.
---
*Digest compiled at 7:00 AM CST | Sources: Hacker News, TechCrunch, The Verge, MacRumors, Indie Hackers, Developer Blogs*

43
digest_2026-02-19.md Normal file
View File

@ -0,0 +1,43 @@
# Daily Digest - February 19, 2026
## iOS AI Development
- [iOS 26.4 Beta Released - Get Ready with Latest SDKs](https://developer.apple.com/news/?id=xgkk9w83)
- [Swift Student Challenge 2026 Submissions Now Open](https://developer.apple.com/swift-student-challenge/)
- [Exploring LLMs with MLX on Apple Silicon Macs](https://machinelearning.apple.com/research/exploring-llms-mlx-m5)
- [Updated App Review Guidelines - Anonymous Chat Apps](https://developer.apple.com/news/?id=d75yllv4)
## AI Coding Assistants
- [Cursor Composer 1.5 - Improved Reasoning with 20x RL Scaling](https://cursor.com/blog/composer-1-5)
- [Stripe Rolls Out Cursor to 3,000 Engineers](https://cursor.com/blog/stripe)
- [Cursor Launches Plugin Marketplace](https://cursor.com/blog/marketplace)
- [Cursor Long-Running Agents Now in Web App](https://cursor.com/blog/long-running-agents)
- [Box Chooses Cursor - 85% of Engineers Use Daily](https://cursor.com/blog/box)
- [NVIDIA Commits 3x More Code with Cursor Across 30,000 Developers](https://cursor.com/blog/nvidia)
- [Dropbox Uses Cursor to Index 550,000+ Files](https://cursor.com/blog/dropbox)
- [Clankers with Claws - DHH on OpenClaw and Terminal UIs](https://world.hey.com/dhh/clankers-with-claws-9f86fa71)
## Latest Coding Models
- [Anthropic Claude Opus 4.6 Released - Industry-Leading Agentic Coding](https://www.anthropic.com/news)
- [Anthropic Raises $30B Series G at $380B Valuation](https://www.anthropic.com/news)
- [SWE-bench February 2026 Leaderboard Update](https://www.swebench.com/)
- [Don't Trust the Salt: AI Summarization and LLM Guardrails](https://royapakzad.substack.com/p/multilingual-llm-evaluation-to-guardrails)
## OpenClaw Updates
- [OpenClaw Documentation - Full Tool Reference](https://docs.openclaw.ai/)
- [Clankers with Claws - DHH on OpenClaw AI Agents](https://world.hey.com/dhh/clankers-with-claws-9f86fa71)
- [Omarchy and OpenCode Coming to New York - Omacon April 10](https://world.hey.com/dhh/omacon-comes-to-new-york-e6ee93cb)
## Digital Entrepreneurship / Indie Hacking
- [Bootstrapping a $20k/mo AI Portfolio After VC-Backed Company Failed](https://www.indiehackers.com/post/tech/bootstrapping-a-20k-mo-ai-portfolio-after-his-vc-backed-company-failed-rQxwZBD9xWVgfHhIxvbJ)
- [Vibe is Product Logic - Injecting Branding into Your AI](https://www.indiehackers.com/post/vibe-is-product-logic-how-to-inject-branding-into-your-ai-e9c6766a2d)
- [Indie Hackers Truth: Distribution is the Bottleneck](https://www.indiehackers.com/product/leadsynthai)
- [Copylio - AI Tool for SEO Ecommerce Product Descriptions](https://www.indiehackers.com/post/show-ih-copylio-an-ai-tool-to-generate-seo-optimized-ecommerce-product-descriptions-from-a-product-link-c5cd295d14)
- [Most Founders Have a Timing Problem, Not a Product Problem](https://www.indiehackers.com/product/leadsynthai)
---
*Generated by OpenClaw - February 19, 2026*

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -4,3 +4,9 @@
[2026-02-18 16:41:40 CST] ✓ heartbeat-monitor (port 3005) - HTTP 200 OK
[2026-02-18 16:41:40 CST] All apps healthy.
[2026-02-18 16:41:40 CST] ---
[2026-02-18 22:11:55 CST] Starting web app health check...
[2026-02-18 22:11:55 CST] ✓ gantt-board (port 3000) - HTTP 200 OK
[2026-02-18 22:11:55 CST] ✓ blog-backup (port 3003) - HTTP 200 OK
[2026-02-18 22:11:55 CST] ✓ heartbeat-monitor (port 3005) - HTTP 200 OK
[2026-02-18 22:11:55 CST] All apps healthy.
[2026-02-18 22:11:55 CST] ---

23
memory/2026-02-19.md Normal file
View File

@ -0,0 +1,23 @@
# Memory - February 19, 2026
## [8:19 AM] Getting to Know Each Other
Matt shared details about his life:
- **Name:** Matt Bruce
- **Wife:** Heidi (married almost 21 years, anniversary June 4, 2005)
- **Dogs:** Tully and Remy - mini schnauzers, ~8 years old
- **Location:** America/Chicago timezone
- **Work:** iOS developer
**My Name:** Max (chosen with Heidi's approval! 🎉)
## Morning Status
- All 3 web apps healthy
- Daily digest posted successfully at 7:00 AM
- Matt out walking dogs, back at 8:19 AM
## Previous Day Summary (Feb 18)
- Completed Tasks #5, #8, #10, #11
- Fixed cron auto-restart script (PATH issue)
- Installed Playwright globally for screenshots
- Created iOS MRR opportunities research report

View File

@ -41,3 +41,65 @@ No restarts required.
[2026-02-18 20:31:39 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-18 20:42:17 CST] ✅ Web Monitor - All 3 apps restarted and verified healthy
[2026-02-18 20:56:39 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-18 21:26:39 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-18 21:56:42 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-18 22:26:39 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-18 22:51:39 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-18 23:21:41 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-18 23:46:41 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 00:16:39 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 00:46:39 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 01:16:39 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 01:46:40 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 02:16:39 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 02:46:40 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 02:56:39 CST] ⚠️ heartbeat-monitor (port 3005) is DOWN - restarting...
[2026-02-19 02:56:39 CST] 🔄 heartbeat-monitor restarted on port 3005
[2026-02-19 02:56:39 CST] ❌ heartbeat-monitor still unhealthy (HTTP 000DOWN)
[2026-02-19 03:16:41 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 03:46:39 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 04:16:39 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 04:46:40 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 05:16:40 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 05:46:40 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 06:16:40 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 06:46:39 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 07:21:39 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 07:51:40 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 08:17:57 CST] ⚠️ gantt-board (port 3000) is DOWN - restarting...
[2026-02-19 08:17:57 CST] 🔄 gantt-board restarted on port 3000
[2026-02-19 08:17:57 CST] ⚠️ blog-backup (port 3003) is DOWN - restarting...
[2026-02-19 08:17:57 CST] 🔄 blog-backup restarted on port 3003
[2026-02-19 08:17:57 CST] ⚠️ heartbeat-monitor (port 3005) is DOWN - restarting...
[2026-02-19 08:17:57 CST] 🔄 heartbeat-monitor restarted on port 3005
[2026-02-19 08:17:57 CST] ❌ gantt-board still unhealthy (HTTP 000DOWN)
[2026-02-19 08:17:57 CST] ❌ blog-backup still unhealthy (HTTP 000DOWN)
[2026-02-19 08:17:57 CST] ❌ heartbeat-monitor still unhealthy (HTTP 000DOWN)
[2026-02-19 08:18:14 CST] ⚠️ gantt-board (port 3000) is DOWN - restarting...
[2026-02-19 08:18:14 CST] 🔄 gantt-board restarted on port 3000
[2026-02-19 08:18:14 CST] ⚠️ blog-backup (port 3003) is DOWN - restarting...
[2026-02-19 08:18:14 CST] 🔄 blog-backup restarted on port 3003
[2026-02-19 08:18:14 CST] ⚠️ heartbeat-monitor (port 3005) is DOWN - restarting...
[2026-02-19 08:18:14 CST] 🔄 heartbeat-monitor restarted on port 3005
[2026-02-19 08:18:14 CST] ✅ gantt-board verified healthy (HTTP 200)
[2026-02-19 08:18:14 CST] ✅ blog-backup verified healthy (HTTP 200)
[2026-02-19 08:18:14 CST] ❌ heartbeat-monitor still unhealthy (HTTP 000DOWN)
[2026-02-19 08:46:39 CST] ⚠️ blog-backup (port 3003) is DOWN - restarting...
[2026-02-19 08:46:39 CST] 🔄 blog-backup restarted on port 3003
[2026-02-19 08:46:39 CST] ❌ blog-backup still unhealthy (HTTP 500)
[2026-02-19 08:51:39 CST] ⚠️ gantt-board (port 3000) is DOWN - restarting...
[2026-02-19 08:51:39 CST] 🔄 gantt-board restarted on port 3000
[2026-02-19 08:51:39 CST] ⚠️ heartbeat-monitor (port 3005) is DOWN - restarting...
[2026-02-19 08:51:39 CST] 🔄 heartbeat-monitor restarted on port 3005
[2026-02-19 08:51:39 CST] ❌ gantt-board still unhealthy (HTTP 000DOWN)
[2026-02-19 08:51:39 CST] ❌ heartbeat-monitor still unhealthy (HTTP 000DOWN)
[2026-02-19 08:52:30 CST] ✅ Manual restart successful - all apps healthy (3000, 3003, 3005)
[2026-02-19 09:01:40 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 09:31:42 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 10:01:40 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 10:31:39 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 11:01:39 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 11:31:39 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 12:01:40 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 12:26:40 CST] ✅ All web apps healthy (3000, 3003, 3005)
[2026-02-19 12:56:39 CST] ✅ All web apps healthy (3000, 3003, 3005)

58
scripts/daily-backup.sh Executable file
View File

@ -0,0 +1,58 @@
#!/bin/zsh
# Daily Data Backup Script
# Commits data files from all 3 web apps to Git for backup
# Runs daily via cron
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S %Z')
LOG_FILE="/Users/mattbruce/.openclaw/workspace/memory/backup.log"
# Ensure log file exists
touch "$LOG_FILE"
echo "[$TIMESTAMP] Starting daily data backup..." >> "$LOG_FILE"
# Function to backup a project
backup_project() {
local project_path=$1
local project_name=$2
cd "$project_path" || return 1
# Check if there are changes to data files
if git diff --quiet data/ 2>/dev/null && git diff --cached --quiet data/ 2>/dev/null; then
echo "[$TIMESTAMP] $project_name: No changes to backup" >> "$LOG_FILE"
return 0
fi
# Add data files
git add data/ >> "$LOG_FILE" 2>&1
# Commit with timestamp
git commit -m "Daily data backup - $TIMESTAMP
Auto-commit of data files:
- messages.json (blog-backup)
- tasks.json (gantt-board)
- apps.json & status.json (heartbeat-monitor)" >> "$LOG_FILE" 2>&1
if [ $? -eq 0 ]; then
# Push to Gitea
git push gitea main >> "$LOG_FILE" 2>&1
if [ $? -eq 0 ]; then
echo "[$TIMESTAMP] ✅ $project_name: Backup successful" >> "$LOG_FILE"
else
echo "[$TIMESTAMP] ❌ $project_name: Push failed" >> "$LOG_FILE"
fi
else
echo "[$TIMESTAMP] ⚠️ $project_name: No changes to commit" >> "$LOG_FILE"
fi
}
# Backup all 3 projects
backup_project "/Users/mattbruce/Documents/Projects/OpenClaw/Web/gantt-board" "gantt-board"
backup_project "/Users/mattbruce/Documents/Projects/OpenClaw/Web/blog-backup" "blog-backup"
backup_project "/Users/mattbruce/Documents/Projects/OpenClaw/Web/heartbeat-monitor" "heartbeat-monitor"
echo "[$TIMESTAMP] Daily backup complete" >> "$LOG_FILE"
echo "---" >> "$LOG_FILE"