Decision models (Jev) rollout (#436) — five gates in log-only mode, reviewed every Monday by iMessage
decisions-bridge (openclaw-hub #165, #168) — decisions-bridge.evaluate Gateway method so scripts can call an
WhatsApp — owner-only on a separate number, plus family access mirroring iMessage (#472, #473)
hass_notify (openclaw-hub #169) — Home Assistant notifications limited to configured targets
Backups of the Mac setup — Orca LaunchAgents, macrdp config, webhook-proxy config and a rebuild checklist in
CLAUDE.md — health check around every live-system change (#498)
Backup and migration doc — docs/BACKUP-AND-MIGRATION.md: what’s in git, what’s only in the weekly full
Changed
Message routing by kind — conversation and alerts to iMessage, status to #octo-status, upgrades to #upgrades,
Hass Guard — plain light/switch on/off skips the safety model; blocks say whether the check ran and post to
Cron cleanup — weekly backup, browser recycle, docs validation and the retirement countdown are scripts now; the
Web search uses Codex Hosted Search instead of Gemini (quota errors); OPENCLAW_CONFIG.md has a
USPS mail — recipient routing per household member from config and the vision rubric restored
fastmail-sse logs why each mail rule matched (openclaw-hub #166, carapace-mail-runtime #4)
fs-utils on carapace-plugin-sdk 3.3, which passes workspaceDir to tools (openclaw-hub #163, sdk #15)
Home Assistant plugin — no built-in server address, entity lookup by domain, and service calls re-check state
Health check alerts on Gateway /ready, the iMessage bridge and a missing ffmpeg; FastMail check works on macOS
Docs — a page for every service, an editorial pass across the site, and stale bundle JSON removed
Docs accuracy pass — README.md, STRUCTURE.md, OPENCLAW_CONFIG.md, the plugin, lib and service READMEs
Posts — the “Dot meets Claw” LinkedIn article with diagram; a draft on adopting decision models (#466–#468, #490)
Fixed
exec failures from fs-utils — fs_list/fs_copy/fs_move returned the wrong result shape, breaking code-mode
Camera collages — ffmpeg wasn’t installed (now the homebrew-ffmpeg build with text labels); errors are reported
USPS digests arrived without their scans: inline attachments were skipped (carapace-m365 #27)
fastmail_meeting ignored an explicit end time (openclaw-hub #159; #364)
Full backup works with macOS rsync, skips ~/.openclaw/tmp, and fails if the copy is empty (#460, #462, #479)
Small fixes — hassonic docs promised approvals that never came (#420), cost reports labeled iMessage sessions
2026-10-25
Changed
The Octo MCP runs on mcp-bridge — octo-mcp became a generic, config-driven MCP server in openclaw-hub
OctoDot’s reads skip the model — house_status and calendar call the Home Assistant and calendar tools
Docs:MCP & OctoDot is now Octo MCP: Octo for other agents, with the trust model and a Build your own
Compact tool results for Octo’s own agents — with carapace-plugin-sdk 3.2’s view, hass_state_list and the
Fixed
ics-calendar 1.2.0 (openclaw-hub #154) — a request for one day returned the whole week (the tool only took
2026-10-24
Added
MCP server for OctoDot — new octo-mcp service: ChatGPT’s custom MCP connector reaches Octo at /mcp on the
OctoDot can use Octo — octo-mcp offers tools split by risk: house_status and calendar (read-only, no
Health check — scripts/healthcheck.py snapshots the system before each change and reports anything that changed
Remote-access smoke test — scripts/smoke-remote-access.sh checks every public route with requests designed to be
Owner-run Funnel scripts — config/tailscale/apply-step-*.sh apply each Funnel change through the Tailscale
Docs: new External Integrations section, near the top of the site: how everything outside reaches Octo
Changed
webhook-proxy — one Funnel mount (/hooksproxy) with exact per-route matching, POST only, a 1 MiB body limit and
Home Assistant hooks go to webhook-proxy on the LAN with their own token instead of posting to the Gateway with
Gateway /hooks is no longer public — Funnel answers not found; every webhook enters through webhook-proxy or
Hooks token rotated, and webhook-proxy loads its own env file instead of the shared .env; no external sender
Fixed
iMessage stopped replying (typing indicators, no answer for about 80 minutes) after a Gateway restart left the
Smoke-test isolation check could never fail (plutil escapes slashes in paths)
2026-10-22
Changed
Docs and code follow the move to the Mac mini (2026-10-21) — the skill and agent docs, service READMEs and the mail-actions README no longer assume the old Lenovo/Ubuntu host. Paths now use ~/, and service and log instructions give the macOS (launchd, ~/Library/Logs/openclaw/gateway.log) commands next to the Linux (systemd, journalctl) ones. config-backup and the github-issues hook transform use os.homedir() instead of a hard-coded /home/openclaw fallback. onedrive-sync and onedrive-watchdog.sh are marked Linux-only (the Mac uses the OneDrive app). In openclaw-hub, the retired outlook-webhook service was removed (carapace-m365’s m365-webhook replaced it).
2026-10-18
Added
Cron failure alerts — any cron job that fails twice in a row now posts to #octo-status (at most once an hour per job). Previously only config-backup alerted.
Fixed
Work calendar went empty — calendar-fetch failed from midnight Oct 18 after an npm run in octo deleted @sinclair/typebox through an old config-backup symlink into openclaw-hub’s node_modules. Symlink removed and the package restored. calendar_fetch.sh now writes each calendar to a temp file and keeps the last good copy when a fetch fails, keeps going past a failed source, and exits non-zero naming the failures.
2026-10-17
Upgraded
OpenClaw 2026.7.1 → 2026.10.4, through 2026.8.1, 2026.9.2, 2026.9.6, 2026.9.7, 2026.9.8 and 2026.10.2
carapace-plugin-sdk 3.0 — breaking change: tools return their structured result in details; all of Octo’s plugins moved to ^3.0.1
Models — moved from GitHub Copilot to Anthropic directly (Claude Sonnet 4.6 default, Haiku 4.5 and OpenAI GPT-6 Astra as fallbacks); realtime voice moved from gpt-realtime-mini to gpt-live-1-codex
Added
Security hardening for the intentionally public gateway: removed remote camera.snap/screen.record node commands, marked GitHub hook content as untrusted, explicitly denied shell for hook- and app-driven agents, and pruned six stale paired devices (tracked in #386)
Docs audit now checks retired and undocumented jobs, services without pages, and the rendered site for empty tables, unknown schedules and broken links
Hassonic — the Hassonic iOS app drives a dedicated hassonic agent for home control, with its own fast model (gpt-5.6-luna)
Hass Guard plugin — allowlists hassonic’s Home Assistant actions and safety-checks each one with TypeSafe AI’s Jev decision model; anything not rated safe is blocked with an explanation instead of raising an approval prompt
TypeSafe AI — typed decision model provider (Jev), used for hassonic’s safety checks
claude agent — Claude Code (Opus 5.5) runs over ACP for delegated coding work; the issue lifecycle and Engineering Harness now hand fixes to it
Home Assistant — automation and script config tools
Fastmail — HTML email bodies and a calendar event delete tool
LLM Vision — include_false_positives on the timeline tool
Outlook work calendar — explicit date-range queries
config-watchdog service
GitHub plugin can file upstream openclaw/* issues with a separate token
Docs: Webhook Proxy service page, per-agent model and decision-model overrides on the Models page, and TypeSafe AI, ACPX and Hass Guard in the plugin inventory
carapace-plugin-sdk 3.0 — breaking: tool results carry their structured data in details; 3.0.1 bundles typebox into plugin builds as an optional peer; reusable CI workflow defaults to Node 24
Managed installs — the running m365, obsidian, package-tracking and stock-quotes plugins are built on SDK 3.0.1 and installed as managed packages; the matching repo changes (npm run deploy) merged 2026-10-19 (#371)
Changed
Six cron jobs no longer use a model: evening alarm reminder and late/early conflict check (one shared calendar script), daily package delivery check and cleanup, the Costco stock check, and OpenClaw upgrade readiness now run scripts that only message Jeff when there’s something to say
Log rotation runs rotate_openclaw_log.py directly and keeps 7 archives instead of a Haiku turn that emptied the log
Issue lifecycle labels renamed to ilc: namespace and expanded into a 3-phase model (plan → impl → pr): ilc:plan-pending, ilc:plan-working, ilc:plan-complete, ilc:needs-input, ilc:plan-approved, ilc:impl-pending, ilc:impl-working, ilc:impl-complete, ilc:pr-draft, ilc:pr-review, ilc:pr-needs-work. Replaces the old flat set (plan-pending, plan-ready, plan-approved, copilot-assigned, pr-review, pr-pending, pr-needs-work, needs-input). Docs, both issue-lifecycle skills, agent AGENTS.md quick-refs, and the PR-monitor cron updated to match. Stale labels (plan-needed, pr-pending, ready to implement) removed from GitHub.
Outlook → Microsoft 365 — the separate Outlook mail and calendar plugins were merged, then replaced by the open-source m365 plugin (see Carapace plugins below)
Plugins install as managed packages with typebox bundled into each build, roughly halving the files OpenClaw snapshots at startup
Cron jobs and session transcripts live in OpenClaw’s SQLite stores; the docs and agent-review read from them
Coding agent wakes only on actionable ilc: labels, with GitHub filtering moved into the webhook proxy
Plugin CI runs on Node 24
Fixed
Outlook mail actions never ran after the Microsoft 365 migration — package tracking, USPS Informed Delivery digests, and Amazon/Costco shipment processing all failed with Unknown mail action; m365-webhook now loads its action plugins (#379)
Weekly usage report was frozen at 2026-08-24 after transcripts moved to SQLite, and priced every model at Sonnet rates; usage and session labels now come from SQLite (#380)
Log rotation emptied the gateway log instead of archiving it (#381)
Docs pipeline left retired pages in out/docs-site, and copied pages kept repo-relative links that broke on the site
Gateway startup freezes and memory spikes caused by duplicate per-plugin typebox copies
Agent Architecture table on Agents & Channels was empty after OpenClaw moved agents from agents.list to agents.entries
Services page linked to a Webhook Proxy page that was never generated
Fastmail calendar events could not be updated
Weight Watchersww_delete failed on quick-add entries
agent-review handles .zst session files and the current trajectory schema
Docs redaction strips bare private IPv4 addresses, and validation blocks Tailscale hostnames
Daily config backup restores the config copy step
npm installs run by agents no longer reset file permissions
2026-07-14
Upgraded
OpenClaw 2026.7.1
Added
Engineering Harness — new docs section: self-improvement loop with flowchart (detection → GitHub Issues → fix lifecycle) and full issue lifecycle state machine with Mermaid diagram
Issue lifecycle labels: plan-pending, plan-ready, plan-approved, needs-input, copilot-assigned, pr-review; coding agent skill drives transitions; two hard manual gates (Jeff approves plan + merges PR)
docs-validate skill + weekly cron — validates doc manifest vs live config, files deduplicated GitHub issues for findings (Mondays 6 AM PT)
openclaw-issue skill — documents safe flow for filing upstream openclaw issues via gh auth switch JeffSteinbok
Token counts in per-agent and cron summary tables of weekly usage report
usage-report and agent-review skills migrated to openclaw-hub as canonical home
Changed
Renamed Self-Improvement → Engineering Harness throughout docs, nav, and homepage
Left nav reordered and homepage tiles updated to match
Crons renamedcost-* → usage-* prefix
Fixed
CI rsync was overwriting hand-maintained top-level pages on every pipeline run; added explicit excludes
Page spec nav_order values were stale, causing nav regressions after every render
jobs.json schedule format for docs-validate-weekly was plain string instead of {kind, expr, tz}
2026-07-07
Added
Strict plugin manifest validation — unknown keys, missing required fields (origin, name, summary, docsMode), and bad docsMode values now fail the docs build instead of being silently skipped or mis-bucketed.
Glances service — documented as a third-party service (server run outside OpenClaw).
About These Docs page — new static-markdown doc page spec (tools/docs/page_specs/about-docs.yml).
Docs pipeline guide (docs/DOCS-PIPELINE.md) — end-user reference for the extract → render → publish flow.
Mail model A/B replay script (scripts/mail-model-ab-replay/) — tooling for replaying mail through different models for evaluation.
Changed
OPENCLAW_CONFIG.md model roles table — rewritten to match current config/openclaw.json (primary claude-sonnet-4.6, fallback gpt-5.4, image gen gemini-3-pro-image-preview, alias sonnet).
Docs nav order — reordered page specs: Skills→5, CLI Tools→6, Services→7, Hooks→8, Scheduled Tasks→9, Release Notes→11.
Services page — service emoji split into its own column for improved readability.
External plugin classification — author/repository now read from doc-manifest.json only (not openclaw.plugin.json), fixing obsidian-vault (carapace-obsidian) being silently dropped from the plugins page.
config-backup plugin — now backs up the safebin/ directory alongside the OpenClaw config.
static-markdown strategy — added to the docs render pipeline for pages that embed a static markdown file as-is.
Fixed
Goodreads plugin manifest — entry was malformed (source/repo/description keys instead of the standard origin/name/summary shape); now renders correctly in Open Source with a working GitHub link.
GitHub plugin getIssue / formatIssue — issue body was fetched from the GitHub API but never returned to the tool caller; now included in IssueResponse.
2026-07-03
Added
Weekly agent-review skill — periodic self-improvement analysis that reviews recent activity and surfaces suggested improvements.
Home Assistant Lovelace dashboard tools (openclaw-hub) — read and write Lovelace dashboard configuration.
Changed
Docs rendering moved into octo — the bundle pipeline now extracts, sanitizes, renders the final Jekyll Markdown pages, and validates them, publishing a docs-site artifact and dispatching docs-site-ready. Removed dead change-mapping code and stale page specs.
octo-docs simplified to receive-and-deploy — dropped ~3,000 lines of local rendering; it now downloads the rendered docs-site artifact, secret-scans it, and deploys to GitHub Pages.
obsidian-vault split (openclaw-hub) — refactored into a standalone indexer service plus a read-only plugin.
Fixed
ha-smb skill — redacted a hardcoded private Home Assistant IP that failed public-bundle validation; reference HA_SMB_HOST instead.
Docs validation crash — fixed a relative_to error that masked real validation failures with a traceback.
GitHub Pages deploy race — moved the pages concurrency guard to the deploy job (top-level concurrency is ignored in reusable workflows), fixing intermittent “Deployment failed, try again later” errors.
ReDoS hardening (openclaw-hub) — replaced regex patterns vulnerable to catastrophic backtracking, including in md-to-html.
Dependencies
Routine updates across octo and openclaw-hub: vite, vitest, esbuild, tsx, @types/node, nodemailer/mailparser, carapace-package-tracking, and actions/checkout v7.
2026-06-03
Added
Obsidian Vault plugin — read-only access to an Obsidian vault with 6 tools: search, read, recent, tags, backlinks, related notes. Full-text search via FTS5, symlink-safe path resolution.
Fastmail threading support — In-Reply-To and References headers in fastmail_send for proper email reply threading.
monarch_get_investments tool in octo-satellite — query investment holdings from Monarch Money.
Mail-actions improvements — quote original email in self-email replies, Discord DM notifications after sending replies, proper reply-all parsing, Message-ID passthrough for threading.
Full backup script — scripts/backup.sh for complete system backup.
Carapace Plugin SDK — initial release through 1.0.4 on npm. Includes CLI generation, source metadata injection, contracts auto-discovery, npm trusted publishing, and definePluginEntry() contracts preservation fix.
Carapace Package Tracking — URL-first extraction to reduce false-positive tracking detection, OIDC trusted publishing, released through 1.0.4.
Doc-manifest entries for obsidian-vault and screenshot-capture plugins.
Changed
Docs pipeline decoupled from openclaw-hub — external plugin/service configs, doc-manifest is now the single source of truth for plugin inventory.
openclaw-hub CI — lockfile now resolves carapace-plugin-sdk from npm registry (local dev uses npm link).
USPS mail docs restructured into usage guide + architecture.
Migrated octo-satellite and weightwatchers plugins to openclaw-hub (open-sourced).
Converted all openclaw-hub plugins to Carapace SDK with updated READMEs.
Fixed
Fastmail JMAP headers — preserve angle brackets in In-Reply-To / References (JMAP expects them intact).
Mail-actions reply threading — pass Message-ID in self-email handoff, fix reply-all parsing and notify ordering.
2026-05-09
Added
Built-in carrier status providers — USPS, FedEx, and UPS status lookups now ship with package_tracking_core and auto-register when the plugin loads. No configuration needed. Uses Camoufox (stealth Firefox) to scrape carrier tracking pages.
Amazon status provider — queries the octo-satellite /amazon/orders/:id endpoint to get Amazon package delivery status. Configured as an external provider via status_providers.
Provider registry with fallback chain — providers are tried in reverse registration order; external/API providers override built-ins. If a provider returns null, the next one is tried.
Amazon mail action update — process_amazon_shipment handoff prompt now includes order_id when calling package_add, enabling the Amazon provider to look up order details.
Satellite tracking endpoints — FedEx and Amazon tracking endpoints added to octo-satellite plugin.
2026-05-08
Changed
Calendar fetch cron rewritten to use CLI binaries directly via shell script (scripts/calendar_fetch.sh) instead of an agent tool-call loop — ~6s vs ~75s, no LLM tokens for fetching.
Upgrade cron notifications rerouted from #root main channel to the #Upgrade thread.
Finance agent given web_fetch and web_search tool access.
Fixed
outlook-work-calendar plugin: adapter was reading pluginConfig.calendarUrl but schema declared field as url — fixed to match.
2026-05-07
Added
CLI generation system — all plugins can now run as standalone CLIs without writing per-plugin CLI code. The @openclaw/cli-shared library introspects createEntry() metadata and generates CLI entry points at build time.
Added libs/ts/cli_shared to both openclaw-hub and octo with runtime + build-time generator.
Extracted handlers.ts (pure business logic) from all 19 plugins across both repos.
Added CLI Usage sections to all plugin READMEs and PLUGIN_README_SHAPE.md.
Hardened octo-docs gitops scripts with comprehensive tests.
2026-04-19
Added
Added an artifact export pipeline that can build self-contained plugin and service bundles with vendored shared Python libs.
Added script-level tests covering plugin/service export and shared-lib dependency closure.
Added missing README coverage for llmvision and the shared repo_paths bootstrap package.
Changed
Updated the packaging docs to describe how publishable artifacts are exported from the monorepo layout.
Clarified that octo is the canonical private source repo while openclaw-hub holds mirrored public source for selected plugins, services, and shared libs.
2026-04-10
Added
Added shared mail runtime documentation, USPS runtime documentation, and dedicated docs bundle coverage for those pages.
Added broader public docs coverage for agents, hooks, services, and related mail-runtime architecture.
Changed
Simplified the USPS plugin into a companion wrapper around the shared USPS runtime implementation.
Clarified the mail pipeline and USPS processing model with explicit two-phase documentation, Mermaid diagrams, and clearer README structure.
Improved cross-linking between FastMail docs, shared mail runtime docs, and USPS-specific docs.
Fixed
Fixed missing or incomplete README coverage for hooks, services, and USPS internals.
Refreshed plugin docs and addressed related review findings, including a missing OpenTable heartbeat import.
2026-04-09
Added
Added richer Outlook calendar event details and working hass-hooks behavior for vision-driven DM delivery.
Added USPS Informed Delivery mail rules to the FastMail configuration.
Changed
Refactored the USPS mail flow and improved calendar refresh behavior, including direct file output and faster parallel refresh support.
Disabled Telegram integration as part of ongoing surface-area cleanup.
Fixed
Fixed GitHub workflow/plugin test issues, OpenTable slug lookup behavior, and calendar markdown output details.
2026-04-05
Added
Added an initial round of voice-call, speech-to-text, and text-to-speech integration work.
Changed
Removed the voice chat configuration again to keep the stack simpler while the rest of the platform evolved.
2026-03-28
Fixed
Reduced false-positive package tracking detection by skipping placeholder Amazon tracking numbers in FastMail shipping scans.
2026-03-14
Added
Added stock quotes and package tracking plugins.
Added CI coverage for plugins and expanded automated test coverage across the repo.
Added FastMail SSE multi-mailbox and multi-account support, per-account mail rules, package tracking detection, richer example config, and comprehensive daemon tests.
Added richer service extraction and docs-page support for service documentation.
Added TripIt support and broader ICS calendar fetch options.
Changed
Expanded FastMail automation into a more capable mail-processing service with deterministic tracking extraction and automatic package lifecycle updates.
Broadened the docs bundle so services and related operational surfaces are better represented.
Extended config backup coverage to include FastMail service configuration.
Fixed
Fixed stock quote edge cases, FastMail tracking-path issues, and multiple privacy problems caused by hardcoded personal identifiers or names.
Reduced dependence on per-email LLM reasoning for shipping detection by moving to a rules-based extraction pipeline.
2026-03-10
Added
Added GitHub issue tooling, new Home Assistant helper tools, and additional Weight Watchers commands.
Added support for freeform note extraction into the docs bundle.
Changed
Simplified note discovery by scanning root markdown files instead of requiring a dedicated notes directory.
Updated cron and backup behavior to better match the evolving repo layout.
Fixed
Fixed note extraction edge cases, camera capture ignore rules, and backup workflow failures around rebasing with local changes.
2026-03-08
Added
Added major new integrations including Weight Watchers, Outlook calendar/mail, ICS calendar, Spotify, and OpenTable.
Added the root and family agent structure, home-music knowledge, and improved plugin/workspace organization.
Added the docs bundle pipeline with extraction support for plugins, skills, jobs, services, and structured configuration data.
Added secret scanning and stronger repository automation around docs and config handling.
Changed
Shifted the repo toward a plugin-first architecture with npm workspaces and a root build flow.
Moved calendar handling toward Graph API and clarified local-vs-shared repo conventions in the docs.
Reworked documentation structure across README, STRUCTURE, config docs, and generated plugin docs.