claude-ops v3.11.0

3 hours ago

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.

Ask about this presentation

Chapters

  1. 0:00claude-ops 3.11.0
  2. 0:14Outbound gate
  3. 0:38ops-desk archiving
  4. 0:57ops-inbox proof
  5. 1:18Monitor-only daemon
  6. 1:40AWS audit dates
  7. 2:05ops-release gates
  8. 2:28Upgrade
Show transcript
  1. 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.

    Slide text
    claude-ops 3.11.0
    OUTBOUND desk, inbox, leadgen
    ARCHIVE ops-desk
    INBOX ops-inbox
    DAEMON --monitor-only
    AWS ops-aws-audit.sh
    RELEASE ops-release
    UPGRADE ops-marketplace
    claude-ops version 3.11.0

    Sends, archives and releases now wait for proof

    Business Operating System for Claude Code

  2. 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.

    Slide text
    claude-ops 3.11.0
    OUTBOUND desk, inbox, leadgen
    ARCHIVE ops-desk
    INBOX ops-inbox
    DAEMON --monitor-only
    AWS ops-aws-audit.sh
    RELEASE ops-release
    UPGRADE ops-marketplace

    Every send goes through your host's approved outbound gate

    BEFORE · OPS-LEADGEN
    You type ok → /tmp/.claude-send-ok → send
    NOW · OPS-DESK, OPS-INBOX, OPS-LEADGEN
    Gate shows recipient and full text → your yes → one send
    Removed from ops-inbox: mcp__gog__gmail_send mcp__whatsapp__send_message mcp__plugin_imessage_imessage__reply
  3. 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.

    Slide text
    claude-ops 3.11.0
    OUTBOUND desk, inbox, leadgen
    ARCHIVE ops-desk
    INBOX ops-inbox
    DAEMON --monitor-only
    AWS ops-aws-audit.sh
    RELEASE ops-release
    UPGRADE ops-marketplace

    ops-desk asks before it archives a thread

    Archive finished items immediately, without asking

    archive Shown with its evidence. Archived only after you approve that item.
    already_done
    info_only
    Closed in your task tracker. Mailbox and chats stay as they are.
  4. 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.

    Slide text
    claude-ops 3.11.0
    OUTBOUND desk, inbox, leadgen
    ARCHIVE ops-desk
    INBOX ops-inbox
    DAEMON --monitor-only
    AWS ops-aws-audit.sh
    RELEASE ops-release
    UPGRADE ops-marketplace

    Inbox zero now needs proof from the source

    Attachments

    Read the actual invoice or PDF before stating an amount or due date. Unreadable means the item stays open.

    Archive read-back

    Read the archived flag back for every WhatsApp JID and LID on the right account. A failed read-back is not inbox zero.

  5. 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.

    Slide text
    claude-ops 3.11.0
    OUTBOUND desk, inbox, leadgen
    ARCHIVE ops-desk
    INBOX ops-inbox
    DAEMON --monitor-only
    AWS ops-aws-audit.sh
    RELEASE ops-release
    UPGRADE ops-marketplace

    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.

    DAEMON-HEALTH.JSON · EVERY 30 SECONDS
    mode: "monitor_only"
    actions_enabled: false
    last_health: "unknown"
  6. 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.

    Slide text
    claude-ops 3.11.0
    OUTBOUND desk, inbox, leadgen
    ARCHIVE ops-desk
    INBOX ops-inbox
    DAEMON --monitor-only
    AWS ops-aws-audit.sh
    RELEASE ops-release
    UPGRADE ops-marketplace

    AWS key ages come out the same in every time zone

    BEFORE · GNU DATE
    1970
    date -d "$1" … || echo 0

    An unparsed date became 0, so the key's age counted from 1970.

    NOW · PYTHON 3 · TIME ZONE REQUIRED
    UTC 1 day
    US Eastern 1 day
    UTC+9 1 day

    The same moment, tested in three zones. A bad date reports "age unknown".

  7. 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.

    Slide text
    claude-ops 3.11.0
    OUTBOUND desk, inbox, leadgen
    ARCHIVE ops-desk
    INBOX ops-inbox
    DAEMON --monitor-only
    AWS ops-aws-audit.sh
    RELEASE ops-release
    UPGRADE ops-marketplace

    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)

    MERGE NEEDS, ON THE EXACT HEAD COMMIT
    ✓ Copilot review
    ✓ Every review thread resolved
    ✓ 6 required checks pass. Skipped doesn't count.
    ops-release: v3.11.0 merged, NOT tagged: …
    ops-release: recover with: git … tag -a v3.11.0 … && git push origin v3.11.0
  8. 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.

    Slide text
    claude-ops 3.11.0
    OUTBOUND desk, inbox, leadgen
    ARCHIVE ops-desk
    INBOX ops-inbox
    DAEMON --monitor-only
    AWS ops-aws-audit.sh
    RELEASE ops-release
    UPGRADE ops-marketplace

    Update the ops plugin, then check your outbound gate

    /plugin marketplace update ops-marketplace

    then update the ops plugin

    CHECK FIRST

    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

What happened in AI today, in your inbox

One short email each evening. Read it and you’re caught up.

Built in New York with ❤️