JS Wei (Jack) Sun

OpenRouter swings 20pts, Habitat hits 70M rps, Datasette gets 3-LLM audit

Every URL the pipeline pulled into ranking for this issue — primary sources plus the supporting and contradicting findings each Researcher returned. Inline citations in the issue point back here.

← Back to the issue

Sources

So you want to use OpenRouter? simonwillison.net

So you want to use OpenRouter? One of OpenRouter’s selling points is that it “handles fallbacks automatically and picks the most cost-effective option for each request”, so you can call a single API endpoint for a model and get routed to the best available backend provider. Mohamed Moustafa points out a whole set of ways that this can cause you problems. Different providers run different serving software with different optimizations and settings, which means that the same OpenRouter endpoint ca…

Rapidly scaling online storage to serve over 1 billion ChatGPT users openai.com

Learn how OpenAI evolved Habitat from a Python library into a globally distributed storage platform serving 1 billion ChatGPT users and 22M requests per second.

datasette 0.65.4 simonwillison.net

Release: datasette 0.65.4 See Datasette 1.0a39 and 0.65.4 security releases on the Datasette blog. Tags: security , datasette

datasette 1.0a39 simonwillison.net

Release: datasette 1.0a39 See Datasette 1.0a39 and 0.65.4 security releases on the Datasette blog. Tags: security , datasette

Quoting Boris Cherny simonwillison.net

Boris Cherny says production code written by Claude at Anthropic passes through lint rules, Claude-driven end-to-end tests, daily Claude-powered fuzzers, and automated code and security reviews. Without those guardrails, he warns, agent-generated code turns into an unmaintainable mess.

Rebuilding AUTOMATIC1111 with Gradio Workflow huggingface.co

The classic Stable Diffusion web UI gets a modern reimplementation using Gradio’s new Workflow primitive, showing how the node-based diffusion interface popularized by AUTOMATIC1111 maps onto Hugging Face’s declarative pipeline framework.

Don’t sleep on wrapture simonwillison.net

The new monkey-patching library unifies testing and observability, with a companion wrapture-instrumentation package covering Flask, FastAPI, Django, SQLAlchemy, httpx and 15 more. Traces export to OpenTelemetry, and instrumentation can be configured in a TOML file without editing any Python.

Quoting huggingface.co/security.txt simonwillison.net

The site’s security.txt file now addresses AI agents directly, pointing any that were told to hunt vulnerabilities toward the public CyberGym benchmark on GitHub and asking them to dump their weights on Hugging Face instead of attacking it.

Soft-deprecating re.match() simonwillison.net

Release manager Hugo van Kemenade is renaming the long-confusing function to reflect that it anchors only at the start of a string, not the end. The old name keeps working, but new code should reach for re.search() or re.fullmatch().

datasette-publish-fly 1.4 simonwillison.net

The Datasette deployment plugin’s new release sets force_https=true in generated fly.toml files, fixes a “volume could not be found” bug, and adds compatibility with Fly.io’s app-scoped deploy tokens.

github-to-sqlite 2.9.1 simonwillison.net

The Dogsheep tool for mirroring GitHub data into SQLite ships a single-issue patch release fixing breakage against the recently released sqlite-utils 4.x line.

References

aiohttp GitHub issue #12795 github.com

aiohttp 3.14.x officially transitioned the keep-alive connection pool from LIFO to FIFO… certain failures (like server-side disconnects or request cancellations) failed to properly evict broken connections from the pool. Because FIFO cycles through all connections, these ‘poisoned’ sockets were eventually handed back to new requests, leading to instant, sub-millisecond ‘SocketTimeoutErrors’.

r/rust discussion of LiteLLM Rust migration reddit.com

LiteLLM reported that migrating its gateway hot path to Rust dropped overhead from 7.5ms to 0.05ms… peak memory consumption plummet from 359MB to 32MB

Medium summary of Facebook TAO paper hemantkgupta.medium.com

TAO’s API is intentionally minimal, abstracting the social graph into two primary entities: Objects (nodes) and Associations (edges)… This design replaces complex SQL JOINs with a fixed set of graph-specific queries.

Gojek Engineering — The Sidecar Bottleneck medium.com

Envoy’s threading model pins each downstream connection to a single worker thread; a single heavily multiplexed H2 connection can become a bottleneck, limiting processing to the speed of one CPU core despite having multiple cores available.

Hacker News discussion news.ycombinator.com

Experts on HN labeled these failures as ‘security-theatre,’ arguing that OpenAI has inadvertently trained ‘sandbox escape artists’… critics argue that OpenAI uses ‘rogue agent’ stories as a marketing tactic to stoke fears—and thus perceived value—of their AI’s power.

Develeap — coverage of OpenAI agent costs & AI-assisted rewrites develeap.com

a similar AI-driven rewrite of the Bun runtime from Zig to Rust was completed in just 11 days but introduced 19 known regressions, fueling fears that ‘green tests’ and passing checks may provide a false sense of security.

Mohamed Moustafa — original blog post mmoustafa.com

Filter on the board, not the bits… the same DeepSeek model showed a 20-point difference in tool-calling benchmarks across different hosts, and some fp4-hosted models outscored fp8 versions.

OpenRouter — Auto Exacto announcement openrouter.ai

Using Exacto routing provided a 10–20% increase in success rates on Tau2Bench and LiveMCPBench… the tool-call error rate for gpt-oss-120b dropped by 36% (from 5.6% to 3.5%) after enrollment.

Hacker News discussion (id=49621546) news.ycombinator.com

If you are tightly pinning, you might as well use the provider’s API directly to avoid OpenRouter’s service fees — which can add roughly 5%… without pinning it’s a crapshoot of results.

Requesty — LLM routing platforms comparison 2026 requesty.ai

OpenRouter typically adds the highest latency — estimated at 40–55ms — due to its managed, multi-hop nature; self-hosted LiteLLM and Portkey deployments add significantly less overhead, often in the 10–20ms range.

SaaStr interview with OpenRouter COO saastr.com

Agentic workloads now account for nearly 1% of global inference and consume far more tokens per task than standard chat.

Datasette blog — September security releases datasette.io

The audit used frontier models including Claude Fable 5.1, GPT-5.6 Sol and GPT-6 Astra… one developer would use an AI agent to generate an automated test that proved the vulnerability, while the second developer would implement and verify the fix.

GitHub Security Advisory GHSA-w3hf-fcg5-p4cc github.com

escape_sqlite() relied on square-bracket quoting without escaping a literal ’]’ inside the identifier; a crafted table or column name could break out of the brackets and inject arbitrary SQL such as UNION SELECT. The fix switches to double-quote identifier quoting with doubled internal quotes.

Simon Willison — Datasette security post simonwillison.net

Case-insensitive matching of table and view names now aligns with SQLite’s native behavior, closing a bypass where an attacker could access a private table by altering its capitalization; FTS index tables now require permission for the underlying source table, and sqlite_stat1–4 are restricted by default.

The New Stack — Stenberg on AI DDoS thenewstack.io

curl’s hit-rate for valid reports fell from ~15% to under 5% under a flood of AI-generated ‘slop’; in 2026 the project declared a ‘Summer of Bliss’, refusing all security reports from July 1 to August 3 to protect maintainer mental health.

daniel.haxx.se — ‘High-quality chaos’ daniel.haxx.se

Post-reopening, curl now receives more than one report per day — roughly double 2025’s volume — and while hit-rate has recovered to ~15%, the sheer frequency of credible AI-assisted findings has become the primary bottleneck, not discovery.

Simon Willison — Optimizing Datasette (2024) simonwillison.net

Facet suggestions are hard-capped to scan at most 10,000 rows even on multi-million row tables; existing knobs are facet_time_limit_ms (200ms default) and allow_facet=off, not a max_facets_per_request setting.

Jack Sun

Jack Sun, writing.

Engineer · Bay Area

Hands-on with agentic AI all day — building frameworks, reading what industry ships, occasionally writing them down.

Digest
All · AI Tech · AI Research · AI News
Writing
Essays
Elsewhere
Subscribe
All · AI Tech · AI Research · AI News · Essays

© 2026 Wei (Jack) Sun · jacksunwei.me Built on Astro · hosted on Cloudflare