This isn't a changelog for a SaaS product. It's a build log.
RiskCast exists because we're building the thing we're talking about. OpenClaw is a self-hosted, multi-agent AI system that runs real business operations — email triage, event inquiry responses, SEO content, meeting digests — across two Mac Minis at Tabbris Innovation Center in Charlotte, NC.
This page documents what actually shipped. Not roadmaps, not intentions — what got built, what broke, and what we fixed. Every entry traces back to a real session, a real commit, or a real failure.
2026-04-17
Changed
Upgraded the Monitor agent’s local model from Qwen 3 8B to Qwen 3.5 9B
Upgraded Ollama from 0.17 to 0.20
2026-04-15
Fixed
Gateway down for eight days — silent failure. The host OS revoked trust in the node binary, so every launch was killed at startup with no log output. Rehabilitated the binary. Gateway back up
Billing cooldowns from an earlier credit exhaustion lingered after top-up. Cleared
Email classifier regression — a reclassify rule added a few days earlier was sending one platform’s mail to the wrong channel under a tag the Slack surface didn’t know how to display. Removed the rule, taught the surface about the additional tags
“Draft unavailable” false negative in Slack surfacing. When Drafting deliberately chose to skip an item, the Slack post made it look like the pipeline had failed. Now shows the agent’s reasoning instead
Small corruption in one of the handoff files from an earlier in-place edit. Repaired
WhatsApp Desktop quitting every afternoon — auto-update install was on. Disabled
Added
Subject-pattern filter in the email pre-filter so platform read-receipts auto-archive before they reach the pipeline
2026-04-14
Fixed
Drafting context drift — the pricing reference in Drafting’s context had drifted from the authoritative event inquiry playbook, producing a quote without a line-item breakdown. Rewrote the reference to match the playbook. Re-sent the corrected draft
Added
Event inquiry playbook added to Drafting’s context
2026-04-13
Added
Session size monitor — hourly check with a Slack alert when any agent session crosses a soft or hard threshold. Alerts auto-clear on reset
Changed
Moved compaction to proactive mode so long-running sessions stay trim automatically
2026-04-10
Fixed
Unnecessary spend — the Drafting agent was looping on heartbeats without real work. Reset the agent’s session
Changed
Heartbeat restructure — recalibrated cadences across the three agents. Monitor slowed to give its local model headroom. Drafting switched to cron-only — runs only when there’s a pending draft. Alfred kept hourly
2026-04-06
Added
Operational workflows — Alfred can now handle recurring monthly vendor revenue reports end-to-end. Reads the email (including image attachments), calculates ownership splits, updates the financial model, and posts a confirmation to Slack. Includes a month-end checklist so nothing slips through
Image reading — Alfred can now open and read image-based reports that vendors send as attachments
System under version control — moved the entire OpenClaw workspace into a private code repository. All three agent workspaces, pipeline scripts, skills, workflows, and a sanitized config template. Anything can now be edited from a phone
Full system inventory — audited the Mac Mini end-to-end before the move: files, scheduled jobs, local models, running agents and sessions. Everything unversioned got mapped into the new repository
Changed
Email triage now connects to operational workflows — classifying an email also tells Alfred what to do with it, not just how to tag it
Fixed
Caught a hardcoded secret in a setup doc before it made it into the repository
2026-03-24
Fixed
Silent email pipeline failure — the Gmail query was occasionally returning nothing when real messages were waiting. The error was being swallowed and the log said “no new mail” while the inbox piled up. Replaced the query with a reliable one and added proper error handling everywhere
Misrouted event inquiries — emails mentioning “payment” in the body (for example, a customer asking “do you accept card payments?”) were being tagged as payment receipts instead of event inquiries. Reordered the rules so event signals win, and restricted payment keywords to the subject line
One platform’s emails were classified into a category with no matching Slack channel — they’d tag correctly and then vanish. Switched to auto-archive, and added a safety-net channel for the orphan category
Resolved an email header parsing inconsistency flagged in March 16 known issues
Added
Early-warning canary on the email poller. If roughly half a day passes with no new mail, the system flags the pipeline as potentially stuck instead of silently waiting — the monitoring we never had before
Auto-retry on flaky upstream calls. A single transient failure no longer breaks the pipeline
Boot-time self-test — on restart, the pipeline checks every moving piece before running: credentials, file permissions, Slack connection, scheduled scripts, keyring. Fails fast and loudly if anything is misconfigured
Changed
Every step of the email poller now logs what failed and why. The pipeline can no longer fail silently
Purged dead items from the draft queue that would never be reprocessed
2026-03-23
Changed
RiskCast production workflow, second pass — rewrote the podcast production routine with a standardized four-stage flow: raw audio in, transcription, edit template, editor package out. Set naming conventions and folder structure
Documented the known blockers for transcription setup, and added Slack templates for production status updates
2026-03-20
Changed
Upgraded OpenClaw to the current release — five patch releases of accumulated fixes, including better session management and more reliable model failover
Primary model restored to Anthropic Claude for Alfred and the Drafting agent. Gemini became the first fallback, the local model the second. Three providers in the chain — no single vendor outage takes the system down
Sandboxed the Monitor and Drafting agents at the OS level, on top of existing tool restrictions. Alfred stays open so it can do real operational work
Removed per-agent overrides that were quietly defeating the main sandbox policy
Added
Deterministic workflow engine enabled. Lets us write pipelines with explicit approval gates and resume points instead of chaining shell scripts together
Workflows can now embed AI steps (classification, drafting) inside an otherwise deterministic flow — the AI does its job without deciding what comes next
First workflow written using it: the email triage pipeline. Five steps end-to-end, with approval gates on both Slack notifications. Runs on demand, on a schedule, or via event — not just on a cron
RiskCast podcast production pipeline — built into Alfred. Four stages: raw audio in, transcription runs nightly, Alfred generates an edit template from the transcript, and a package is assembled for the editor with audio, transcript, edit notes, show notes draft, and brief. Alfred is now part of the production loop — on brand for a podcast about AI agents
Full system health and security audit after the upgrade. Nothing critical
Known Issues
Security audit flags the Slack allowlist as a multi-user heuristic — expected and acceptable for a personal-assistant setup
2026-03-18
Fixed
Drafting agent silently starved — an emergency workaround added a week earlier was quietly stealing work from the Drafting agent. It was grabbing emails before Drafting could write replies and posting raw notifications to Slack instead. The workaround was added to the schedule but never removed or documented
Reordered the schedule so the Drafting agent runs first, and rewrote the workaround as a fallback only. Drafting produces replies again; the fallback kicks in only if Drafting misses its window
2026-03-16
Fixed
Spam no longer surfaces as leads. Added a sender blocklist and allowlist to the email classifier, driven by config
Reclassified a backlog of junk mail (platform notifications, subscription mail) that had been polluting Slack channels
Urgency cap — junk mail can never be flagged high-priority
Known Issues
Email header parsing inconsistency in the poller — resolved 2026-03-24
Classifier accuracy is still a work in progress — sender-based rules help but the AI classification still needs tuning
2026-03-11
Added
Presented OpenClaw at Community Night at Tabbris — first public demo of the system
Built an interactive slide deck covering the architecture, security model, pipeline flow, and lessons learned
Deck reflects the live system at the time: Gemini as the primary model, local model as fallback, four agents running across two machines
2026-03-09
Added
Weekly review system — first working review doc pulling signal from meeting notes, Slack, and email into a single place
New private Slack channel as a universal capture surface for session summaries and Alfred digests
Session capture pattern — every meaningful work session ends with a tagged post so context gets written down somewhere durable
Scheduled weekly review time before recurring one-on-ones
Google Drive folder structure for weekly reviews, meeting sync, tracker, and projects
Changed
Switched Alfred’s primary model from Claude to Gemini temporarily, while Anthropic access was being sorted out between business and personal accounts
Architecture decision — Claude Projects are workspaces, not systems of record. Aggregation happens in shared surfaces like Slack and Drive
2026-03-05
Added
Meeting notes integration. Two modes: Alfred reads short meeting summaries from a dedicated Slack channel for daily digests; deeper meeting prep happens in a browser session with the full transcript
Expanded Alfred’s Slack channel access to the new meeting-notes and dashboard channels
2026-03-03
Changed
OpenClaw upgrade. Native support for local-model memory embeddings, a config validation command, faster Slack auth failure, tighter Slack thread context handling, WhatsApp self-message detection, prompt injection hardening, live heartbeat reload, permissions hardening, and a scheduled-job cleanup fix
2026-03-02
Added
Friday’s content engine seeded. Briefs, templates, content calendar, and blog categories created. Four categories published to the CMS, five briefs queued, one full draft in review. SEO audit completed for the Tabbris site. All page titles and meta descriptions pushed through the CMS. Eight legacy posts archived
Friday’s three-stage pipeline (Scout → Writer → Publisher) designed and partially wired
Documented a few quirks in the Webflow automation tooling
Changed
Replaced placeholder testimonials on the Tabbris site with real Google reviews (seven unique reviewers)
2026-02-25
Fixed
System audit identified three competing schedulers — root cause of most silent failures
Drafting agent had been idle for three weeks because its upstream handoff was broken
A shadow inbox had quietly accumulated hundreds of un-surfaced items with no way out
Added
A bypass script that skips the Drafting agent, so at least the emails reach Slack while the main pipeline is being rebuilt
2026-02-24
Fixed
Watchdog alert spam eliminated — alerts now fire only on status changes, not on every check
Consolidated all system alerts onto Slack. Retired the WhatsApp health pings
Morning digest always posts, even on healthy days, so silence can’t be confused with something being wrong
Added
Evening check-in (weekday 6 PM)
Interactive visualizations mapping all seven system pipelines
Audited and rebuilt the second Mac Mini’s scheduled jobs, auto-start config, and Slack bindings
2026-02-23
Added
Passive monitoring deployed. Five scheduled scripts covering watchdog (every five minutes), memory guardian (every two), daily digest (weekday mornings), security audit (Sundays), and a canary test (Mondays)
Secure remote access configured end-to-end
2026-02-20
Changed
Analyzed an unexpected API cost spike from an extended development session — too much context being re-cached on every call
Designed a leaner memory architecture — small always-on memory plus on-demand skill files, instead of loading everything every turn
2026-02-19
Added
Alfred connected to Slack — joined three core Tabbris channels for events, membership and general ops, and Friday’s marketing
Event inquiry playbook wired into Alfred’s routines
Cross-provider fallback designed — the local model kicks in when cloud APIs rate-limit
2026-02-18
Changed
Upgraded the local model powering the Monitor agent
Identified a round of unexpected API charges. The Drafting agent was firing every ten minutes with a huge context, failing on a sandbox issue, and repeating. Nearly three-quarters of the cost was wasted cache writes
2026-02-17
Added
Remote access working — check system status from anywhere on a phone
2026-02-13
Changed
Completed the hardware migration from the 16GB Mac Mini to a 32GB Mac Mini
Old Mac Mini repurposed — AV and lighting for the event space, plus the dedicated Friday marketing agent
Added
SEO automation feasibility research for the Tabbris site — CMS API mapped, realistic monthly cost scoped, eight-week plan
2026-02-11
Added
OpenClaw System Definition — a formal architecture spec covering the three-agent roles, infrastructure, channels, known issues, and technical debt
Custom project instructions
Updated the Tabbris privacy policy with SMS and text messaging terms
2026-02-10
Changed
Decided on the next upgrade path for the Monitor’s local model, tuned for fast classification
Designed a hub-and-spoke architecture — dedicated agents per business area with Alfred orchestrating
2026-02-09
Added
Gmail integration architecture for the business inbox — OAuth, sanitization, data flow, security model
Email pipeline designed: Monitor reads Gmail, classifies, hands off to Drafting, which composes a reply, Alfred reviews, then sends
Tiered Google Drive sync — the most-referenced material (pricing, venue info, FAQs) refreshed daily, the rest on-demand, financials excluded
2026-02-08
Added
Alfred’s first autonomous content production over WhatsApp — TikTok scripts, LinkedIn templates, a content calendar, a daily guide, and visual asset batches
Master content calendar with weekly initiatives and platform rotation
Changed
Refined the image generation prompts — mandatory realism checklist, no third-party brand references
2026-02-07
Added
Switched memory embeddings from a cloud provider to a local model — removed an external dependency and the associated quota risk
Comprehensive personal context document for Alfred’s workspace
Restored the heartbeat routine structure
Fixed
Alfred’s memory was silently broken. The cloud embedding provider was over quota and memory search was failing with no error. Switching to local fixed it
Identified a four-day gap in daily memory files caused by a previous overwrite
2026-02-06
Added
Auto-start configuration for the gateway — launches on boot, stays up, restarts on crash
Health check script monitoring the gateway, the WhatsApp bridge, and log freshness
Disabled Mac Mini sleep, enabled Wake on LAN, enabled auto-login for unattended operation
Changed
OpenClaw survives reboots end-to-end — boot, auto-login, network, local model, gateway, WhatsApp, Alfred alive
Decoupled Alfred from the terminal session — the gateway handles routing independently
Fixed
Docker connectivity on startup, with safe failure defaults
Filesystem cleanup after the Migration Assistant run
2026-02-05
Added
Three-agent architecture fully configured. Alfred as the main agent with full privileges. Monitor powered by a local model, sandboxed and read-only. Drafting sandboxed with no send permission
WhatsApp routing — Stefan’s messages go to Alfred, Stefan’s wife’s messages go to the Monitor
Self-chat over WhatsApp as the primary command interface
File-based handoff pipeline between agents
Handoff data format defined
Drafting runs on a schedule, Alfred on a heartbeat
Security hardening — web fetch and browser access denied to the Monitor
Fixed
Alfred not responding over WhatsApp — workspace files referenced a sandbox config that was self-restricting
Token burn from a premium-tier fallback — default model was wrong, switched to the correct tier
Wife’s WhatsApp was routing to the wrong agent
2026-02-04
Added
Separate Anthropic API key for OpenClaw, decoupled from the personal subscription
Fixed
Rate-limit errors traced to oversized system prompts. The gateway had been hanging for 10+ minutes on retry
2026-02-02
Added
OpenClaw gateway running for the first time on the 16GB Mac Mini
Local model installed for on-device inference
WhatsApp channel paired
Secure remote access configured
Three-agent concept defined — Monitor observes, Drafting composes, Alfred reviews and sends
Channel latency tiers — WhatsApp self-chat in real time, the business inbox every 5 to 10 minutes, wife’s WhatsApp every 30 minutes, personal Gmail every 1 to 2 hours