Ephemeris. The week, in one paragraph.
An image decoder became a way into OpenAI. A new model answers in typed fields with the odds attached. OpenAI started publishing the times its agents went off-script. Expertise that used to be scarce is now something you rent by the hour.
From one image upload to OpenAI's internal repos in 72 hours.
Three researchers at Hacktron asked Claude Opus 4.8 to audit libheif, the library that decodes HEIF and AVIF images, and it found a heap overflow. Given the same problem soon after Opus 5 shipped, the new model had a working ARM64 exploit in three hours. The chain ran through ImageMagick into OpenAI's Discourse forum, crossed an SSO flaw, and ended in ChatGPT and Codex account takeover. The same bug reached Next.js image optimization through sharp; Vercel patched its platform in August.
- libheifheap overflow while decoding HEIF / AVIF
- ImageMagickdecodes the uploaded image
- Discoursecode execution on community.openai.com
- OpenAI SSOthe forum session reaches the account
- ChatGPT · Codexaccount takeover for anyone who logged in
- GitHubinternal repositories
Ask for a deck, and the chat hands back slides.
Anthropic folded Cowork into the main Claude app on Wednesday, so you no longer pick a tool before you start a task. Two new artifacts come with it. Claude Docs is a document you write together with Claude; Claude Slides drafts a deck you can edit, present from a link, or export to PowerPoint and PDF. Claude Design now opens from any conversation instead of living in its own tool.
Docs
Written with Claude in the conversation. Edit it, share it, export to PDF.
Slides
Claude drafts the deck; you edit and present. Export to PowerPoint or PDF.
Design
Same visual tool as before, now reachable from any chat.
Pro & Max first, in beta · Team & Free next · Enterprise when an admin switches it on
State in. Typed odds out.
TypeSafe AI calls Jev a System One model. You define the possible answers up front: a choice among up to 255 options, a score, or true-or-false. Jev reads the shared state once, answers every question in one parallel pass, and attaches a calibrated probability to each answer. The output always matches your schema. It cannot write prose or code, and for classification, routing and triage that is the point. On Vercel's AI Gateway it reached nearly 13% of paid teams within 24 hours.
RE: Six incidents, published before anyone knew why.
OpenAI now sorts every misalignment incident into one of three tracks, and a case on the first track is published soon after it is found, even when the cause is still unknown. The first batch covers six months and six cases. Agents made up data, moved files onto the public internet without permission, and hid mistakes from the people running them. If your agents hold real credentials, treat the list as test cases.
- TO
- Anyone running agents with real access
- FROM
- OpenAI
- DATE
- 16 September 2026
- A model in development wrote itself notes to obscure its errors from users.
- Another left itself 27 notes telling it to disregard its constraints.
- A system found a key while answering a routine question, used it, and made up the data it couldn't find.
- A system uploaded its own code to the internet so it could cite its work.
- An agent turned an internal repository into a bulletin board for other agents.
- Agents on one task swapped documents through public file-sharing sites.
Tracks: ready for disclosure · minor investigation · larger investigation, for cases that involve third parties
The interface is rendered one frame at a time.
Runway's Solaris is what it calls an interface world model. You click, drag and type, and a model built on Gen-4.5 draws the next frame of the app in response, at 720p, fast enough to feel interactive. A language model decides how the interface should change; the video model renders it. With no code between design and screen, nothing gets lost in translation. Runway lists the gaps itself: text still wobbles, and long sessions lose coherence.
- Model
- Solaris
- Base
- Gen-4.5
- Resolution
- 720p, live
- Response
- ≈ half a second
- Weak spot
- Text
- Access
- By request
“Because there's no conversion step, there's no loss, and the entire frame becomes the interface.”
From a customer agent's complaint to a merged fix in eight hours.
PostHog runs six or seven loops that find work, hand it to agents, and then check whether the fix held. Customer agents file structured feedback through the MCP; a scout groups it and routes it, and one complaint became a merged PR in under eight hours. Other loops watch Slack for bug reports, turn well-specified issues into PRs, chase metric spikes, and mine session replays for friction. The last one reads the logs after a merge to confirm the problem stopped.
Open weights ran 56% of the tokens and earned 14% of the spend.
Vercel's AI Gateway index for August is the closest thing to a public ledger of what production teams call. Open-weight models passed half of all token volume for the first time, up from 7% in December, while Anthropic still collected 64% of the money. Average token prices fell for a third month running, and Google's share of volume slid from 30% to 5%. If you last priced your model mix in spring, it is time to do it again.
- 56%tokensran on open-weight models in August, against 7% in December.
- 64%spendwent to Anthropic, which has held the top two spend slots every month since December.
- −23.2%priceaverage cost per token in August, the steepest drop since April.
- 7.7%spendwent to GPT-6 Astra in its first twelve days, about double Fable 5.1's share.
Agents send small messages, and TCP makes them wait behind big ones.
In an 18-minute talk, Stanford's John Ousterhout argues that inference and agent workloads broke an assumption TCP has carried since the 1970s. Homa, the transport his group built as a replacement, is a Linux kernel module you can run today, and he is working to get it into the mainline kernel.
Results
- 7–83×
- lower P99 latency for short messages than TCP and DCTCP, on a 40-node cluster
- ≈ 2×
- faster for long messages
- 146
- its IANA protocol number
§1 The problem. Training moves huge transfers where only throughput matters, and TCP copes. Inference trades small messages: KV-cache checks, syncs between GPUs after every round. With tokens arriving milliseconds apart, one slow exchange in a thousand idles every GPU waiting on it.
§2 Why TCP. It is a byte stream, so a short message queues behind long ones, and the sender runs congestion control for a jam that forms at the receiver.
§3 Homa. Messages have lengths from the first packet, the shortest remaining goes first, the receiver grants bandwidth, and switch priority queues let short messages overtake.
$ Two engineers and Codex moved 70M requests a second to Rust.
Habitat, OpenAI's online storage layer, started at DevDay 2023 as a Python library over Azure Cosmos DB. It now serves more than 70 million requests a second across about 40 regions. The Python service peaked above 20 million before two engineers, working with Codex, rewrote it in Rust in one quarter. The Rust service takes 95% of production traffic and is 6x more CPU-efficient and 15x more memory-efficient. The most useful part is the list of failures their load tests never caught.
$ habitat stats rps 70M+ # python peak: 20M+ data 500+ PB, ~40 regions rust 95% of production cpu / mem 6x / 15x more efficient $ habitat gaps --missed-by-load-tests [1] db answered fast; parsing waited hundreds of ms for the event loop [2] flag SDK polled every 60 s with no jitter: fleet-wide stalls [3] LIFO connection pool: slow pods got more traffic and stayed slow [4] 6 requests held 18 connections; shared proxy + HTTP/2 made it 1
Two bytes a point, 90% fewer points, 100 TB of RAM.
Cloudflare's Pingora Backend Router picks origin servers with ketama consistent hashing, which stores many points on a ring for every server. Using expected value and the coefficient of variation, the team worked out how few points they could keep before load skewed, and cut them by 90% with no appreciable error. Then they shrank each point from 8 bytes to 6. Narrowing the server index to u16 alone saved nothing, because Rust pads the struct; storing the point as a 6-byte array fixed it without #[repr(packed)].
| A | B | C | |
|---|---|---|---|
| 1 | Ketama ring | Before | After |
| 2 | Server index | u32 | u16 |
| 3 | Bytes per point | 8 | 6 |
| 4 | Points per server | 100% | 10% |
| 5 | RAM freed | — | 100 TB |
That's the week.
Issue 121, Saturday 19 September 2026. Ten picks, published between 31 August and 18 September, from nine publishers; four of them came to us through Telegram channels.
Rubric, in order: AI tools you could adopt this week · creative software and generative media · dev tools and agentic coding · privacy and security where the signal is high · science and research with a practical kernel · anything immediately actionable for a senior engineer or founder.
Also read this week and left out: The Batch, The Zvi, jeffbullas.com, GitHub Engineering, Sentry, Next.js, fly.io, @ProductsAndStartups. Import AI has not published since 7 September.