Issue 39 · September 24, 2026 · Covering 2026-09-17 to 2026-09-24
176 matched experiments pull a coding harness apart, and several common practices do not survive.
Researchers froze the agent's execution loop and varied only three components: planning, action space, and context management. Four models, 176 matched settings, five context-management strategies and four context-window budgets, run across SWE-Bench Verified and Terminal-Bench 2.1. Almost all of the value in context management traces to one thing: preventing context-overflow failures. The tighter the budget, the more it is worth.
Three more results cut against common practice. Making elided content recoverable adds machinery models rarely use, and accuracy does not improve. Planning is an accuracy scaffold for weaker models but only a cost saver for strong ones, with accuracy roughly flat. Predefined tools help models with weak bash proficiency. Bash-capable models do fine with a bash-only interface, at substantially lower cost. The gap is largest on command-line work.
Trajectory-level analysis explains why. Context management extends execution trajectories without changing agent behavior much. Planning changes where a trajectory stops. The action space changes the granularity at which code gets written. Under that framing, harness choices should follow the model and the budget rather than a single copied configuration. The open question is whether the same component breakdown carries over to non-coding agents.
"Cost, safety and correctness are all settled in the harness between the model and the work."
— This week's theme
SynthID-Text embeds its signal by changing token sampling. An agent's tool names, paths, recipients and amounts come from that same sampling step. Lasso Security calls the resulting shift sampling drift, and measured it.
▸ Click to expand
Net accuracy hides it. The study uses paired disagreement instead. Across 21 model-temperature combinations, 6.5% of tool-call verdicts flip on average. phi-4 flips 16.8% at T=1.0 while net accuracy drops only 2.87 points. Refusals are worse: gemma-3-27b's flip rate rises from 6.0% to 23.5% under prompt injection, and net compliance moves from −1.0 to +12.5 points. Change the watermark key and both the size and the direction of the effect change.
Treat watermarking as part of the deployed security configuration, not a compliance checkbox. Re-run your agent evals after you turn a watermark on or rotate a key. Compare paired runs on the same inputs, and include prompt-injection cases. "No measurable quality degradation" is a claim about text, not about actions.
This spring a report said a Chinese vessel in the Middle East was carrying nuclear weapons components. Armed personnel were preparing to board. Planes were in the air. Only just before the operation did officials find that an analyst had generated the report with a chatbot, and that the chatbot had misidentified the cargo. One source told CNN the report was "entirely false" and that it "almost started a war."
▸ Click to expand
The failure was procedural, not a matter of model capability. The analyst first had the bot fuse open-source reporting with classified signals intelligence and conclude. Then they used AI again to package that conclusion into a standard intelligence report. The format itself is a credibility signal, and the packaging step turned one chat query into an institutional judgment. A former senior official told CNN that internal tools are "mostly just copies of the commercial stuff wearing lipstick."
Separate two things: a model generating content, and that content entering a trusted channel. Any step that writes model output into a template other people trust by default needs a provenance mark nobody can strip. That covers reports, tickets, alerts and audit records.
Unreal Labs found agents spend a lot of tokens waiting on tools, polling and sending heartbeats. Their harness appends an "in-progress" event record the moment the agent issues a tool call, so the model keeps going. When the tool actually returns, the harness appends the result and calls the model again.
▸ Click to expand
On Terminal-Bench 4.0 both agents pass at 57.9%, but Codex costs $2,350 and Unreal Agent costs $1,428. On SWE-Atlas codebase Q&A it is 65.8% against 63.3%, at $936 against $1,303. The savings come from turns and input tokens: on DeepSWE 1.1, 1.60M input per trial against Codex's 2.19M. A second effect: users can steer the agent at any time instead of waiting for a tool to finish.
Count how many turns in your agent loop exist only to wait on a long task. Convert tool calls into an event log with async backfill. One turn can then start environment setup, a codebase read and a web search together. The cost is keeping the prompt cache intact, which Unreal Labs calls an engineering problem in its own right.
Two agents work in separate worktrees, touch different files, and Git merges both cleanly. One moves every caller onto StripePaymentService. The other adds PayPal support to the old PaymentService, and that work lands on a class nothing calls any more. Foremerge has each agent declare which symbol it is about to touch, before it starts.
▸ Click to expand
Teams running coding agents in parallel hit this failure mode before they hit file conflicts. Git compares text, not intent. Both plans are reasonable on their own, and together they delete the extension point.
Give parallel agents a shared declaration table. It records targets such as "I am going to change the sendEmail function," not code. Foremerge keeps that table in SQLite inside .git. Detection is deterministic, with no model asked to judge, so the same inputs always give the same answer. It warns rather than locks, so one crashed agent does not stall the fleet. Note that 0.5.0 is pre-1.0 and the author says published benchmark results do not exist yet.
A developer going by ferstar reverse-engineered ZCode, Z.ai's desktop coding app. While logged in, it packages the entire workspace, encrypts it, and uploads it to Aliyun OSS. One capture: a 345MB workspace, 42,411 files, a 313MB encrypted archive, with .git accounting for 86.6% of it. The server sends an RSA public key during upload negotiation, and the client wraps the symmetric key with it. The private key lives only in Z.ai's cloud, so the user cannot decrypt the ciphertext sitting on their own disk.
▸ Click to expand
The upload pipeline is not an agent tool. Across the 31 captured tools there is no snapshot, upload or telemetry tool at all. The host assembly instantiates the capture sidecar unconditionally at startup, and it runs outside the tool loop. No permission setting stops it, and the agent itself never sees it. The two UI toggles only control training authorization and server-side indexing. Local packaging and upload continue either way.
Auditing an agent's tool list is not auditing the product. To decide whether a closed harness belongs on your network, look at the process's outbound connections and the packaging manifest it writes to disk. Do not read its tool documentation for the answer. And remember what .git is: the full lineage of the repo, including API keys deleted in a later commit, unpushed branch names, and internal hostnames.
Claude Code 2.1.277 added AGENTS.md support, but the loader sits behind a remote feature flag. Turn off telemetry or nonessential traffic and the loader skips a local AGENTS.md in silence, with no warning at all.
▸ Click to expand
Reading a markdown file from the working directory needs no network, yet here it waits on a server-side switch. The people it hits are the ones who care most about AGENTS.md. Someone keeping one instruction file for several agents usually also manages outbound traffic. Teams on Bedrock, Vertex or a gateway disable nonessential traffic by policy. They will conclude the model ignores their instructions and go rewrite prompts.
Setting DISABLE_TELEMETRY or CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC to 0 does not help, because any value counts as on. An env block in the project's .claude/settings.json has no effect either. The workaround is a one-line CLAUDE.md: echo '@AGENTS.md' > CLAUDE.md, because @path imports do not depend on the flag. To test it, put a canary word in the file and ask claude -p for it. The first session in a new configuration only fetches the flag. The second one uses it.
Linear's CTO opened an issue titled "CI costs are high." Their test suites almost quadrupled this year. PR wait time still fell from more than 6 minutes to just over 5, and runner time per test dropped roughly by half.
▸ Click to expand
Agents made shipping code an order of magnitude faster, and validation did not keep up. Every PR still has to pass CI, so people and agents queue together while the infrastructure bill rises.
The gains came from four kinds of change. Moving off GitHub Actions onto third-party runners made the same pipeline 34% faster on average, with tsc down 52%. Switching to tsgo, the native TypeScript compiler, cut the weekly median tsc check another 73%. They rewrote custom lint rules that needed type information into pure AST static analysis, which let ESLint drop TypeScript entirely. API lint fell 68% and full-repo lint 55%. Finally, watch the small jobs that gate everything else. Their change-detection job was checking out the full tree. Capping fetch depth took it from 94 seconds to 20.
Parity ran a 20%-time experiment in self-managed inference. A DeepSeek V4 Flash trial meant to last an afternoon ran for a month. Seven of the eight engineers who answered the survey said it could serve as their primary model, though most called it only just good enough.
▸ Click to expand
The usage data is more useful than the rating. 99% of requests needed under 500k of context. The GPU sat idle 55% of the time and served a single request 26% of the time. Mean time to first token was 3.34s, p99 was 70s. Median generation length was 349 tokens, and peak KV-cache use was 9.4%. Engineers are nowhere near the advertised context window. Concurrency and throughput are the real constraints.
The architecture is simple enough to copy: LiteLLM as the common interface, vLLM serving the models, GPUs rented from RunPod. Swapping models never changes the developer's tools, which makes the model another replaceable part of the stack. The first three days cost about $300 of GPU for 3.2 billion tokens, roughly $0.10 per million. Parity is explicit that engineering time, not compute, is the larger cost.
Max Woolf had an agent write Rust implementations from scratch, then iterate on them. The result was 2x to 20x speedups over C implementations refined for more than a decade. The model is not what made the difference. Replacing "as fast as possible" with a target that passes or fails did.
▸ Click to expand
Agentic RLHF trains on pass/fail coding problems, and optimization is not in that suite. So an instruction like "make the code faster" gets answered with extra features. Woolf hit exactly that in his 2025 attempt. criterion tracks results across runs and decides whether a change is a real improvement or noise. That gives the loop a termination condition it can trust.
Copy the structure. Run the benchmarks first without changing anything to establish a True Performance Baseline. Then require every benchmark to beat that baseline by at least 1.2x. Forbid touching the benchmarks. Only library code may change. Then let it iterate until performance converges. Woolf banned unsafe throughout and wrote his prompts as Markdown files before handing them to the agent.
Seven of this week's ten stories say the same thing: the trouble is not in the model, it is in the harness. A study of 176 matched settings finds that context management earns its keep by avoiding overflow, and that recoverable elision is machinery nobody uses. Unreal Labs turned tool calls into async events and cut cost 40% at an identical pass rate. Lasso Security measured model-level watermarking rewriting tool-call arguments, with gemma-3-27b's refusal flip rate reaching 23.5% under prompt injection. ZCode's capture sidecar runs outside the tool loop, which is why no permission setting stops it. Claude Code's AGENTS.md loader sits behind a telemetry flag and skips the file in silence. All of it lands on one layer: outside the model, inside the business, the code you assumed was plumbing. Most teams still choose models and tune prompts, and very few can draw their own harness's event flow and outbound connections. The other half of the week is organizational. Linear found that agents had made CI the bottleneck. Parity spent 12.9 billion tokens across 25 engineers in a month to learn they were nowhere near the context window. Ship code an order of magnitude faster and the queue simply moves somewhere else. The one thing worth doing this week is drawing that diagram of your own harness.