---
title: A Button That Lies Is Worse Than a Missing Feature
slug: weekly-recap-2026-08-15
date: 2026-08-15
excerpt: Four versions shipped in five days, and nearly every fix closed a gap between what the software said and what it was actually doing.
featured_image: "https://bbtxujdxvidaghmhxkqs.supabase.co/storage/v1/object/public/generated-images/blog-1786798073836-weekly-recap-2026-08-15.webp"
featured_image_alt: A row of small control dials on a dark navy panel, all set to a clear value except one dial left blank and unmarked.
canonical_url: https://cerevisor.com/blog/weekly-recap-2026-08-15
updated_at: 2026-08-15T12:47:55.192022+00:00
---

# A Button That Lies Is Worse Than a Missing Feature

### The week in one glance

- Cerevisor 2.0.0 landed, then 2.0.1 the same day, then 2.1.1 and 2.2.0. Read together, the striking thing is how much of it was not new capability but claims being made true: an interface that promised local and quietly fetched fonts from Google on every launch, a Park button that reported paused while the work carried on, a Dismiss that silently vetoed an objective, turn ceilings nobody chose and nobody could see.

- The local-first fix closes a failure this blog named four days earlier and could not yet call fixed. Fonts and the code editor are now bundled, the interface permits no external hosts at all, and the update check can be switched off so launch makes no network calls.

- The pattern holds in the writing too. Both posts this week turn on refusing to report something untrue, which is the same instinct as the releases, aimed at the credential layer and at the person.

By the Cerevisor team.

## Why working and reporting that it works are two different claims

Four versions shipped in five days. The tempting way to write that up is a feature list, and it would miss what actually happened. Strip out the genuinely new capability and most of what remains is a label being brought into line with behaviour.

A button said Park and the work kept running. A button said Dismiss and the objective stayed active while the agent stood down every check, explaining nothing on screen. Runs hit turn ceilings of 100 per run, 25 per agent and 50 on Claude Code that were never surfaced anywhere, so long jobs stopped at a wall nobody chose. Turn counts on Claude Code were inflated by counting thinking, text and tool calls as separate turns, and the inflated figure was charged against the run&rsquo;s budget. An interface built on a promise that data stays on your machine was loading fonts from Google on every launch and pulling its code editor from a CDN at runtime.

None of those are missing features. Each one is worse than a missing feature, because a missing feature is visible and a false readout is not. The operator is not merely uninformed, they are confidently wrong, and every downstream decision inherits that. This is the part of AI agent orchestration that no demo shows.

## What shipped: four versions, mostly closing the gap between claim and behaviour

  [**Cerevisor 2.0.0**](/releases/v2-0-0)
  release, 10 August

The big one. Operator can now run real workflows rather than only draft them, and it runs them on that workflow's own permissions, because there is no separate Operator mode for permissions: a workflow that cannot touch the shell when a person runs it cannot touch the shell when Operator does. Providers moved into one pane. Workflows can be branched into genuine copies. The part we would point at first, though, is the section admitting the interface was not as local as the promise said, and the turn ceilings that were removed rather than documented.

  [**Cerevisor 2.0.1**](/releases/v2-0-1)
  release, 10 August

A patch the same day, and the notes are honest about where it came from: three Operator fixes found by watching it work for a morning. Dismissing a card had been telling Operator never to raise the subject again while the objective itself stayed active. Operator could not see what its existing workflows did, so it rebuilt them under new names. A generated workflow could contain the same agent twice in one wave and still pass the completeness check, because every agent was individually valid.

  [**Cerevisor 2.1.1**](/releases/v2-1-1)
  release, 13 August

Runs got harder to waste. Every run now starts with a check that the workflow can do what it asks, so a run that was never going to work stops before it spends, and the failed checks stay on screen for the whole run instead of one click on one dialog being treated as the last word. Change the workflow, the folder or the provider and the check is redone, because permission to run is never carried over to a run it was not granted for. Operator goals became manageable, and Park was made to mean what it says.

  [**Cerevisor 2.2.0**](/releases/v2-2-0)
  release, 14 August

Tool servers were rebuilt. They can live online behind a normal browser sign in, where Cerevisor receives permission to act and never sees the password, and adding one takes three paths instead of one blank form, all ending at the same test and save step. A workflow scopes servers to all, selected or none, individual agents override that, and one switch turns tool access off entirely. Operator also stopped repeating finished work, because its own notes had not reliably recorded which workflow it had just completed.

## Two posts on refusing to report something that is not true

  [**How to set up an MCP server for a real agent workflow**](/blog/harness-how-to-setup-mcp-server-agent-workflow)
  harness-adoption

Six steps in order, working configs, and four named failures from building Model Context Protocol support. The design choice underneath it is the same instinct as the releases, one layer down: a credential that cannot be resolved stops the server from starting rather than letting it come up empty and report a green row.

  [**The attention budget your AI agent orchestration plan is missing**](/blog/harness-ai-agent-orchestration-attention-budget)
  harness-operator-sustainability

Coding agents stopped asking permission by default, and the pitch moved to fleets of them running while the laptop is closed. Removing the prompt did not remove the work, it moved it into the operator's head, and no concurrency cap in the stack is protecting the person holding the open loops.

## Signals to implications for anyone running an AI agent orchestration platform

**Signal.** The interface was fetching fonts from Google on every launch and its code editor from a CDN at runtime, under a product promise that data stays on the machine. Both are now bundled, the interface permits no external hosts at all, and the update check can be turned off so launch makes no network calls.

**Implication.** A local-first claim is a network claim, and it is testable in an afternoon. Watch what your own tools request at launch, not what their marketing says, and treat an offline launch as the acceptance test. *[Eng Leader]*

Source: [Cerevisor 2.0.0](/releases/v2-0-0)

**Signal.** Three turn ceilings shipped invisibly, at 100 per run, 25 per agent and 50 for agents handed to Claude Code, and none of them appeared anywhere in the interface. They are now off by default and opt-in.

**Implication.** Audit your stack for limits that exist but are never shown. An undocumented ceiling does not read as a limit when it fires, it reads as the model giving up, and teams spend weeks tuning prompts against a number instead. *[Exec + Eng]*

Source: [Cerevisor 2.0.0](/releases/v2-0-0)

**Signal.** A Park button that reported paused while the underlying work continued, and a Dismiss that silently vetoed an adopted objective, both survived multiple releases before anyone caught them.

**Implication.** Test the controls that claim to stop things, not just the ones that start them. Start paths get exercised constantly and fail loudly; stop paths get exercised rarely and fail into silence, which is the worst place for a bug to live. *[Eng Leader]*

Source: [Cerevisor 2.1.1](/releases/v2-1-1)

## The contrarian take: an invisible bug is a trust problem, not a quality problem

The instinct is to file all of this under polish and put it behind the roadmap. That is backwards. A missing feature costs a sale; a false readout costs the belief that any readout means anything, and that is the whole asset when software runs unattended. The most useful thing in [2.0.0](/releases/v2-0-0) is not a feature at all, it is a documented count of every network call the app makes, which turns a promise into something checkable. The [same-day patch](/releases/v2-0-1) is the other half of the argument: three fixes found by watching it work for a morning, which is time no roadmap allocates. If a vendor cannot tell you what their software does when nobody is looking, the honest read is that they have not looked either.

## What to check in your own stack this week

Two things, both cheap. Open the network tab and launch your local-first tools with the connection off, then compare what happens to what the marketing page claims. Then list every limit in your agent stack that can fire without announcing itself, and make each one either visible or gone. We published an [egress audit](/blog/local-private-llm-egress-audit) a few days before 2.0.0 that named our own font and editor dependency as an open failure we had not yet fixed. Shipping that fix is what the release above is for, and writing the failure down first is what made it hard to quietly leave undone. Our [data inventory](/docs/guides/memory-and-learning/data-inventory-and-consent) now names every network call the app makes. There are two, both first-party, and neither carries user content.

If this recap was useful, the newsletter delivers it straight to the inbox every Monday. [Subscribe here.](/#newsletter)
