The Diff

Archives
Log in
Subscribe
October 13, 2026

The Diff No. 010: Your coding agent may be running while you are not.

Your coding agent may be running while you are not. Plus the quiet ones nobody talks about.
View in browser: The Diff No. 010
The Diff  No. 010
Tuesday, 13 October 2026  ·  AI dev news, only what is verified
openai/codex repository card
Your coding agent may be running while you are not.

On September 25 a Codex CLI user asked for one change: stop starting a persistent, self-updating background daemon by default. The issue is still open with 16 comments, and the HN thread has 488 points.

Today’s other threads: the QGIS project banning LLM-assisted code, a supply-chain scare in Zod that the maintainer says never reached npm, and a Claude Code mod that keeps your prompt cache warm while you get coffee.

Know what your tools leave running after you close the window.

IN THIS ISSUE
01
👻 It was still running after he closed the window
A Codex user found a 374 MB daemon he never asked for.
02
🚫 The map makers said no robots
QGIS bans LLM-assisted code, and argues about what that means.
03
🧨 Six bad commits, zero on npm
Zod’s maintainer says a stolen git credential never reached the package.
04
☕ A $6.61 coffee break
Cache Tax stops a cold send and keeps your prompt cache warm.
🔥 VIRAL
The loud ones on Hacker News. Numbers are a morning snapshot.
openai/codex repository card
01  HN: 488 points · issue filed Sep 25 · repo 128K stars, Apache-2.0 · card: GitHub

👻 It was still running after he closed the window

A Codex user found a 374 MB daemon he never asked for.
SCENE

A user filed openai/codex issue 48195 after upgrading to Codex CLI 0.157.0 on Linux under WSL2. He says that just opening an interactive session started a background process that kept running after every Codex window was closed. His request: make the daemon opt-in, or at least ask once.

THE THING

The reporter says the CLI starts a managed daemon with codex app-server --managed-daemon, copies a roughly 374 MB platform package into ~/.codex/packages/app-server-daemon/releases/, and starts an updater that checks five minutes after launch and then hourly, restarting the backend when it updates. He also says the daemon keeps the proxy settings of whichever session started it. A commenter adds that it keeps the environment variables of the first directory it was started from, and another says they measured about 12 GB of old versions. Those are the reporters’ and commenters’ claims. We did not run Codex. On HN a commenter points out that Claude Code works the same way. In Codex’s own release notes, 0.162.0 skips daemon auto-start for Windows-mounted WSL homes, and 0.161.0 turns analytics on by default for daemon-launched app servers.

✂️ STEAL IT

Audit every agent tool the same way: list what it leaves running after you quit, how big its install directory is, and whether it updates itself without asking. If you use a per-session proxy or direnv, test whether a long-lived helper inherits the wrong environment.

Try today  VERDICT

The audit takes a minute: ps aux | grep -i app-server, then check the size of ~/.codex/packages. It is one user’s report on one platform and version, the issue is still open, and later releases have changed daemon behaviour.

Issue 48195  ·  Codex 0.162.0 notes  ·  HN discussion

Tap one, then press send in the email that opens. Researched replies usually land within about 10 minutes.
More like thisLess like thisDig deeperAlready knew itTest it for me
qgis/QGIS repository card
02  HN: 367 points · QEP 428 merged Oct 7 · repo 14.5K stars, GPL-2.0 · card: GitHub

🚫 The map makers said no robots

QGIS bans LLM-assisted code, and argues about what that means.
SCENE

Nyall Dawson (GitHub: nyalldawson) opened QEP 428 on September 24. It changes the project’s AI policy to a strict “not allowed” for code contributions. The merge came on October 7, after a long thread on the developer mailing list.

THE THING

On September 23 PSC member Tim Sutton posted the committee’s view: they were fine with a ban if developers wanted one. The wording he proposed says no LLM-assisted code contributions are allowed in the main repository, admits this is hard to enforce, and says a contribution found to be LLM-assisted risks reversion and contributor sanctions. We have not confirmed that this is the final merged text. Two days after the merge, another contributor opened QEP 429, an exception for trusted contributors. It is still open. On HN a commenter asks what counts as assisted when prototypes are made with AI and the final code is typed by hand, and another predicts the end of open contributions. Those are commenters’ views.

✂️ STEAL IT

If you maintain a project, write down what “AI-assisted” means in your policy, what you will do when you suspect a violation and who decides. The QGIS thread shows how much argument that vague phrase invites.

Watch  VERDICT

A real policy from a large open source project, and still moving, with an exception proposal open. Skip copying the wording blindly: even its supporters say it cannot be enforced reliably.

QEP 428 pull request  ·  PSC post on the mailing list  ·  QEP 429 exception  ·  HN discussion

Tap one, then press send in the email that opens. Researched replies usually land within about 10 minutes.
More like thisLess like thisDig deeperAlready knew it
🔭 UNDER THE RADAR
Quiet tools and field reports worth your time.
03  HN: 177 points · Zod 4.6.6 release notes Oct 11

🧨 Six bad commits, zero on npm

Zod’s maintainer says a stolen git credential never reached the package.
SCENE

On Sunday a Hacker News user spotted a commit linked from the Zod 4.6.6 release page and asked whether the package was compromised. Commenters who read the minified code said it fetched a second stage from a blockchain contract. That is their reading, not something we verified.

THE THING

The v4.6.6 release notes, written under the colinhacks maintainer account, say six malicious commits were pushed to main on September 21 with a compromised git credential, reverted the same day, and later removed from main’s history. The notes say none were published to npm and that npm provenance for 4.6.6 points to a pre-rewrite copy with identical contents. The npm registry shows 4.6.6 published on October 11 and 4.6.7 on October 12. One HN commenter quotes a note from the maintainer that all his npm packages now use environment-scoped staged publishing that needs 2FA. We did not diff the tarballs.

✂️ STEAL IT

Make it hard for a stolen token to publish: require 2FA on publish, publish through a CI environment gate, and read the provenance of a release before you trust the link on its release page.

Watch  VERDICT

The maintainer’s account is specific and the registry timeline fits it, but it is the maintainer’s own account. If you depend on Zod, pin versions in a lockfile and check which version you resolved.

v4.6.6 release notes  ·  HN discussion  ·  npm registry entry

Tap one, then press send in the email that opens. Researched replies usually land within about 10 minutes.
More like thisLess like thisDig deeperAlready knew it
karanb192/cache-tax repository card
04  163 stars · MIT · repo created Sep 18 · card: GitHub

☕ A $6.61 coffee break

Cache Tax stops a cold send and keeps your prompt cache warm.
SCENE

A developer publishing as karanb192 built Cache Tax for Claude Code after a long session went cold. The README’s example: a two-line recap in a 330K-token session triggered a $6.61 estimate, and after resending, the reported cache write was $6.28. It says the recording was made on Claude Code 2.1.1 and that the figures are API-equivalent costs, not extra subscription charges.

THE THING

It is a Claude Code mod. Run /keepwarm 90m before a break and it pings the prompt cache so it does not expire. Before a send into a cold cache it shows the estimated rewrite cost. Install is two claude plugin commands from the author’s marketplace. It needs Claude Code 2.1.287 or later and a one-hour cache. The README warns that pings cost tokens, that API-key and cloud sessions default to a five-minute cache and need promptCacheTtl set to 1h, and that how cache reads count against subscription limits is not documented. We did not install it.

✂️ STEAL IT

You do not need the mod to steal the habit: before a long break in a huge session, check the cost of rebuilding it, and decide whether to trim the context first.

Watch  VERDICT

Useful if you run very long sessions on a one-hour cache. It fails on a five-minute cache, where a 50-minute schedule cannot protect anything, and its savings are the author’s estimates.

Repo + README  ·  Project site

Tap one, then press send in the email that opens. Researched replies usually land within about 10 minutes.
More like thisLess like thisDig deeperAlready knew it
📊 THE ATTENTION GAP
HN points and GitHub stars at 06:26 IDT. Attention, not quality.
Codex daemon issue
488 HN
QGIS AI ban
367 HN
Zod scare
177 HN
Cache Tax
163 stars
🗂️ THE BORING STUFF

Oct 8 · Codex 0.162.0. Skips daemon auto-start for Windows-mounted WSL homes and includes installer stderr in daemon update failures. Release notes →

Oct 7 · Codex 0.161.0. Enables analytics by default for daemon-launched app servers and recovers daemon startup after the working directory is deleted. Release notes →

Official release pages checked this morning. Nothing installed or run.
🧪 ONE THING TO TRY TONIGHT
List what your agent leaves running.
Pick one agent tool. Note whether it starts a background process, where it stores old versions, how big they are and how to stop it. Do it once a month.
What this issue could not see. HN, GitHub issues and release notes, the npm registry and a project mailing-list post were read; nothing was installed or run. Deduped against every published issue. Reddit returned rate-limit errors earlier in the week; X, Product Hunt and Bluesky returned nothing usable and LinkedIn was a login wall, so none of those are covered today. Video discovery found nothing current that passed review, so no video is recommended.
Talk to the editor 💬

Reply to this email with anything: what to chase, what to drop, what you want more of. Every reply shapes the next issue.

More of this kind of issueLess of this
Images: credited in each report; source screenshots and announcement artwork, not our tests.
Don't miss what's next. Subscribe to The Diff:
← Newer The Diff No. 011: The bottleneck moved, and it is not the code. Older → The Diff No. 009: He reran the Rust-vs-Elixir benchmark. Both lost.
Powered by Buttondown, the easiest way to start and grow your newsletter.