fable-agent/docs/receipts/bun-in-rust-advisory-map-20...

44 lines
2.9 KiB
JSON

{
"schema": "fable.external_project.review.v1",
"id": "bun-in-rust-advisory-map-20260709",
"title": "Rewriting Bun in Rust \u2014 Advisory Map",
"source": {
"type": "blog post",
"url": "https://bun.com/blog/bun-in-rust",
"md_url": "https://bun.com/blog/bun-in-rust.md",
"published": "2026-07-08T16:00:00.000Z",
"author": "Jarred Sumner (Bun/Oven)",
"fetchedAt": "2026-07-09T02:15:10.917437+00:00"
},
"keyFindings": {
"acquisition": "Bun was acquired by Anthropic in December 2025. Jarred and team now work at Anthropic.",
"rewrite": "Rewritten from Zig to Rust. Used pre-release Claude Fable 5 for much of the rewrite.",
"reason": "Systematic memory safety issues from mixing GC (JavaScriptCore) with manually-managed Zig memory. 12+ use-after-free, memory leak, and double-free bugs listed.",
"scope": "JavaScript/TypeScript/CSS transpiler, minifier, bundler, package manager, test runner, HTTP/1.1, WebSocket, Node.js API implementations.",
"downloads": "22 million monthly CLI downloads.",
"users": "Claude Code, OpenCode, Vercel, Railway, DigitalOcean \u2014 all use Bun as their runtime."
},
"relevanceToFableAgent": {
"pattern": "Language migration driven by memory safety guarantees. Same principle as fable-agent harness: when a component (LLM prompt context, memory-managed state) causes systemic bugs, isolate it behind a hard verification gate rather than fixing symptoms.",
"mapping": "Bun moved GC-managed Zig code to Rust for safety. fable-agent moves LLM state out of context (FlatLedger), gates agent actions (verify-gate, interrupt-gate), and isolates worktrees (worktree-isolation). Both solve the same problem: contain the blast radius of an unsafe runtime.",
"fable5": "Claude Fable 5 was used to write the Rust rewrite. This validates the LLM-as-compiler pattern: model generates safety-critical code, human+CI verifies."
},
"keyTakeaways": [
"Bun was acquired by Anthropic (Dec 2025). Fable 5 used for the rewrite \u2014 validates LLM-as-compiler pattern.",
"Language migration from Zig to Rust for memory safety. Same pattern as fable-agent's verify-gate + FlatLedger: systemic bugs need architectural fixes, not symptom patches.",
"Jarred lists 12+ use-after-free, memory leak, and double-free bugs that motivated the rewrite. Systematic prevention > one-off fixes.",
"Bun runs 22M monthly downloads. Claude Code + OpenCode depend on it. fable-agent already uses Bun-compatible toolchain (node, npm).",
"Advisory only. No vendoring. Pattern validation is the value."
],
"contentVerified": true,
"liveVerification": "HTTP 200 from bun.com/blog/bun-in-rust.md \u2014 full markdown content fetched and verified.",
"advisoryOnly": true,
"noActionRequired": true,
"fableAgentStatus": {
"containers": 11,
"phase": 4,
"autoPatchProven": false,
"tests": "295 passing, 69 files",
"commit": "2233297"
}
}