uv and ty team up, and Brotli needs patching
uv check lands in preview, C++26's ballot is disapproved, and PingCAP confirms a breach
The main thing

Got a folder of one-off Python scripts, each with its own dependencies? Your editor may finally stop putting red squiggles under every import. You can try it today, as long as you're fine with "experimental".
Astral has released an experimental integration between uv and ty, available in preview. uv knows your project's environment and dependencies. ty, Astral's type checker and language server, knows your code. Together, ty reads PEP 723 inline metadata and asks uv to build an environment for each script. It then checks every script against that script's own declared requirements, even when they differ from the rest of the project. Completions, hover and Go to Definition use the same environments.
The other half is uv check. One command prepares your project's environment, installs dependencies and runs ty. It uses the ty version recorded in your lockfile, so your laptop and CI run the same ty without a separate pin. If you never run it, nothing changes. ty only gets installed the first time you do.
- Requires uv 0.12.3 or later and ty 0.0.76 or later
- Workspaces:
uv check --package <name>oruv check --all-packages - One script:
uv check --script example.py - VS Code, with the ty extension:
"ty.experimental.useUv": "on" - Command line, project plus scripts:
TY_UV=scripts ty check
One caveat is worth reading twice. Installing dependencies can run third-party Python code, so automatic environment setup for scripts is opt-in for now. Later, Astral plans to turn script support on by default, add Ruff to uv check, and add checks that need both tools, such as finding unused dependencies.
What to do today: Upgrade to uv 0.12.3, then try uv check on one repo. Turn on ty.experimental.useUv only for scripts whose dependencies you trust.
Quick bits
HTTP2Shell spreads Node2Shell to anything that decodes Brotli. Aikido describes CVE-2026-111497 as an out-of-bounds write in Google's Brotli decoder, versions 1.0.3 through 1.2.0. Aikido says OpenAI found it in February and reported that it works in both directions: a malicious client can take over an unpatched server, and a malicious server can take over a client that accepts compressed responses. A commenter disputes the OpenAI credit, saying Google fixed the code in February without knowing it was a security bug. Per Aikido, Python environments are exposed if they have Brotli 1.2.0 or earlier, or brotlicffi 1.2.0.x, installed, because requests, httpx and aiohttp load these packages automatically. Aikido noted that as of October 23, advisory databases didn't map the CVE to either PyPI package, so pip-audit, Dependabot and Safety wouldn't flag them. Fixed versions, per Aikido's patch list:
- libbrotli 1.2.1, or the patched 1.0.10 and 1.1.1 for older release lines
- Python: Brotli 1.2.1 and brotlicffi 1.2.1.0
- C++: Aikido says patches are available, but the advisory does not name a fixed release
- Node.js 22.23.4, 24.22.1 or 26.12.1
- Bun 1.4.4, then rebuild any compiled executables
- Envoy 1.40.0, 1.39.3, 1.38.6 or 1.37.8; Istio 1.29.9, 1.30.6 or 1.31.2
Rebuild your images, redeploy and restart. If you can't patch yet, turn off Brotli decoding, or uninstall Brotli and brotlicffi wherever they're optional.
The PHP Foundation is "under-funded" with one full-time staff member, its director tells Reuters. We couldn't load the article, so the headline is all we have. This comes in the same week as the PHP2Shell bugs. The discussion links to the foundation's Open Collective spending.
Dan Luu wants you to build bigger. His examples: Michael Malis's pgrust, whose testing keeps finding real Postgres bugs, and Luu's own regex engine, ripgrep fork and faster Rust builds. He says those took a low single-digit number of hours, not a year. One commenter counters that pgrust was just removed from ClickBench for cheating the benchmark. Ambition: now with footnotes.
PingCAP confirms theft of source code and customer data. PingCAP says the exported records included user names, emails, organization and project associations, and SQL editor text. FulcrumSec claims it took 10.6 TB, including API keys, but no one has verified that. PingCAP itself recommends that TiDB Cloud customers replace active TiDB Cloud management API keys and watch for targeted phishing.
C++26's ballot came back Disapproved. 12 of 20 P-members voted in favor (60%, where 66.66% is needed), and 9 of 22 member bodies voted no (41%, where the limit is 25%). The post doesn't say what happens next. C++ can still surprise people.
Cerebras explains how it serves trillion-parameter models, using the ~3T-parameter Kimi K3 as an illustrative example. In that example, the model needs 59 WSE-3T wafers with 44 GB of on-chip SRAM each. Weights stay put, and only activations hop between wafers, at about 2 microseconds per hop. Cerebras claims 1000 to 2000+ tokens per second. The discussion asks what happens when one wafer in the pipeline fails.
Gemini 4 Argon spent 11 unattended hours optimizing Google's ADK. Reviewers accepted two of its changes: about 40% less in-memory session-preparation overhead in long sessions, and cold imports 21% faster. They rejected four others. The night shift still needs a day shift.
Also happening
- Rust 1.99.0: C-variadic function definitions are stable, a new allow-by-default
raw_borrows_via_referenceslint flags references that decay immediately into raw borrows, and Cargo turns off incremental builds in CI. - Wild 0.11.0: Wasm is on by default, and it can now link Linux kernel modules.
- Ollama 0.40.11: speech generation on macOS, streamed through
/v1/audio/speech, and d3 decision models (2B to 27B) that classify, answer yes or no, or score options. The release's changelog link points tov0.40.11-rc0, so it may be a release candidate. - Ollama 0.40.9: Flint now runs on Linux and Windows.
- Vercel AI SDK patch batch: README cleanup and dependency bumps across
@ai-sdk/*packages. - gpu-unlock: a kernel module that says it doubles the FP/BF16 FMA issue rate on GA102, GA103, GA104 and GA106 cards. The repo's own 3090 Ti benchmark shows about 1.8x, and one tester warns that it relies on a firmware exploit. Another commenter says the unlock restores FP32 rather than 16-bit ops, and has seen reports only for the 3090 and 3090 Ti.
- bbtree: says it's the fastest ordered map. Run your own benchmarks.
- Debugging DEV's missing badges from public code: a badge slug mismatch, a merged fix, and a test that passed for the wrong reason.
- Why is AI-generated language so hard to understand?: compared with human writing, all nine models tested use more inanimate subjects with animate verbs and more low-frequency n-grams, and most also use longer dependencies.
- An AI-assisted Z-Library paper cites a TorrentFreak article that doesn't exist: at least ten of its 44 references couldn't be found.
- Grok picks Republicans, GPT picks Democrats: an API study of nearly 500 races, where the two agreed less than 10% of the time.
- Hours, not weeks: why four-person teams fall behind when patch windows shrink.
- Will AI expose the internet's rickety infrastructure?: TechCrunch's Equity podcast on the PHP2Shell week.
- Steve Blank: Europe gets a wake-up call: argues the Starshield throttling makes US tech look like a kill switch.
- Denmark's digital ministry quietly drops its Collabora pilot: about 40 staff had been testing it as an alternative to Office. The article is in Danish and mostly behind Computerworld's Premium paywall; the discussion summarizes it.
Patch Brotli first, then go build something ambitious.