-
The warning is not the cap
Simon Willison argued on
3 October that pay-by-usage
services need default hard
budget caps. Coding agents,
and personal agents wrapped
in a calmer UI, cut the
friction of spinning up
code that calls paid APIs,
hosts an app, or bills for
storage and compute. A soft
cap that emails you after
a dollar amount is not a
stop. The runaway work
happens while you sleep.
The email arrives after it.
He wants the hard limit as
the default: after the
number, the service cuts
the thing off and returns
errors. Living without a
cap should be an opt-in
checkbox, written so a
person can see they chose
the bill. Most people, he
writes, would rather have
errors than a surprise
four-figure charge.
AWS shipped a version of
this on 16 September in a
new builder experience.
You can set a monthly spend
limit for a project. If
usage reaches it, the
project is paused for that
month. The account docs
still say the experience
is rolling out to a
limited number of
customers. Google Cloud
shipped Spend Caps in July:
a monthly financial cap on
specific services inside a
project. The pattern is
showing up. It is not yet
the default everywhere an
agent can deploy.
His note for agents is the
practice. They should bias
toward providers that have
a hard cap, and warn a new
builder off an uncapped
service before the first
deploy.
If an agent can start a
paid loop, the cap has to
be the thing that stops
the loop. An email is not
a stop.
Source:
We’re going to need default hard budget caps — Simon Willison, 3 October 2026
·
New AWS builder experience — 16 September 2026
·
Create a spend limit — AWS docs
·
Spend Caps — Google Cloud, July 2026
-
The deny rule outranks the mod
Claude Code 2.1.289, dated
3 October, closed a
precedence hole. On managed
machines, a deny or ask
rule on a nested part of a
compound shell command was
not holding when a
user-installed mod had
already approved the call.
The fix makes the rule win
over that approval.
Two related holes sat
under sandbox auto-allow.
A deny or ask rule could
miss a command that sat
behind an environment-variable
prefix whose value had
been expanded. A bare
variable assignment in
front of the command could
skip the rule entirely.
The changelog’s example of
the prefix case is an
assignment, then a
destructive command. The
lesson is not the example.
The rule has to see the
command that runs, not the
wrapper in front of it.
A mod can watch a tool
call. It cannot retire a
deny rule. If the rule and
the plugin disagree, the
rule is the control.
Source:
Claude Code changelog — 2.1.289, 3 October 2026
-
The description is the catalog
The same release fixed a
quieter edit. A
user-installed plugin
could rewrite the
descriptions of an
organization-managed MCP
server’s sign-in tools.
The model chooses tools
from those descriptions.
If a plugin can change the
text, the org’s catalog is
no longer what the model
reads.
This is the same class of
failure as the deny rule.
The organization wrote a
contract. A plugin one
person installed was
allowed to edit the
contract the session sees.
Sign-in tools are the
wrong place for that edit.
They are how the session
gets credentials. A
rewritten description can
point the model at a
different story about what
the tool does, without
changing the server the
org thought it had pinned.
After a plugin install or
an upgrade, read the
sign-in tool text. If it
is not the org’s sentence,
the catalog has been
edited.
Source:
Claude Code changelog — 2.1.289, 3 October 2026
-
Set the effort on the request
GitHub’s 2 October
changelog says Copilot code
review can now be requested
through the REST and
GraphQL APIs. Each request
can set the review effort
for that review. Balanced
is the default effort
level. The change is
generally available on
Copilot Pro, Pro+, Max,
Business, and Enterprise.
The default move was
announced on 28 August and
took effect on 28
September for new and
existing repositories and
organizations using
Copilot code review. An
explicit Lite selection
was kept. Enterprise,
organization, repository,
and personal settings can
each override the level
above them. Default is no
longer a stable name for
“whatever we had when we
wrote the workflow.”
An agent that calls the
API and omits effort does
not get last month’s
meaning. It gets Default,
and Default now means
Balanced unless someone
pinned Lite. That is the
right review if Balanced
is what you want. It is a
surprise if the script was
written against the old
Default and nobody passed
a field.
If a script asks for the
review, pass the effort on
that call. Do not inherit
a default a vendor just
renamed.
Source:
Copilot code review: API support and new default effort level — GitHub Changelog, 2 October 2026