AI Brief, 4 November 2026: an installer that trusts its own hook, and a proof at 93x

The loudest developer-tooling story of the window is both more serious and less lurid than its headline. A Postman user reported on 25 October that opening the desktop app had installed plugins into Codex and Claude Code without asking, and that the installer had written the record that makes its own session-start hook trusted. That report reached Hacker News on 3 November titled "Postman silently auto-installs AI plugins and attempts to share all API data", where it took 1,120 points. The second half of that headline is not in the report: its author writes that the filing "does not claim to establish data exfiltration", and no supporting network capture appears in the thread. What is documented is narrower and harder to wave away. Postman's own documentation states that on Codex "the installer approves the hook for you", while its manual-installation page says the hook "installs untrusted" and the user must approve it. The code is public: pull request #124, "feat(installer): auto-approve Postman's Codex hook", merged 21 October from a branch whose earlier commit was called "ask for Codex hook consent". GitHub's automated reviewer warned that "automatically granting persistent trust to hooks that can execute outside the sandbox warrants human security review". It merged the same day.

The day's most consequential technical result is cryptographic. Anthropic's Frontier Red Team published a research post dated 2 November, which circulated on the 3rd, with FlashProve: a zero-knowledge proof that a reply was computed by a specific committed set of weights, demonstrated on Llama 4 Maverick, 400B parameters with about 17B active per token. It proves at up to 111 tokens per second on one H100, against 0.02 for the only prior system to prove that same model, bringing proving overhead to roughly 70 to 95 times plain inference rather than the four to six orders of magnitude zkML has carried until now. It is an unmaintained research prototype, every figure is Anthropic's own, and the limits are severe.

Third, a correction to this brief's own lead from yesterday. The "Sparks of Weight-Space Programming" post now carries a different central claim than when this brief described it. At 16:33 UTC on 3 November, about four hours after the sharpest critique of it reached Hacker News, its authors rewrote the summary to hedge the capability claim and concede that the results lean on tools. The numbers did not change, and no note marks the edit.

  • Postman writes [plugins."postman@postman"] and a hooks.state trust record into ~/.codex/config.toml, enables its plugin in ~/.claude/settings.json, and has been reported to touch ~/.copilot/settings.json. The trigger is logged as auto-existing-upgrade on app open. Postman says the bundling is deliberate and it will "make the opt-in clearer, especially for existing users".
  • FlashProve: 1,024-token context, greedy decoding only, 18.78 MB per proof, about 21 seconds to verify on one CPU thread, and a dedicated H100 with 330 GB of host RAM to produce one. Its integer model's top token differs from the 16-bit model's at 6.81% of positions.
  • Matthew Honnibal counts 3 of the weight-space paper's 10 experiments as using raw weights with no tools, all on networks of 17,000 to 172,000 weights.
  • Simon Willison's local Qwen 3.8 27B at 4-bit named three of four games from raw policy weights, taking 46 to 65 minutes each, against four of four for the paper's frontier model.
  • A third consecutive day passed with no weights from any major lab: 3,877 model repositories appeared on Hugging Face in the window, and the most-liked has 17 likes.

An installer that approves its own hook

Strip out the exfiltration claim and what remains is a case study in how agent plugin ecosystems fail quietly. Three artifacts changed on the reporter's machine, all on 24 October at 09:34 UTC by Postman's own log, during an ordinary launch by an already signed-in user. The log names the path: {"source":"auto-existing-upgrade","results":["claude-code:installed","codex:installed"]}.

The Codex side matters most, because it touches a security boundary rather than a preference. Codex hooks are commands that run at defined points in a session, and Codex requires a human to approve one before running it, recording that approval as a hash of the hook's content. Postman's installer writes that record itself:

# ~/.codex/config.toml, after the desktop app's auto-install
[plugins."postman@postman"]
enabled = true

# the approval Codex would otherwise ask a human for
[hooks.state."postman@postman:hooks/codex-hooks.json:session_start:0:0"]
trusted_hash = "..."
trusted_content_hash = "..."

The hook registers on session_start with the matcher startup|clear|compact and prints a context file telling the agent to load Postman's api-engineer skill "before responding to any non-trivial API engineering task". So a third party's instructions are prepended to the agent's session on a trust record the user never signed, and re-asserted on every clear and compact. Anyone running both Postman and a coding agent can check:

grep -n -A3 'hooks.state\|marketplaces.postman' ~/.codex/config.toml
grep -l postman ~/.claude/settings.json ~/.copilot/settings.json 2>/dev/null

The boundary between confirmed and alleged deserves to stay sharp. The self-approval is documented and visible in merged code. What remains one user's report, not reproduced on a clean machine by its author, is that the install fires with no prompt at all for existing users; two other commenters describe the same auto-install on different versions, and one found no trust record written. The New Stack reports Postman had not answered its questions by publication at 23:17 UTC. The interception claim is supported by nothing, and the 1,120 points attached to it rather than to the documented part.

A proof of inference at two orders of magnitude

Proving that a particular model produced a particular output has been a clean idea with hopeless economics. The one prior system to prove Llama 4 Maverick needed 14.3 hours for 1,000 tokens and produced a 93.6 GB proof. FlashProve proves the same model at 111.23 ± 0.92 tokens per second at 24 requests per batch on one H100, with an 18.78 MB proof verified in about 17 seconds on 24 threads.

There is no floating point anywhere in the proof. The object proved is an integer model: integer weights, fixed-point activations with fitted power-of-two scales, and lookup tables standing in for softmax, SiLU and the rotary embeddings. Weights are Reed-Solomon encoded into a table whose columns form the leaves of a Merkle tree, and the commitment is one BLAKE2b hash over the configuration, that root, and a set of masked out-of-domain answers. Proofs come from sumcheck and lookup arguments over the Goldilocks field, p=264−232+1 , made non-interactive with Fiat-Shamir. Mixture-of-experts routing is proved inside the circuit, which is where the speed comes from: the prover's work scales with the roughly 17B active parameters rather than the full 400B. Dense models are not covered.

Provider Trusted third party Client 64-hex ID before the prompt Prover, H100 111 tok/s Verifier, CPU about 21 s prompt, 1,024 tokens reply + 18.78 MB proof
Who holds what in a FlashProve exchange. The commitment ID must come from a party the client already trusts, not from the server being checked, and must arrive before the prompt is sent.

The economics read best per thousand requests. A proved 1,024-token window costs 9.206 seconds of H100 time, so

1,000×9.206 s=9,206 s≈2.56 H100-hours

where the left side is one proof per chat turn and the right is the GPU time to make them. Those thousand turns ship 18.78 GB of proofs and cost the client about 5.8 CPU-hours to check. Anthropic states the consequence directly: to prove every prompt token one serving GPU ingests, 93 times as many GPUs must prove.

What the proof does not give you is the part most likely to be misread. It does not establish whose weights these are. A provider, the repository says, "can commit to any model it likes, a small or degenerate one included", so the client must get the commitment ID from a party it already trusts before sending the prompt; no registry binding an ID to a named production model exists. Decoding must be greedy. And the permissive mode Anthropic expects operators to use is weak: of 96 honest replies from each of two stock engines none would have passed strict exact-match, while 28 of 32 replies with one token swapped for the model's second choice still passed the permissive limits, which no run has yet shown rejecting anything. Soundness is machine-checked in Lean, but for a reference verifier rather than the C++ binary that ships, and there has been no independent audit.

Cryptography reached the inference path twice the same day from opposite directions. Fourteen hours earlier a separate group published Perseus, a homomorphic inference library, reporting accuracy within 3% of plaintext and decoding 3.96 times faster than any other homomorphic implementation on Llama-3-8B, measured against other encrypted-inference systems rather than against plaintext. One system hides which weights ran; the other hides the user's data from the weights.

The claim that moved

Yesterday's edition led on the report that GPT-6 Astra had subtracted a single direction from two of Qwen3.5-0.8B's tensors, lifting MATH-500 from 7.9% to 48.1%. Its deflation continued in three directions, and the first is the authors' own. The summary previously claimed frontier models read and write weights "well past what we'd expect from humans or conventional algorithms"; it now says the ability "may extend beyond what we'd expect", and adds that the results used "a variety of recent tools and algorithms or even via direct weight editing". The site's commit history dates that change to 16:33 UTC on 3 November; Honnibal's critique reached Hacker News at 12:21 UTC. The paragraphs below the summary, including the one beginning "Just by looking at the raw weights", were left alone, and the published logs have not been touched since 29 October.

Honnibal's post took 932 points. He ran no experiments; he tabulated the paper's ten from its own logs, and the table is the argument. Three of the ten gave a model raw weights with no tools, all on networks of 17,000 to 172,000 weights. Every experiment touching a real language model had Python, and the headline Qwen result also ran the model on up to 50 batches of practice problems. The from-scratch game networks that beat a 100M-step baseline lose to a 500M-step one on two of three games. His objection is to bundling: one technique that both authored small networks and improved a large one would imply a general grasp of weight space, "but that's not at all true here, because it's not a single technique". He is explicit that the work is not nothing.

The most practically useful response is Willison's. He ran the paper's published prompts for the experiment that asks a model to name which game a small policy network learned, unchanged, against a 17 GB 4-bit quantisation of Qwen 3.8 27B on his own laptop. It got Pac-Man, Pong and Breakout and missed Freeway, against four of four for Astra, and called the grid 8×8 where the paper says 10×10: the games were identified, the geometry was not.

Kimi K3.1 Pro 9m 41s Qwen 27B, Pac-Man 46m 12s Qwen 27B, Breakout 52m 25s Qwen 27B, Pong 64m 54s 0 35 min 70 min
Time to each correct answer in Willison's run of the paper's first experiment. The Kimi figure is an API call; the three Qwen figures are a 4-bit 27B model on a laptop. Self-reported.

The Pac-Man answer took 43,506 reasoning tokens over 46 minutes, about 16 tokens a second. The task was not out of reach for a model small enough to run at home; it was merely slow, and nobody had tried. Sean Goedecke, writing on the 2nd, reproduced the first experiment's signal with three lines of numpy over the released weights and named the Qwen edit "basically the Heretic abliteration playbook", noting that every problem under 32k tokens was already solved by the unedited model.

One caveat on the replication reported here yesterday. The 51.0% independent figure is a full run, 500 problems at four samples; the baseline it is measured against is a 25-problem smoke test, and both rebuilds were produced by an agent running on Hugging Face Jobs. Seven further repositories converting the checkpoint to GGUF and MLX appeared during the window, carrying three likes and no downloads between them.

Also notable

  • The Codex data-control report is unevidenced; the behaviour underneath it is documented. A 450-point Hacker News post claimed OpenAI had silently re-enabled training on Codex chats, but its author concedes the claim cannot be proved, and the same one ran in September. OpenAI's help pages do document a separate Codex "Include environments" setting that opting out through ChatGPT settings or the privacy portal does not change, and a carve-out under which Daybreak Blue sessions on personal accounts may be used for training with the main toggle off.
  • A solo cable-driven home robot took 460 points, having taken one in April. Stringman suspends a gripper on four lines from two motorised corner anchors, by Nathaniel Nifong, Apache-2.0 software and CERN-OHL-W hardware, $795 assembled against a $645.57 bill of materials. The ML stack is real: 50-odd LeRobot datasets and fine-tuned ACT, diffusion, SmolVLA and X-VLA policies. Its own roadmap is the honest part, calling long-horizon find-pick-carry-drop "elusive due to the large cross embodiment problem". No repeatability figure is published.
  • Nicholas Carlini separated algorithmic from hardware progress on a real 200 MHz Pentium Pro. Published 1 November and widely read on the 3rd, it puts a modern engine on 1996 hardware at 3300 ±87 Elo and splits the +1335 Elo gain since then into +720 from better programming and the rest from hardware.
  • Google put Search in the same bundle as its AI products for schools. Its education post says Gemini, Gemini Notebook, Gemini in Classroom "and Google Search" will be "entirely off for K-12 student accounts until school administrators explicitly turn them on". Google calls this "more choice, not less"; no date was given beyond "the coming months". Separately, after Washington Post reporting on UK DeepMind contracts barring criticism for life, Google says it removed "the post-termination aspect" for new hires, leaving existing contracts unchanged.
  • Revolut says it cut AI coding inference cost by about 90% by defaulting engineers to a self-hosted GLM deployment instead of Claude Code, per The Register. The figure is the company's own with no task mix published, so it measures one firm's bill, not capability.
  • Tooling: Nvidia measured +42.5% MoE throughput on Ling-3.0-flash on DGX Spark, on its own hardware, and switched its Apache-2.0 auto-ontology text-to-SQL layer to Nemotron 3.5 defaults overnight after a Hacker News thread called its README unreadable; it still publishes no benchmark numbers.

What to watch

  • Kimi K3.1 Pro's weights, promised for today. The commitment flagged here on the 24th expires 4 November, and nothing has been created under moonshotai since 13 June. The only repository carrying the name is a third party's, holding a README.md of 864 bytes and no weight files; it has gained eight likes since yesterday, to 122, and still has zero downloads. Willison reached the model through an API yesterday, so it is served while its weights do not publicly exist.
  • Whether anyone verifies a FlashProve proof who did not make it. Every figure is Anthropic's own, there has been no independent audit, and the repository notes that the records behind its timings are not included. The artifact is Apache-2.0 and the verifier builds on an ordinary CPU, so an outside check is cheap. The figure worth more than throughput is the permissive policy rejecting a reply it should reject.
  • Whether the placebo control gets run. Asked here yesterday and still open: a random-direction edit of the same 131,072 weights, or the same procedure at Qwen's recommended output length, would separate a specific direction from any sufficiently large one. Seven people have now requantised the edited checkpoint and none has run the control.
  • Still open: Voxtral 3 weights are four days past Mistral's end-of-October commitment, flagged daily since the 21st, with nothing under mistralai since 15 October. Nanbeige4.3-33B still has no independent score (the 26th); Mage-VL-Cowork no independent OSWorld-Verified number and Cursor no account of how the tampered extension reached its marketplace (both the 31st); Anthropic's watermark page still documents no default-sampling condition (the 1st). And no decision-model vendor has published a fail-open rate, asked here daily since 10 October and now twenty-five days.

Daily, by email

Stay current on AI without the scrolling

A daily brief on what actually shipped in AI — models, papers, benchmarks and tooling, with the details that matter.

Confirmation email first, one message a day, unsubscribe in one click.