claude-ops 3.11.0
Sends, archives and releases now wait for proof
Business Operating System for Claude Code
claude-ops 3.11.0 changes what your agents may do without you. Messages leave only through your host's approved outbound gate, archives need your approval and a read-back, and releases merge only on matching proof.
Outbound gate
Every send goes through your host's approved outbound gate
Before, typing ok in ops-leadgen wrote a one-shot token file, and the send ran once that file existed. Now ops-desk, ops-inbox and ops-leadgen hand each draft to your host's approved outbound gate, which shows the exact recipient and the full text. Only your yes on those bytes sends it. ops-inbox also loses its direct Gmail, WhatsApp and iMessage send tools.
ops-desk archiving
ops-desk asks before it archives a thread
Archive finished items immediately, without asking
info_onlyClosed in your task tracker. Mailbox and chats stay as they are.
ops-desk used to archive finished items straight away, without asking. Now a reader agent's archive tag is only a recommendation, and the item is archived only once you approve it. Items marked already done or info only close in your task tracker, and your mailbox and chats stay as they are.
ops-inbox proof
Inbox zero now needs proof from the source
Read the actual invoice or PDF before stating an amount or due date. Unreadable means the item stays open.
Read the archived flag back for every WhatsApp JID and LID on the right account. A failed read-back is not inbox zero.
ops-inbox now reads the actual invoice or PDF before it states an amount or a due date, and an unreadable attachment keeps the item open. After an archive, it reads the archived flag back for each of the contact's WhatsApp identities, on the right account. A missing or failed read-back means you aren't at inbox zero.
Monitor-only daemon
The daemon can run as a passive monitor
$ bash scripts/ops-daemon.sh --monitor-only --run-once
Off in this mode: configured services, their health checks and cron jobs, agents, notifications, restarts.
The daemon gains a monitor-only flag. In this mode it doesn't start your configured services, run their health checks or cron jobs, invoke an agent, or send notifications. Every 30 seconds it writes a health file marked monitor only, with actions disabled. Without the flag, it works as before unless you set up the persistent macOS mode.
AWS audit dates
AWS key ages come out the same in every time zone
An unparsed date became 0, so the key's age counted from 1970.
The same moment, tested in three zones. A bad date reports "age unknown".
The AWS audit flags access keys older than your rotation limit. Its old date helper turned any timestamp it couldn't parse into zero, so the key's age counted from 1970. Now Python parses the timestamp and insists on a time zone, and the new test gets the same age in three time zones. An unreadable date reports age unknown. The audit now needs python3.
ops-release gates
ops-release merges only on proof from the exact head commit
Sweep: an agent reviews and merges open PRs
Open PRs against main stop the release (--no-sweep acknowledges them)
ops-release: v3.11.0 merged, NOT tagged: … ops-release: recover with: git … tag -a v3.11.0 … && git push origin v3.11.0
ops-release now fails closed. Open pull requests against main stop the run, where the old sweep had an agent review and merge them. The merge needs a Copilot review, every review thread resolved, and all six required checks passing on the exact head commit. A skipped check no longer counts. If tagging fails, it says merged, not tagged, and prints the recovery command.
Upgrade
Update the ops plugin, then check your outbound gate
/plugin marketplace update ops-marketplace
then update the ops plugin
Each channel you send on needs an approved outbound gate on your host.
Without one, drafts stay pending with a diagnostic.
github.com/Lifecycle-Innovations-Limited/claude-ops/releases/tag/v3.11.0
To upgrade, run plugin marketplace update for ops-marketplace, then update the ops plugin. Then check that every channel you send on has an approved outbound gate on your host. Where it doesn't, ops-desk, ops-inbox and ops-leadgen keep the draft pending with a diagnostic. That's claude-ops 3.11.0, where sends, archives and releases wait for proof.







