The Brief #26.32 · AI price crash, CSS :paused, and stacked pull requests

Want more of these in your Google results?
The price of capable AI fell off a cliff this week, two browsers moved, and GitHub put stacked pull requests into public preview.
Pennies now buy premium AI performance
GPT-5.6 Terra and Luna are back in the table this week, since both just got cheaper. Artificial Analysis’s Intelligence Index runs every model through the same hard tests and boils the results into one number, so higher means smarter. The cost column is the average price of one of those tasks, and that’s the number that moved this week.
Two models are new this week, and only one made the table.
Qwen 3.8-Max landed on August 3 at 2.4 trillion parameters. Parameters are the numbers a model works out during training, and together they hold everything it knows, so the count is a rough measure of how big the thing is. It never uses all of them at once. The model is split into specialist sections, and each piece of text you send is routed to only a few of them, so about 95 billion parameters do the work on any one request. That’s what keeps a model this size affordable to run at all.
Alibaba, which builds Qwen, says it will publish the model files themselves (the weights), the thing you would download and run on your own machines. That would make it the first model in Qwen’s top tier anyone can host, though the download is promised for next week and Artificial Analysis hasn’t scored it, so it stays out of the table.
The cheap seat goes to DeepSeek V4-Flash, released on July 31, which Artificial Analysis scores at 50 at $0.03 per Index task, roughly a fortieth of what GPT-5.6 Sol costs on the same benchmark. It lists at $0.14 input / $0.28 output per million tokens. Its model files sit on Hugging Face under the MIT license, which lets you download them and use them commercially with almost no strings attached. So a model scoring level with Gemini 3.6 Flash is now something anyone with the hardware can run themselves.
| Model | Intelligence Index | Cost per Index task |
|---|---|---|
| Claude Opus 5 (max) | 61 | $2.34 |
| Claude Fable 5 (max) | 60 | $3.15 |
| GPT-5.6 Sol (max) | 59 | $1.23 |
| Kimi K3 (max) | 57 | $0.86 |
| GPT-5.6 Terra (max) | 55 | $0.51 |
| Grok 4.5 (high) | 54 | $0.36 |
| GPT-5.6 Luna (max) | 51 | $0.05 |
| GLM-5.2 (max) | 51 | $0.57 |
| Gemini 3.6 Flash (high) | 50 | $0.56 |
| DeepSeek V4-Flash (max) | 50 | $0.03 |
Just outside this week, on July 27, Anthropic’s Dario Amodei set out the company’s position on open-weights models. He wants governments to crack down on industrial-scale distillation, which is training a cheap model on a stronger model’s answers to copy what it can do. He says the company already bans accounts caught doing it to its own models.
A week earlier, a judge approved Anthropic’s $1.5 billion settlement with a group of authors. It had downloaded their books from two pirate libraries and kept the copies, and that is what the money is for, not the training. Anthropic says none of those copies went into a model it shipped, and it has to delete them now. So the company that wants rules against people copying from its models is the one that just paid out for copying from authors.
Chrome 152 beta ships the media state pseudo-classes
Chrome 152 reached beta on July 30 carrying :playing, :paused, :seeking, :buffering, :stalled, :muted, and :volume-locked.
They’re pseudo-classes, which match an element on a condition rather than on its tag, class, or id, and each of these matches an <audio> or <video> element by what it’s doing right then.
For as long as we’ve had <video>, a custom player has needed JavaScript to do this.
You listen for play and pause, flip a class on the wrapper, and give CSS something to hook onto.
A selector replaces that whole dance.
The catch is that these pseudo-classes match the media element itself.
A space between two parts of a selector means “inside”, so video:paused .play-icon asks for a play icon sitting inside the <video> element.
Nothing lives there.
Whatever sits inside <video> is fallback content, and only a browser that can’t play video ever renders it.
Put the state test on the element wrapping the video instead.
css
/* Reaches inside <video>, where nothing renders */
video:paused .play-icon { display: block; }
/* The wrapper reacts, and the real control gets styled */
.player:has(video:paused) .play-icon { display: block; }Selectors Level 4 adds one wrinkle.
:buffering and :stalled never match alone, since a video stuck waiting on data still counts as playing, so a rule you wrote for :playing also applies while the spinner is up.
GitHub’s stacked pull requests are in public preview
Stacked pull requests went into public preview on July 30, the stage where anyone can use a feature before it’s finished, reaching every repository over the following days. A stack is an ordered series of pull requests, each carrying one focused layer of a larger change. A reviewer takes a layer at a time, and you land the ready ones plus every unmerged layer below them in a single click. Each targets the branch below it rather than main, which is what keeps the order.
Add frontend #32
src/components/really-cool-ui.ts
import { html, css, LitElement } from 'lit';
import { customElement, property } from 'lit/decorators.js';
@customElement( 'really-cool-ui' )
export class ReallyCoolUI extends LitElement {
static styles = css`p { color: blue }`;
@property()
You can drive a stack from github.com, the GitHub command line tool, the mobile app, or a coding agent through the gh-stack skill. Your branch’s existing protection rules, the ones demanding a review or a passing check before anything merges, still decide what reaches main. Merge queue support, which batches pending changes and tests them together before they land, arrives over the coming weeks, and the docs cover the workflow.
Safari’s preview build catches up on a year of CSS
Safari Technology Preview 249 shipped on July 29 with a run of features the other engines shipped first, plus one they haven’t.
CSS picked up @function, which lets you write your own named function that returns a value, and if(), which picks between values inside a property instead of in a separate rule.
It also got attr(), for pulling an HTML attribute’s value into any property, and calc-mix(), for blending two values, the one no other engine ships yet.
JavaScript picked up Temporal, the date and time API built to retire Date.
HTML picked up popover=hint, a tooltip-flavored version of the browser’s built-in popup layer.
It also got close watchers, which route the Escape key and Android’s back gesture to whatever should close.
The closedby attribute on <dialog> is that machinery with a switch on it.
Set closedby="closerequest" and Android’s back gesture closes the open dialog instead of sending the user back a page.
Set closedby="none" and neither Escape nor the gesture can dismiss it.
Technology Preview is the build Apple ships ahead of Safari itself, so none of this can go in front of users this month. It does tell you what’s worth planning around next year, and that list just got a lot longer.
OpenAI made Codex and the API go further
OpenAI cut the price of two GPT-5.6 models on July 30. Luna, the fast cheap tier, dropped 80 percent, to $0.20 input / $1.20 output per million tokens. A token is a chunk of text, a short word or a piece of one, and it’s what these APIs bill you by, coming and going. Terra, the everyday model, dropped 20 percent, to $2 input / $12 output per million tokens, and Sol, the flagship, is unchanged.
The new prices also change how usage counts against paid plans for Codex, OpenAI’s coding agent, and for ChatGPT Work, so the same subscription goes further.
Fast mode arrived alongside the cut, replacing Priority Processing.
It runs Sol up to 2.5 times faster for twice the price with the same model behind it, and requests already tagged priority route to it on their own.
If you live in Codex, this is the part you’ll feel. OpenAI reset usage limits for every ChatGPT Work and Codex user on July 29, and says a typical Sol session now lasts about 18 percent longer. Auto-review, the code review that runs over your changes without being asked, also moved to Luna, which should make it cost about 10 times less.
OpenAI also published where the savings came from, and Sol did a real share of that work itself. Running inside Codex, it rewrote production GPU kernels, the low-level code on the graphics chips that serve the model, cutting the cost of serving a request by 20 percent. It also ran hundreds of experiments on speculative decoding, where a small fast model guesses the next few words and the big one checks the guess in one pass. That lifted token-generation efficiency by more than 15 percent.
A quick update from code editors
VS Code 1.131 shipped on July 29 with dictation built in. You can talk into chat inputs, editors, and the integrated terminal without the Speech extension. The speech-to-text runs on a Nemotron model that downloads once and stays on your machine, so your audio never leaves it. The Agents window also reports on a running subagent, a helper the main agent spun off for part of a job. You see its model, how long it’s been going, and the tool it’s calling, without opening its conversation.
Cursor arrived on iPad the same day, on all paid plans. Review on iPhone and iPad now covers a whole pull request, comments, checks and approvals included. You can attach a screenshot, tap to comment on a specific point, or draw on it with an Apple Pencil.
Gemini Spark opens up past the U.S.
On July 31 the Gemini team said Spark is rolling out to Google AI Pro users outside the U.S. Spark started reaching Pro subscribers in the United States on July 16, two weeks earlier. Ultra subscribers already had it in most places, so this is where the wider paying base gets in, and it needs a Pro or Ultra plan either way. Check the availability page first, though. The European Economic Area, the United Kingdom, Switzerland, and Nigeria are still outside the rollout.
Spark works through a job on its own while you do something else, which Google calls “your personal AI agent that can automate complex workflows and manage schedules for ongoing tasks”. What separates it from a chat window is where it runs. Spark works on Google’s servers rather than your machine, so it keeps going with your laptop shut. It reaches Gmail and Docs once you connect Google Workspace to Gemini Apps.
Two of the suggested jobs give the shape of it. Hand it your inbox and it will summarize or archive newsletters and unsubscribe you from lists, an errand nobody schedules time for. Or ask it for a standing digest on a story you care about, which it keeps following as the story develops rather than answering once and forgetting.
The people inside the AI labs asked for a brake
Pacing the Frontier went up on July 28, a short statement signed by employees of the companies training the largest AI models.
The statement asks the U.S. government to back an international effort to build the technical and governance tools needed to deliberately pace automated AI development. By automated AI development it means models capable enough to do the research that builds the next model, a loop it says could accelerate past anyone’s ability to understand or control it.
The signatories aren’t the usual outside critics. Anthropic’s Dario Amodei and Jared Kaplan, OpenAI’s Jakub Pachocki and Mark Chen, Google DeepMind’s Shane Legg, and Meta AI’s Shengjia Zhao are all on it, and the count read 1,350 when I checked on August 5. It runs a few short paragraphs, and it’s worth reading in their words rather than mine.
Chrome sets the date for dropping XSLT
Chrome 152 opens an origin trial for client-side XSLT, a per-site opt-in that keeps it rendering after Chrome 158 drops it on November 17, 2026. XSLT turns an XML file into HTML using a stylesheet, and it’s what makes an RSS or podcast feed open as a styled page instead of a wall of tags.
Usage is about 0.02 percent of page loads, so this only reaches you if you serve a feed or a sitemap someone is meant to read. A site in the trial keeps rendering until August 2027, and every other feed goes back to raw markup in Chrome on that November date. WebKit and Gecko back the removal too, and Drupal’s Simple XML Sitemap module already has an open issue about losing its formatted view.
Want more of these in your Google results?