CLAUDE LABJP
DEFAULT — Sonnet 5 is now the default model for Pro, Team Standard, and Enterprise seats, with a native 1M-token context window and adaptive thinking on by defaultREWIND — The /rewind command can now restore a conversation after /clear. At a checkpoint you choose whether to roll back the code, the conversation, or bothORGDEFAULT — Organization default models are supported. When you have not picked a model yourself, /model shows it as Org default or Role defaultATTACH — File attachments in chat are now clickable. Cmd or Ctrl-click reveals the file in Finder or ExplorerBASH — Bash mode gained live file path autocomplete, and auto mode now spells out the reason when it declines an actionEXPIRE — The claim window for the $100 promotional credit closed on August 2. Credits already claimed expire September 17, so any evaluation run needs to sit inside that windowDEFAULT — Sonnet 5 is now the default model for Pro, Team Standard, and Enterprise seats, with a native 1M-token context window and adaptive thinking on by defaultREWIND — The /rewind command can now restore a conversation after /clear. At a checkpoint you choose whether to roll back the code, the conversation, or bothORGDEFAULT — Organization default models are supported. When you have not picked a model yourself, /model shows it as Org default or Role defaultATTACH — File attachments in chat are now clickable. Cmd or Ctrl-click reveals the file in Finder or ExplorerBASH — Bash mode gained live file path autocomplete, and auto mode now spells out the reason when it declines an actionEXPIRE — The claim window for the $100 promotional credit closed on August 2. Credits already claimed expire September 17, so any evaluation run needs to sit inside that window
Articles/Claude Code
Claude Code/2026-06-17Advanced

When an Announced Billing Change Is Withdrawn at the Last Minute, Change No Code

A billing change that was supposed to take effect was withdrawn on the day. To survive announce, apply, and revert without touching code, I keep platform behavior behind a single flag and project the monthly delta from real logs.

Claude Code208Automation42Operations15Cost Management4Indie Dev22

Premium Article

The first thing I saw when I opened the logs was a note I had written myself: "takes effect today."

A few hours later, the reversal arrived. The change that was supposed to move headless claude -p runs, the Agent SDK, and GitHub Actions onto a separate pool of monthly credits was put on hold the day it was meant to land. They stay, as before, inside the subscription limit.

The night before, I had been getting ready to rework the headless stages of my pipeline. I had the script open and was halfway into adding a branch when my hands stopped.

Stopping was the right call. Had I edited ahead of time, I would now be peeling that branch back out. So today I want to write down, plainly, the design that lets me sit through announce, apply, and revert without touching the body of the code.

The condition: never add a branch at any stage

Running four sites on autopilot as a solo developer, I do not get to decide how the platform behaves. The only thing I decide is where in my own code I absorb a change in that behavior.

Get the absorption point wrong and this is what happens. Every announcement adds a branch to the script; every effective date deletes the old one; every reversal puts it back. The work of chasing the change causes more incidents than the change itself.

So I set one condition. At no stage of announce, apply, or revert do I touch the generation or push code. The only thing I touch is configuration. To make that true, platform behavior has to be pulled out of the body and gathered in one place.

Gather platform behavior in one place

First, I moved every external fact about billing and credits into a single object. The body of the code reads nothing else.

// src/config/platform.ts
// The single source of truth for platform behavior.
// The body reads only this; external changes are absorbed by these values alone.
 
export type PlatformState = {
  // Has headless execution been split onto a separate credit pool?
  headlessSeparateCredits: boolean;
  // Approximate cost (USD) per stage, updated from real logs
  costPerStageUsd: Record<string, number>;
  // Is this config "applied" or merely "staged" (announced only)?
  status: "applied" | "staged";
  // Rationale and last-verified date; append on each reversal or re-announcement
  note: string;
  verifiedOn: string; // YYYY-MM-DD (JST)
};
 
export const PLATFORM: PlatformState = {
  headlessSeparateCredits: false, // withdrawn, so left at false
  costPerStageUsd: {
    "topic-select": 0.04,
    "body-generate": 0.21,
    "quality-gate": 0.03,
    "push": 0.01,
  },
  status: "staged",
  note: "The 6/15 credit split was withdrawn (on hold) the same day. Staying staged until an effective date is reconfirmed.",
  verifiedOn: "2026-06-17",
};

The body just reads the value.

// src/pipeline/run.ts
import { PLATFORM } from "../config/platform";
 
// Which execution pool headless runs in is decided by one flag.
// The only branch is "read the config"; no logic is rewritten anywhere.
const runner = PLATFORM.headlessSeparateCredits
  ? "metered-credits"
  : "subscription";
 
console.log(`[stage] runner=${runner} status=${PLATFORM.status}`);

That is the whole point. When an announcement lands, run.ts stays shut. The only thing that moves is a single boolean in platform.ts: true once an effective date is confirmed, left false on a reversal. Keeping status at staged lets the code say "I know about the announcement, but I have not applied it."

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
A single source of truth for platform behavior, so apply and revert both flip one flag instead of editing logic
A dry-run diff estimator that projects the monthly cost delta from your own usage logs before you commit
An operating routine that prevents the double failure of pre-emptive edits left stranded after a reversal
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

Claude Code2026-06-19
An Article My Gate Rejected Got Published — The Cost of Chaining the Quality Gate and git push in One Call
In an unattended publishing pipeline, an article my quality gate had rejected went live anyway. The cause was chaining the gate and git push into a single shell call. Here is how the exit code gets swallowed, and a two-phase publish-marker design that refuses to push until every gate has demonstrably passed.
Claude Code2026-08-03
Existence Checks Pass, Writes Fail — Probing Capabilities Before an Unattended Run
A directory existing and a directory being writable are two different facts. Measured results from five broken-environment cases, and a capability-probe preflight for unattended Claude Code runs.
Claude Code2026-06-27
Will It Stay Light When You Run It Unattended? Observing and Capping Claude Code's Long-Session Memory
How to keep long, unattended Claude Code sessions from slowly getting heavier — with a tiny ps-based RSS sampler, a rolling-baseline watchdog, and session segmentation, shown with working scripts and a before/after comparison.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →