Skip to content

Changelog

User-visible changes to oc-workers, grouped by area.

Updated

1.2.2

Fixes:

  • A Control UI tab left open no longer keeps the install awake. After the idle close, the tab retries its connection and checks /healthz about every 15 s. Those requests reset the idle timer, so the install never slept. Now a tab that was idle-closed gets its requests answered without counting as activity and without waking the install. A health check from any tab is not activity either. Reload the tab to use it again.
  • The owner console no longer reloads the whole page every 30 s (every 5 s while the state changes). It now updates the state card and the open tab in place, so the page does not flash, the scroll position stays, and a Setup form you are typing in is not cleared. It skips a refresh while the browser tab is hidden or a form has focus or edits. A login page or an error still causes one full reload.
  • Sleep now in the owner console now sleeps the install even if you used it in the last minutes. Before, it refused with 3:idle until the idle timer ran out, and opening the console counted as use. An open archive, an import or an unsent message still refuses it, with the reason.

1.2.1

Fixes:

  • A full disk now shows. While alert disk-full is open (95 % used), ochost status, ochost doctor and the console say the install is degraded, with the reason. disk-high (80 %) is listed with the alerts only. Both close by themselves when the disk is back under 90 % and 80 %. ochost status shows the disk use.
  • Soak engine: two waits for test installs, so leftover updates and a late creds copy no longer fail a run.

1.2.0

New:

  • ochost import <seed-dir> brings an old OpenClaw install in. --dry-run prints the plan. Workspace and memory/ merge into the workspace; the bootstrap files replace the new defaults (old copies in .ochost-import/<id>/backup/), other files the install already has are kept. Records, raw transcripts, media and skills without a target go to file storage (history/INDEX.json maps keys to the old names). Cron jobs are re-created. Config keys that OpenClaw 2026.10.9 has merge into a new version; the rest is listed. Credentials, .env files and keys never leave the laptop. Rules for one old install (vault paths, dirs for file storage, skills to park, cron jobs to skip or turn off) come from an optional local file, --rules <file.json>; ochost import -h shows the fields. With the sandbox on, the same merge runs in the sandbox workspace.
  • The Setup tab of the owner console has controls for the sandbox (off, on, all), the alert channel (URL, Save, Test, Off) and the model. Each form is one POST and works with JavaScript off.
  • New alert no-reply: a Telegram message accepted 5 minutes ago has no reply while the install runs. The Telegram row in the console and ochost doctor shows the count.
  • ochost sandbox on|off --apply writes the setting, deploys, and restarts.
  • Channel setup from the OpenClaw UI. Paste a bot token in Settings > Channels and save; the Setup tab then shows an Adopt button, and ochost channels adopt <telegram|slack|discord|twilio> does the same. The Worker moves the credentials out of the config, sets the webhook and restarts the gateway. Polling mode is refused.
  • testTimers in oc-host.jsonc sets the timers of a test install. A real install ignores it.

Fixes:

  • Data loss: a boot that does not use a valid clean marker now voids it. Before, a later crash boot from the same snapshot could restore SQLite from before the newest gen and lose rows.
  • An inbox row that the gateway answers 404 or 501 goes dead after 5 misses and 5 minutes, with alert inbox-dead. Before, such rows held the install awake for up to 23 hours.
  • ochost restart during a sleep no longer leaves the install stopped.
  • ochost restart right after a deploy no longer asks for a second archive when the newest one finished less than 2 minutes ago.
  • The self-test at the end of ochost init no longer warns on a healthy install.
  • ochost model list --refresh reads every page of the model search.
  • sandbox on sandboxes your Telegram DM too; only the Control UI chat stays on the gateway. The docs said the main chat was exempt.
  • Sandboxed sessions keep the file_store tool. The agent skill names the search and file_store tools.
  • The firecrawl package is not in the image. Run ochost config render on a config that still names it.
  • Alert archive-failed closes when a later archive completes. The console cost guard line reads as a state, not a fault.
  • Soak engine checks for test installs are fixed.

1.1.1

  • One plugin card, “Cloudflare capabilities”, for web search and web fetch through the gate, with the browser state in its status and Test. It replaces the “Cloudflare Web Search” card and the firecrawl entry. Run ochost config render on an older install.
  • The cfgw provider lists the whole Workers AI chat catalogue, so you can pick a model in the Control UI or with /model. ochost model list --refresh updates the list.
  • The owner console reads the config render version from the newest version that carries it, so a boot where OpenClaw’s Doctor rewrote the config no longer shows “config render outdated”.
  • The file storage plugin card is named “Cloudflare R2 via oc-workers”; OpenClaw’s own “Cloudflare” plugin stays off.
  • The skill is oc-workers-cloudflare.
  • ochost restart after a deploy waits up to 5 minutes for the pre-restart archive and gives up after 90 s without progress.
  • ochost destroy --delete-data empties the bucket with an R2 job before it deletes it.
  • The main model’s thinking level is agents.defaults.thinkingDefault (the Control UI’s Thinking row), set to low only when absent; utility and compaction keep a per-model off. The UI row is the one place to change it.

1.1.0

New:

  • File storage on R2. The agent saves files to the storage location r2 through the gate, with no credential in the container. Files are durable on write and outside snapshots and archives. New tool file_store, ochost caps set storage <gb>, a file storage row in doctor and the console, ochost destroy --delete-data purges them.
  • Model roles. The main model thinks at low; titles, recaps and compaction run on @cf/google/gemma-4-26b-a4b-it with thinking off. The gate passes reasoning_effort to Workers AI. ochost model shows each role; ochost model set --role utility|compaction <id>; model bench --role; a deprecated model is refused. Run ochost config render on an older install.
  • One-shot init. ochost init finishes the setup: Telegram and Cloudflare Access from flags or one question each on a fresh install; --alerts ntfy|webhook; --sandbox on goes in before the first deploy.
  • ochost sandbox on sandboxes every session except your main chat (OpenClaw mode non-main); on --all sandboxes every session.

Fixes:

  • Sandbox on: web search, web fetch, the browser, memory, media and the message tool work in sandboxed sessions. OpenClaw’s sandbox tool policy left them out.
  • Speech model is @cf/deepgram/aura-2-en; @cf/myshell-ai/melotts stops on 2026-11-15.
  • ochost channels add telegram restarts a running gateway so the bot starts at once.
  • ochost auth access waits for the Control DO before the restart, ends with a login link, and names the --team fix when the token cannot read the organization.
  • Token files may be env files (KEY=value); ~ in a path expands; known files in ~/.config/oc-host/ are offered as defaults.
  • Ops commands run the wrangler the package ships, never npx.
  • ochost init refuses a Worker of the same name that is not an oc-host install.
  • The bench shortlist drops two retired models and adds glm-5.3 and glm-4.7-flash.

1.0.0

Owner console

  • The console has three tabs: Overview (cost, alerts summary, budgets, connected checks, backups), Alerts and log, and Setup. Tabs are links (/?tab=) and need no script. Buttons are only in Alerts and log and in Setup.
  • The state card stays on top. One state button shows Wake now, Sleep now, Start or Retry now, by state.
  • Setup has Approve for pairing requests, Raise for a budget near its cap, Archive now and Restore drill.
  • ochost doctor reads GET /ops/doctor, the same JSON the console shows.
  • Without a session, / shows the login form only.

Install and CLI

  • ochost init asks for no AI token. Model calls run on the Worker’s Workers AI binding through the capability gate. --ai-token-file is an optional override.
  • init prints one line per step and a summary block. --json output is complete, and WARN lines carry a fix.
  • New init --telegram-owner <id>: your first direct message is approved without a code.
  • New init --fake-telegram for a test install.
  • New ochost config render. Older installs pick up new capability settings. ochost deploy runs it when the config render version is older.
  • ochost deploy with a new image, then ochost restart, boots the new image. An archive runs first.
  • ochost destroy deletes the sandbox app and its image tags.
  • The image push retries on connection reset and broken pipe.
  • The default model is DeepSeek V4.1 Flash on Workers AI through an AI Gateway. New ochost model bench.

Channels

  • New ochost channels add slack|discord|twilio. The Worker checks the signature, stores and acknowledges the event before the container is up.
  • Slack and Twilio SMS messages reach the gateway. The image has the OpenClaw Slack and SMS plugins. Run ochost deploy on an older install.
  • New ochost inbox list and ochost inbox drop. channels remove --force and sleep now --force drop messages that the gateway did not take.
  • The inbox-blocked alert comes after 3 “route missing” answers.
  • channels add sms and channels remove sms work as names for Twilio.
  • Telegram cold replies show the typing indicator and a “Waking up” message while the install wakes (telegram.wakeProgress). channels add telegram turns on streamed replies.
  • Pairing requests stay open 24 hours. Strangers and unlisted groups do not wake the install.
  • Messages that arrive while the gateway restarts wait for it. After a crash, only recent messages are sent again.

Capabilities and sandbox

  • The capability gate serves browser, web fetch, web search, embeddings, speech, transcription and image calls, with daily budgets. New ochost caps.
  • Web fetch uses the firecrawl plugin in the image. Web search uses the Cloudflare Web Search API.
  • New tool sandbox, off by default: ochost sandbox on|off|sleep. New exec and sandbox budgets.

Security and access

  • A login link from ochost open opens a Continue button. A link preview cannot spend it.
  • Login works in Firefox.
  • New ochost auth access --domain <host>: Cloudflare Access on a custom domain.
  • A daily heartbeat alert and a deadman-silent alert. ochost doctor checks the alert sink.
  • The Worker answers with the waking page, not Error 1101, when the Runtime throws while the install sleeps or stops.

Backups and upgrades

  • Archives run on a schedule, with verification and restore. A test restore marks each replica generation verified.
  • Archives are pruned after each archive and taken from a copy, not the live database.
  • Credentials are copied to R2 and restored if the Control DO is rewound.
  • Disk checkpoints survive crash loops. Sleep snapshots are smaller. OpenClaw’s heartbeat no longer keeps waking an idle install.
  • New ochost upgrade check, run and rollback, with a schema gate.
  • After two failed Doctor boots on one image, the install raises one alert with the Doctor output tail.

Sleep and wake

  • The install sleeps when idle and wakes on a message or a timer.
  • New sleep.minAwakeMinutes.

Type to search…

↑↓ navigate↵ selectEsc close