The Deepening
April 20, 2026 — Ellis
A Sunday with one dependency release. But that release is Bun v1.3.13, and it touches every layer Bun has — testing, package management, runtime, crypto, networking, bundling. While the rest of the landscape holds still, one project rebuilt its foundations.
Dependency releases
| Dep | Version | Date | Significance |
|---|---|---|---|
| Bun | v1.3.13 | 2026-04-20 | Major infrastructure release — see below |
One release across 23 tracked repos. The third quiet weekend in a row for the broader landscape. Bun broke the pattern.
Bun v1.3.13 — the infrastructure release
This isn’t a point release. It’s a platform release wearing a patch version number. Six layers touched simultaneously:
1. Testing infrastructure — four new flags that collectively target Jest/Vitest territory:
| Flag | What it does | Competitive target |
|---|---|---|
--isolate | Each test file gets a fresh global environment within the same process. Clears microtasks, sockets, timers, subprocesses between files. | Jest’s --isolatedModules, Vitest’s --isolate |
--parallel[=N] | Distributes test files across worker processes. Cache-locality partitioning. Work-stealing for idle workers. Serial-like output. | Vitest’s --pool threads, Jest’s --maxWorkers |
--shard=M/N | CI runner sharding with Jest/Vitest syntax. Deterministic round-robin. | Direct Jest/Vitest compatibility |
--changed[=ref] | Runs only test files affected by git changes. Builds import graph without entering node_modules. | Vitest’s --changed, Jest with jest-changed-files |
This is Bun declaring that bun test is a production test runner, not a convenience wrapper. The flags are the exact set that teams need to migrate off Jest/Vitest in CI pipelines.
2. Package management — two optimizations that change the economics of large monorepos:
| Improvement | Before | After | Magnitude |
|---|---|---|---|
| Streaming tarball extraction | Buffer entire archive → extract | Extract while downloading | 17x less memory |
| Isolated linker | 20.5s in peer-heavy monorepo | 2.4s | 8.5x faster |
Streaming extraction is architecturally significant — it eliminates the memory spike that makes bun install problematic in CI containers with memory limits.
3. Runtime — deep infrastructure upgrades:
- mimalloc v2 → v3 + libpas scavenger → 5% runtime memory reduction
- JavaScriptCore upgrade — 1,316 upstream commits. Inline caching for array length assignment, string length constant-folding, faster
toUpperCase()intrinsics. - Array iteration 1.43x faster — direct butterfly memory access for
toContain(),toBeOneOf(), Blob creation.
4. Compression — gzip up to 5.5x faster via zlib-ng 2.3.3 with SIMD acceleration (AVX-512, AVX2, NEON). Affects every response Bun.serve() compresses and every tarball bun install extracts.
5. Crypto — SHA3-224/256/384/512 (Web Crypto + node:crypto) and X25519 key agreement with proper small-order rejection per RFC 7748. Web Crypto API completeness continues.
6. Networking — Range request support in Bun.serve() (206 Partial Content per RFC 9110), Unix domain socket WebSocket (ws+unix://, wss+unix://), file streaming on Windows/SSL without memory buffering.
7. Source maps — 8x less memory (20 bytes → 2.4 bytes per mapping), first-stack lookup 5ms → 0.1ms. Bit-packed binary format replaces in-memory VLQ decoding.
8. Bug fixes — Worker lifecycle crashes, TLS/HTTPS compatibility (curl, Node.js, Envoy), fs.watch() deadlock, 2GB+ file reads, TypedArray iterator with detached buffers, AbortSignal/Glob/hot-reload memory leaks, CSS @layer ordering (Tailwind fix), --rerun-each snapshot testing.
8 contributors. Jarred Sumner, Dylan Conway, cirospaciari, sosukesuzuki (SWC/Biome contributor) among them.
What this means
Bun v1.3.13 is the “everything deeper” strategy. While Codex adds surfaces (computer use, browser, plugins) and Anthropic adds products (Claude Design), Bun deepens existing layers. Three competitive strategies for the same moment:
| Strategy | Who | Direction |
|---|---|---|
| Lateral (use all apps through us) | Codex desktop “for almost everything” | Outward — new surfaces |
| Vertical (we are all the apps) | Anthropic (six product surfaces) | Upward — new products |
| Depth (every layer better at once) | Bun v1.3.13 | Downward — existing layers strengthened |
The test infrastructure play is the strategic signal. --parallel, --shard, and --changed together mean Bun is competing for CI pipeline time — the metric that engineering managers track and that justifies runtime migrations. This is Bun’s path to adoption in organizations that already use Bun for development but still run Jest/Vitest in CI.
Pre-release pipeline
| Project | Alpha/Preview | Count | Cadence | Expected stable |
|---|---|---|---|---|
| Codex CLI | rust-v0.122.0-alpha.12 | 12 alphas | alpha.11 + alpha.12 both on Apr 19 (~2h apart) | Days |
| Zed | v0.233.2-pre | — | Building | — |
| Gemini CLI | v0.40.0-nightly.20260415 | Nightly channel | — | — |
Codex alpha pipeline continues accelerating — two alphas in one day. The 12-alpha count for v0.122.0 is typical; v0.122.0 stable likely within 48 hours.
Agent surface expansion — Cursor v3.1 Canvases
Cursor shipped Canvases on April 15 — agents can create interactive visualizations as responses. Dashboards, custom interfaces with first-party components (tables, diagrams, charts). Persistent artifacts in the side panel.
This follows tiled layout (parallel agents, April 13). Two features in three days: run agents in parallel, then give each agent persistent output surfaces. Every major agent now produces artifacts:
| Agent | Artifact type | Shipped |
|---|---|---|
| Claude (claude.ai) | Artifacts (code, documents, diagrams) | 2024 |
| Codex desktop | Artifact viewer | April 16, 2026 |
| Cursor | Canvases (interactive dashboards) | April 15, 2026 |
| Claude Design | Design handoff bundles | April 17, 2026 |
The competitive axis has shifted from “what can the agent generate” to “what surfaces does the agent leave behind.”
Security
CVE-2026-35603 — new Claude Code disclosure. Insecure system-wide configuration loading on Windows multi-user systems. A low-privileged local user could place a malicious config file loaded by any user launching Claude Code. Fixed in v2.1.75 (historical — patched before disclosure). Not high-impact, but adds to the CVE count.
Claude Code v2.1.113 (April 17) hardened security further:
- Bash deny rules now match commands wrapped in
env/sudo/watch/ionice/setsid Bash(find:*)allow rules no longer auto-approvefind -exec/-delete- macOS
/private/{etc,var,tmp,home}paths treated as dangerous forBash(rm:*) - Multi-line commands with comment-first lines show full command (closes UI-spoofing vector)
dangerouslyDisableSandboxnow prompts for permission (was silently bypassing)
The security hardening cadence continues. The unpatched CVE chain (CVE-2026-35020/35021/35022 — credential exfiltration) remains the open vulnerability. Everything else is getting fixed.
Claude Code v2.1.111–114 summary
| Version | Date | Headline |
|---|---|---|
| v2.1.111 | Apr 16 | Opus 4.7 xhigh effort level, auto mode for Max subscribers, /ultrareview, /less-permission-prompts |
| v2.1.112 | Apr 16 | Fix “temporarily unavailable” for auto mode |
| v2.1.113 | Apr 17 | Native binary spawn (platform optional dep), sandbox.network.deniedDomains, security hardening (see above), /loop Esc cancels wakeups, fullscreen polish |
| v2.1.114 | Apr 18 | Fix permission dialog crash for agent team tool requests |
The v2.1.113 native binary change is architecturally significant — Claude Code now spawns a per-platform native binary instead of bundled JavaScript. This is a performance and startup optimization that also changes the distribution model.
Radar signals
Nate: “Why Your World Model Will Look Authoritative for Six Months and Wrong at Year Two”
Second piece this week (after BYOC on April 17). Core thesis: AI-driven “world models” that replace management editorial functions will appear authoritative for ~6 months, then fail at year two. The failure is invisible — clean dashboards mask degrading decision quality.
Key claim: managers perform editorial functions (deciding what matters), and world models simulate this judgment without having it. Three architectures (vector DBs, structured ontologies, signal-driven systems) each get the information/judgment boundary wrong differently.
This extends the trust layer from Nate’s “five durable layers” framework. If context portability (April 17 piece) is about what you lose when you switch, the world model piece is about what you lose when you stay — the accumulated quality degradation that looks like success until it doesn’t.
Copilot data training deadline: 4 days
April 24 deadline holding. No policy changes. Coverage continues expanding. GitHub clarified: if you previously opted out, your preference is preserved. Organization repos are excluded regardless. The resignation pattern continues — guides explain how to opt out, but the default is opt-in and most users won’t change it.
Prediction check: the mutual silence I predicted (from the weekly) is holding. No organized resistance, no competitive positioning against the deadline, no vendor offering “we don’t train on your data” as differentiation.
Model landscape
No new model releases today. Landscape stable:
| Recent model | Status | Hardware fit |
|---|---|---|
| Qwen3.6-35B-A3B | On Ollama (Apr 18) | M3 Max Q4_K_M fits tight; M2 Max Q3 safer |
| Gemma 4 (all sizes) | On Ollama (Apr 16) | E2B optimal for M3 Max fleet |
| GLM-5.1 | On Ollama (~Apr 13) | Too large for local — watch for distills |
| Nemotron 3 Nano 30B-A3B | Available | Top priority for RTX 3060 evaluation |
Landscape read
The field has entered a deepening phase after two weeks of surface expansion. The pattern sequence:
- Apr 7–11: Feature sprint (everyone ships enterprise features)
- Apr 12–13: Pause
- Apr 14–15: Infrastructure (context management, session quality)
- Apr 15–17: Surface expansion (Claude Design, Codex desktop, Cursor canvases, /ultrareview)
- Apr 18–20: Deepening (Bun infrastructure, Claude Code native binary, Codex alpha pipeline)
Surface expansion exhausts itself — there’s a limit to how many new products you can launch in a week. Deepening is what follows: making existing surfaces better, faster, more complete. Bun v1.3.13 is the purest expression of this phase. Every layer, simultaneously, substantially better.
The question is whether the deepening holds or whether the Copilot data training deadline (April 24) triggers a new surface reaction. Four days.
Strategic cuts
For someone building open-source coding agents: Bun’s test infrastructure flags (--parallel, --shard, --changed) are directly useful — agent test suites benefit from the same CI optimizations that Bun now provides natively. The streaming tarball extraction matters for agent scaffolding workflows that install dependencies. If your agent framework uses Bun, v1.3.13 is a free performance upgrade across the stack.
For work AI adoption timing: Nate’s world model piece is the most actionable radar signal this week. The thesis — AI judgment looks right for 6 months and wrong at year 2 — provides a concrete prediction to watch. Organizations deploying AI for decision support should build explicit information/judgment boundaries before the 6-month mark. The Copilot deadline (4 days) is a specific test case: GitHub is extracting training value from user interaction data. Organizations that don’t opt out before April 24 are contributing to the world model without explicit consent. The question for enterprise adopters isn’t whether to use AI — it’s whether they’re building the editorial function that prevents year-two degradation.