No. 5 Sunday 18 October Game dev, software and AI

Agents run the loop; people own the finish line

Meta shows how a small team built a whole app with agents doing the build, test and fix loop. Also: a key leak at a hosted agent console, the seven steps behind a database branch, and three small fixes that made a game sky believable.

The short version

  • Software and AI Meta built its Forum app to feature parity with Facebook Groups in eight weeks, with agents running the build and test loop and engineers signing off on evidence.
  • Software and AI OpenCode says provider API keys saved in its hosted console may have been exposed for about 1.4% of users. If you stored keys there, rotate them.
  • Software and AI DeepSeek's new open-weight Flash model gains 11 points on Terminal-Bench over the last version, by the vendor's own numbers, under an MIT licence.
  • Game dev Steam Next Fest opens tomorrow at 10:00 Pacific; demos not live by then miss it.
  • Game dev One devlog turned a flat yellow sky into a believable one with three small fixes: scattering order, a horizon nudge and a different tone mapper.
Software and AI Lesson

How Meta built Forum with agents

A small Meta team built a new app with AI agents doing most of the building and testing, and wrote down what worked: agents check their own work, and engineers approve the evidence.

The path a change takes in Meta's Forum team, as described in the team's engineering post.

Forum is Meta's standalone app for deeper conversations in Facebook Groups. A small team built it from scratch and reached core feature parity with Groups in eight weeks.

The team calls the model human on the loop: the agent plans, builds, tests and corrects in a loop, and the engineer sets the goal, watches, steps in when needed and approves. Every change still needs an engineer's sign-off, backed by build results, test output and recorded sessions of the agent using the app.

Their biggest gains came from changing the code and tools, not the prompts. Agents copied weak patterns they found, so the team fixed those once. Agents guessed which screen to edit until they got tools to read the live view hierarchy. A separate build flavor let designers prototype with AI while keeping that code out of the production build.

8 weeksto core feature parity with Facebook Groups

Technical details

Their operating vocabulary: rules are permanent project instructions (a mistake repeated more than twice is encoded once for everyone); skills are team conventions packaged as loadable steps; agents are automated checks that replace a manual pass; commands chain skills and agents into workflows; hooks are triggers, such as running the linter after every agent turn, checking simulator connectivity before installing, and validating tests before a pull request is created.

Repeatable stress runs (aggressive scrolling, random group browsing, rapid navigation, repeated media loading) surfaced a memory problem. The agent isolated a reproduction, proposed a fix and verified it; the fix roughly halved memory growth and page faults across repeated sessions. Engineers kept the architecture decisions.

After launch, an investigation agent gathers what a specific engineer used to know, posts a write-up with suggested fixes, and an engineer decides whether each finding is a bug or an intended trade-off. Giving it the same code pointers, example queries and design docs a new hire gets improved its answers most.

Why it mattersIt is a full, working description of agent-first development on a real product, and nearly every piece (rules, skills, hooks, a separate prototype build) can be copied by a team of one.

For youTheir vocabulary maps one to one onto your Claude Code setup. The parts to borrow: a rule for any mistake an agent repeats twice, a hook that lints after every turn, and a tool that lets the agent read live game or app state instead of guessing.

feature parity
Doing everything the older product does, so users lose nothing by switching.
human on the loop
A person supervises and approves an automated loop instead of doing each step themselves.
view hierarchy
The tree of on-screen elements an app is drawn from, which a tool can read to know what is really shown.
build flavor
A variant of the same app compiled with different code switched on or off.

Sources Engineering at Meta: How Meta built Forum

More like this Less like this

Agents at work, by the numbers

A faster open model, a leaked key store, and what changed at a lab that uses its own agents.

Software and AI Release

DeepSeek's new Flash model gains most on agent tasks

DeepSeek released an updated version of its downloadable Flash model, and its own tests show the biggest jumps on tasks where an AI works in a terminal or builds whole programs.

DeepSeek V4.1 Flash 1017 came out on October 17 with weights under the MIT licence: 763B parameters and a recommended 1M-token context. All scores below are vendor-reported.

V4.1 Flash 1017 Previous V4.1 Flash
Terminal-Bench 4.0 42.3 31.2
ProgramBench 29.1 20.3
DeepSWE v1.1 77.0 74.2
NL2Repo-Bench 68.2 65.4
HLE, no tools 42.6 36.8

A real step for an open model on agent work, but DeepSeek's own card still has Claude Opus 5 ahead on Terminal-Bench, ProgramBench and HLE. Treat it as a cheap option for agent loops worth testing on your own tasks.

Technical details

DeepSeek says the model is tuned for its own DeepSeek Harness (v0.2.1-rc.1 or later) and Tencent's CodeBuddy and WorkBuddy. Local serving examples on the model card: vllm serve "deepseek-ai/DeepSeek-V4.1-Flash-1017". Its hosted Search and Fetch tools are priced at $0.75 per 1,000 calls once billing starts on October 31.

It is on Vercel's AI Gateway as deepseek/deepseek-v4.1-flash-1017. We could not confirm a per-token price.

Why it mattersOpen-weight models keep closing the gap on agent tasks, which puts pressure on prices for everyone and gives teams a model they can run themselves.

For youWorth one run as a cheap subagent model on a routine task through a gateway, compared with your default on the same task; do not switch on benchmark numbers alone.

weights
The learned numbers that make up a model; releasing them lets anyone run it on their own hardware.
MIT licence
A permissive licence that allows commercial use with almost no conditions.
parameters
The individual learned numbers in a model; more usually means more capable and more expensive to run.
context
How much text a model can take in at once, measured in tokens.
Terminal-Bench
A test where an AI must complete real tasks by typing commands in a terminal.
vendor-reported
Measured and published by the company that made the model, not checked independently.

Sources Hugging Face model cardDeepSeek API newsVercel changelog

More like this Less like this

Software and AI Do this

Rotate any keys you saved in OpenCode's console

The company behind the OpenCode coding agent says someone got into an old system and may have seen AI provider keys that users had saved in its web console.

1.4%of OpenCode Console users affected, by the company's count

Affected users linked OpenAI, Anthropic or Google keys and were emailed. The company calls the incident ongoing; revoke and replace those keys and check your provider usage pages.

Technical details

Anomaly Innovations, which makes OpenCode, said it found unauthorized access to a legacy system that was being decommissioned and described a large-scale distillation attack. It is working with the three model labs. Reports that keys were stored in plain text, or were misused, are not confirmed by the company.

Why it mattersAny hosted tool that stores your provider keys is a copy of your bill waiting to leak. Give each tool its own key with a spending cap, so one breach costs one key.

For youCheck whether any hosted agent or gateway still holds a long-lived Anthropic key from an old experiment, and replace it with a capped, per-tool key.

provider keys
Secret API keys that let software use an AI company's models and bill your account.
revoke
Cancel a key so it stops working, even if someone else has a copy.

Sources OfficeChaiStartup Fortune

More like this Less like this

Software and AI Trend

Anthropic hires fewer juniors and spends more time in meetings

Anthropic published numbers on how its own staff changed as Claude took on more of the work: fewer junior engineers, and more of everyone's time spent deciding and reviewing.

Junior share of Anthropic's technical staff and of its technical hires, early 2025 against now. Meeting time per employee rose 20% in a year.

Anthropic's own report, via TechCrunch. In an April survey 27% of staff said Claude made them more productive; survey size was not given.

Why it mattersIt is one company's data, but it fits what Meta and others report: when agents write more of the code, human time moves to judgment, review and coordination.

For youA reminder to measure your own review and planning time, not lines shipped, when you judge whether a workflow change helped.

technical staff
Engineers and researchers, as opposed to sales, operations and other roles.

Sources TechCrunch

More like this Less like this

Plumbing for agent-built backends

Database branches, shared middleware and a view into prompt caching.

Software and AI Lesson

What happens in the 20 seconds it takes to make a database branch

Supabase explained, step by step, how it builds a copy of your project for a branch, which explains why a branch sometimes comes up missing data, secrets or functions.

A Supabase branch is its own project. A branch tied to a GitHub repo reads its config, migrations, seed data and functions from the repo; the median time to ready is about 20 seconds.

The order of steps for a GitHub-connected branch, from Supabase's engineering post. A branch without Git copies schema and functions from main instead.
Technical details

Each migration file runs as a single transaction and rolls back fully on failure. A failed migrate marks the branch DEAD and blocks seed and deploy; a failed health check only marks it PAUSED. psql meta-commands such as COPY FROM STDIN fail inside migrations. Migrations can be turned off with [db.migrations], and [remotes] gives a persistent branch its own settings.

Auth secrets are never copied. Functions are all copied at creation; after that only changed ones are redeployed, detected by a SHA-256 hash of the compressed bundle plus its JWT setting. A function with no [functions.<slug>] entry in config.toml deploys nothing, with only a warning. Logs are under Manage Branches.

Why it mattersBranch-per-change is how teams give each agent or pull request its own database. Knowing that auth secrets are not copied and that one bad migration skips the seed and deploy saves an afternoon of guessing.

For youIf an agent's preview branch comes up empty, look at the migrate step first: a failed migration silently skips your seed and functions.

branch
A separate copy of a project where changes can be tried without touching the live one.
migrations
Ordered scripts that change a database's structure, applied one after another.
transaction
A group of database changes that either all happen or none do.
seed data
Sample rows loaded into a fresh database so it can be used and tested.

Sources Supabase: how a new branch gets its config

More like this Less like this

Software and AI Release

Supabase middleware stacks auth and CORS in one list

Supabase released a small open-source library that lets the repeated setup code at the top of every server function (permissions, login checks, database client) be written once as a list.

Each entry runs in order and adds something to ctx; any entry can stop the request early. From Supabase's announcement:

import { pipeline } from '@supabase/middleware'
import { withCors } from '@supabase/middleware/cors'
import { withSupabaseClient } from '@supabase/server/middleware/client'
import { withRequiredClaims } from '@supabase/server/middleware/required-claims'

export default {
  fetch: pipeline([withCors({}), withRequiredClaims(), withSupabaseClient()], async (req, ctx) => {
    // ctx.supabase is scoped to the caller
    const { data } = await ctx.supabase.from('todos').select()
    return Response.json(data)
  }),
}

withCors answers the browser's preflight, withRequiredClaims checks the caller's JWT and returns a 401 if it is bad, and withSupabaseClient adds a database client that acts as that caller.

It runs on Supabase Edge Functions, Vercel, Cloudflare Workers, Deno, Bun and Node 22+. The Postgres client entries do not run on Workers, which lack the TCP sockets pg needs. MIT licence.

Why it mattersAgents copy whatever setup code they find. One shared, typed list of checks is easier for them to reuse correctly than ten hand-rolled versions.

For youA candidate to replace the hand-written auth and CORS boilerplate in your SaaS edge functions; try it on one function with its existing tests.

CORS
Browser rules that decide which websites may call your server.
JWT
A signed token that proves who the caller is.
middleware
Code that runs before your handler on every request, such as login checks.

Sources Supabase: Supabase Middleware

More like this Less like this

Software and AI Release

Sessions view

AI Gateway logs grouped by conversation, with cache share, cost and provider path per turn.

Vercel's AI gateway now groups each coding-agent conversation into a session and shows how much of every prompt was served from a cheaper cache.

Vercel AI Gateway logs grouped into sessions: a table of sessions with user, cost, providers and models, and a side panel for one session showing 24 turns, an 83% cache hit rate and the provider used for each turn.
Image: Vercel

The gateway already sends each turn of a conversation to the provider that served the last one, because that provider still holds most of the prompt in its cache. The new view shows whether that worked: which client ran the session (Claude Code, Codex, Cursor), what it cost, and its cache hit rate.

Released
October 17
Grouping
your session ID, or a fingerprint of the opening
Filters
turns, client, model, provider, auth, cost
Hidden by default
single-turn sessions

Try itSend the same x-session-id header on every request in one conversation

Why it mattersCache hits are the biggest lever on agent costs, and until now most teams could not see them per conversation.

For youIf any of your apps call models through a gateway, tag conversations with a session ID and compare cache share before and after.

AI gateway
A service that sits between your app and many AI providers, routing and logging every request.
cache hit rate
The share of a prompt the provider could reuse from a recent request instead of processing again.

Sources Vercel changelog

More like this Less like this

Ship it, light it, submit it

A festival deadline, a sky that looks right, a texture pipe and new store rules.

Game dev Lesson

Three small fixes turned a flat sky into a believable one

The developer of a sailing game on a small planet explains how a sky with a yellow haze and a dark band at the horizon became convincing, without a new renderer.

A small wooden ship on a blue, pixel-textured sea under a pale blue sky with puffy cream clouds and a bright sun, rendered with the Filmic tone mapper.
Image: Thomas ten Cate, Frozen Fractal

Thomas ten Cate's game Around The World is built in Godot on a planet about 75 times smaller than Earth, but with Earth-like air. That mismatch, plus two choices in the shader and the final color step, caused most of the problems.

  • Dim before you add. Reddening the light first, then adding light scattered toward the camera, removed a yellow horizon.
  • Bend the horizon on a small planet. Nudging the view direction slightly upward, then normalizing it again, removed a dark band where the sky met the sea.
  • Pick the tone mapper by eye. Filmic at white point 2.0 beat Reinhard (too dark), ACES and AgX (washed out); sky brightness was halved.
  • Light clouds from above. Lighting cloud undersides with a normal bent upward gives them blue at noon and pink at sunset.
Technical details

The scattering is raymarched. The Godot docs suggest a white point of 6.0 or more for photoreal scenes, which made this stylized one too dark. Clouds use a lookup table for multiple scattering. The post has no code and no performance numbers; it was published on October 12.

Why it mattersMost engines expose the same knobs: scattering order, horizon handling and tone mapping. The before and after pictures make it a quick checklist for any outdoor scene.

For youThe tone-mapper comparison is worth a pass on your browser games' three.js skies, where you choose the tone mapping yourself.

shader
A small program that runs on the graphics card to compute the color of each pixel.
tone mapper
The final step that squeezes very bright and very dark light values into what a screen can show.
white point
The brightness level a tone mapper turns into pure white.

Sources Frozen Fractal: Around The World, part 34

More like this Less like this

Games and software Do this

Four checks after Apple's new review rules

Apple tightened its App Store rules this week, most notably against apps that switch on features after review and against AI-generated intimate images.

Apple revised its App Review Guidelines on October 16 and its developer agreement on October 13. Last year it stopped over 150,000 unsafe apps and closed over 193,000 developer accounts.

  1. Ship what you showed

    New rule 2.5.19 bans hidden, dormant or undocumented features and changing an app after approval. Check remote switches that turn on unreviewed features.

  2. Moderate generated images

    Rule 1.2 now requires apps to prevent and remove nonconsensual intimate imagery, including AI-generated images.

  3. Recheck purchase links

    Rule 3.1.1(a) folds music streaming into the external purchase link entitlement and says links may go to a permitted destination.

  4. Read the agreement update

    New terms cover multi-seat Group Purchases subscriptions and Apple reporting tax details to authorities.

Why it mattersBreaking 2.5.19 can mean removal from the App Store and the developer program, not just a rejected update.

For youLook at any remote-config flags in your Flutter apps and mobile games that unlock features reviewers never saw.

remote switches
Settings read from a server that turn features on or off without a new app version.
entitlement
A permission Apple grants an app to use a restricted feature.

Sources Apple Developer News

More like this Less like this

Game dev Release

TexBridge

Exports from Substance 3D Painter and creates ready material instances in Unreal Engine 5.

A small new tool moves finished textures from Adobe's Substance Painter straight into Unreal Engine 5 and builds the materials there, without installing anything inside Unreal.

It talks to the open editor through Unreal's built-in Python remote execution, so there is no Unreal plugin to install. It makes one material instance per texture set, can assign them to selected meshes, and sets compression and color space per map type.

Needs
Painter 8.3 or later, UE5 on the same Windows PC
Normals
converted from OpenGL to DirectX
Masks
sRGB off for packed ORM maps
Maker
Moss3D, sold on Gumroad; price not stated

Why it mattersHand-fixing color space and normal format on every import is a classic source of wrong-looking materials; the remote execution route is also open to your own scripts.

For youUnreal's Python remote execution is the same door an MCP server or Claude Code script could use to drive the editor for your world tools.

material instance
A copy of a shared Unreal material with its own textures and settings.
ORM
One texture that packs occlusion, roughness and metalness into its three color channels.
sRGB
A color encoding for images meant to be seen; data maps such as masks must not use it.

Sources 80 Level

More like this Less like this

Game dev Do this

Steam Next Fest starts tomorrow

Steam's week-long festival of free game demos begins on Monday; a game takes part only if its demo is public by the start.

Times are Pacific. Eligible games need a public store page, a playable demo and a release date after the fest.

  1. Fest opens. Demos must be live, or the game opts out.

  2. The fest runs for a week.

  3. Fest ends and the Wrap-Up page launches.

  4. Next edition.

Why it mattersNext Fest is one of the few times a small game gets front-page traffic on Steam, and each game can enter only once.

For youNothing to enter this round; note the February edition if a demo of the action RPG could be ready by then.

Next Fest
A recurring Steam event where upcoming games offer free demos for a week.

Sources Steamworks: Next Fest October 2026

More like this Less like this

Learn one thing

What is a prompt cache, and why does it matter which server answers?

When you send a model the same long beginning again, the provider can reuse the work it already did on it instead of reading it all again. That reused part is much cheaper and faster, but only the server that did the work has it.

Think of it like thisLike a librarian who has already read the first 300 pages of your book: ask the same librarian about page 301 and the answer is quick; ask a new one and they start from page one.

A coding agent resends the whole conversation on every turn: instructions, tool definitions, files and every earlier message. Most of that is the same as last time. Providers keep the processed beginning (the prefix) for a short while, and charge far less for it on the next request. Anthropic's docs say a cache read costs a tenth of the normal input price on most models, and less on the newest ones; entries last five minutes by default and refresh each time they are used.

The catch is that the match must be exact, from the first token, and the cache lives with one provider. If a gateway sends turn 12 to a different provider than turn 11, everything is processed again at full price. That is why Vercel now pins a conversation to one provider and shows the hit rate per session.

Why routing matters: a different provider means a cache miss and a full-price turn.
prefix
The unchanged beginning of a prompt that is sent again on every turn.
token
A small chunk of text, roughly three quarters of a word, that models read and are billed by.

Try this today

Game dev 30 minutes For practitioners

Pick your tone mapper by looking, not by default

Compare the tone mappers your engine offers on the same outdoor shot and keep the one that looks right, the step that fixed a flat sky in today's devlog.

You needA scene with a sky in an engine that lets you choose a tone mapper (Godot, three.js and others).

  1. Freeze one shot

    Pick a camera view with sky, horizon and some ground or sea, and fix the time of day.

  2. Capture each tone mapper

    Take a screenshot with every option your engine has, such as Reinhard, Filmic, ACES and AgX, changing nothing else.

  3. Try a lower white point

    If the engine exposes one, try a white point around 2.0 on the best candidate; the devlog found higher values darkened a stylized scene.

  4. Rebalance the sky

    If the sky now looks too bright against the ground, lower the sky's own brightness instead of changing exposure; the author halved it.

You know it worked whenSide by side, one screenshot keeps both a saturated sky and a readable ground, with no clipped patches at the sun or a dark band at the horizon.

For youDo it on the three.js browser game first, where tone mapping is one renderer setting; Unreal's fixed filmic curve leaves less to choose.

tone mapper
The final step that squeezes very bright and very dark light values into what a screen can show.
white point
The brightness level a tone mapper turns into pure white.

Sparks

What is catching on right now, and the idea worth borrowing from each.

The lab

Research from the front line, in plain words: what it solves, how, and what you could do with it.

Software and AI PreprintarXiv preprint

A coding agent's progress reports leave out about 40 points' worth of what actually happened, such as failed checks and workarounds.

What Coding Agents Leave Unsaid: Measuring Task-State Gaps Between Execution and ReportsGuoyang Xu, Rui Zhang, Xiuyu Wu et al. (Tencent)

Overview figure: an agent's checkpoints include failed tests and workarounds; its accumulated reports lose some of that; probe questions score 92.7% recovery from the full execution view against 52.0% from reports alone.
Image: Xu et al., arXiv, CC BY 4.0
The problem
A person supervising an agent can only investigate failures they are told about, and agent reports may skip failed attempts, workarounds and open risks.
The idea
Ask the same probe questions of two readers: one sees the full record of the run, the other only the agent's reports to the user. The difference in correct answers measures what the reports lose.
The result
Across 37 coding tasks and 4,799 probes, full-context readers recovered 92.7% of the task state and report-only readers 52.0%, a 40.7-point gap. Even on 30 verified fixes the gap was 34.8 points. Rewriting reports with full context at the same length gained only about 8 points.
Use it
Make your agent's final report list every failed or skipped check, workaround and open risk with the command and output, then test it: ask a fresh session five questions about the run using only the report.

For youYour routines end with a short report; add the failed-checks rule to their prompts and spot-check one run with fresh-session questions.

  1. Idea
  2. Prototype
  3. Code released
  4. Shipping

ReadarXiv 2610.20003Code

Software and AI PreprintarXiv preprint

With a tight context budget, give the agent a few whole files that are likely to change, not compressed or search-ranked snippets.

Skip the Compressor: Coding Agents Fix More Issues When They Pick Whole FilesXiaocong Yang, Rishit Chatterjee, Himanshu Udupi et al. (University of Illinois Urbana-Champaign)

The problem
Repositories are bigger than a model's context. Retrievers rank code by similarity to the issue, not by what must change, and compressors delete text so the model can no longer copy exact lines to edit.
The idea
A simple selector, CQ2-CARE, spends the whole token budget on choosing which files to show verbatim, with no compression model at all.
The result
On 300 recent SWE-rebench issues at the same budget, it resolved 43.7% with GPT-5.6 and 46.7% with Claude Opus 5: 6.3 points above the best of three compressors and 9.3 to 12.7 points above the best of three retrievers.
Use it
In your own context tools, ship whole files and cut the number of files instead of trimming lines, and log whether the file the agent edited was in its context.

For youRelevant if you build MCP context tools: return whole source files rather than excerpts.

  1. Idea
  2. Prototype
  3. Code released
  4. Shipping

ReadarXiv 2610.21073

Game dev PaperACM Transactions on Graphics

A real-time path tracer reuses radiance cascades to aim rays where light comes from, tracing about twice the paths per pixel.

RCPG: Real-Time Product Path Guiding Using Radiance CascadesJulius Ikkala, Pekka Jääskeläinen, Markku Mäkitalo

Diagram of product sampling across two cascade levels: incoming light grid times reflection grid gives a product grid; a chosen cell in cascade 0 is refined into a smaller cell in cascade 1.
Image: Ikkala, Jääskeläinen and Mäkitalo
The problem
Real-time ray tracing can afford only a few samples per pixel, so choosing good directions matters. Earlier real-time guiding needed separate samplers for incoming light and the surface's reflection, combined afterwards.
The idea
Derive bounds that keep radiance cascades faithful to where light arrives from, so one sampler can draw directions in proportion to light times reflection. Its world-space structure also guides bounces that start off screen.
The result
The authors report it generally traces twice as many paths per pixel as real-time methods that combine several samplers, at real-time frame rates and with better quality than earlier real-time path guiding. We did not see the scene-by-scene timings.
Use it
Background for anyone writing a custom path tracer or global illumination: radiance cascades, already popular for lighting, can also decide where to send rays. Nothing to drop into an engine today.
  1. Idea
  2. Prototype
  3. Code released
  4. Shipping

ReadACM TOGProject page

Also moving

This week on Toa Radar

Read the weekly summary: The week proof became the bottleneck
Tune mode is on in this browser. Turn it off