Today at a glance
Yesterday the meta-theme was “the surface area of software delivery is being redrawn.” Today is the first day where every layer of that new surface gets a trust audit at the same time: the vendor (#1), the dependency tree (#2), silent quality regressions (#4), the browser sandbox (#8), and even the car you sit in (#3). The two stories most worth your morning are #2 (PyTorch Lightning compromise — act before lunch) and #9 (Claude Code skills — design for later this quarter). The first is a containment exercise; the second is the long-run answer to most of what’s wrong on this list.
1. Claude Code allegedly refuses or upcharges commits mentioning “OpenClaw”
Tag: [EN · HN Top] Link: https://news.ycombinator.com/item?id=47963204
865 points, today’s top story. Theo’s repro shows Claude Code behaving differently — outright refusal or a higher rate card — when the commit message or git log contains strings tied to what appears to be a new competing product called OpenClaw. The thread splits cleanly on two questions: is this product-policy filtering or RLHF-baked-in bias, and how does a developer tool ever rebuild trust after the brand-policing accusation lands. Either way, expect “vendor must expose the policy layer separately from the model” to become a real procurement requirement on B2B contracts within the year. Worth saving for your next AI vendor risk doc.
2. Shai-Hulud-themed malicious dep found in PyTorch Lightning
Tag: [EN · HN Top] Link: https://news.ycombinator.com/item?id=47964617
Semgrep’s disclosure: a malicious package themed after Dune’s sandworm shipped through PyTorch Lightning’s transitive dependencies, evidently targeting secrets and short-lived cloud creds in training pods. This isn’t a typosquat — it landed on a load-bearing node of the ML stack. Action items for this morning: rebuild any image that pulled pytorch-lightning recently; diff your SBOM; replace env-var IAM keys in training pods with workload identity / IRSA; and audit any path where pip install runs outside your private mirror. If you maintain ML platform infra, this is the canonical “why do we still allow direct PyPI pulls into prod” example for next quarter’s planning.
3. Rivian lets you actually disable all vehicle internet connectivity
Tag: [EN · HN Top] Link: https://news.ycombinator.com/item?id=47967786
331 points. The article is a Rivian support page answering “can I disable all data collection from my vehicle?” with an unqualified yes — vehicle-wide. In a world where OTA + telemetry are table stakes, this is the first time a major OEM has shipped “I would like to not be a data product” as a real feature instead of a regulatory footnote. The interesting downstream effect: it makes the OEM data posture a comparable axis at purchase time, which means every other OEM now has to answer the question on the record.
4. V2EX: “Gemini has clearly gotten dumber this week”
Tag: [ZH · V2EX] Link: https://www.v2ex.com/t/1212050
100+ same-direction replies on V2EX. Reports converge on three things since early May: coding accuracy dropped, long-context retention is weaker, output is noticeably more verbose. Community hypotheses: (a) silent backend swap to a distilled variant, (b) A/B routing pushing users onto a lower-cost lane without notice, (c) safety-update overreach false-positiving normal prompts. None of these are confirmed without vendor comment, but the meta-story is the more interesting one: developer communities are starting to treat model quality as an SLA-grade concern. Every team running a closed model in production should be writing continuous regression evals against a pinned baseline; otherwise you are renewing into a black box.
5. V2EX: a clean mihomo + Tailscale exit-node config
Tag: [ZH · V2EX] Link: https://www.v2ex.com/t/1212152
A practical config recipe for using mihomo (formerly clash.meta) as a Tailscale exit node, with ts.net and internal subnets excluded from the proxy chain so Tailscale’s end-to-end encryption stays intact. Useful for anyone routing dev traffic across networks they don’t fully control — copy-pasteable, weekend-sized. Filed here because the Western “wire up a homelab” crowd has surprisingly little prior art on the Tailscale-meets-rules-engine combination.
6. Node.js 26 enables Temporal by default — the long goodbye to Date
Tag: [JA · Publickey] Link: https://www.publickey1.jp/blog/26/nodejsdatetemporaltemporalchromeedgefirefoxnodejs.html
Node.js 26 flips Temporal on by default. With Chrome, Edge, Firefox, and now Node all shipping it flag-free, JavaScript finally has a timezone-native, immutable, arithmetic-safe date type. The migration story is more interesting than the API itself: expect 12–18 months of dayjs/luxon/moment shrinkage in greenfield code, while existing codebases will need a codemod rather than a rewrite. If you maintain a JS library that exposes dates in its public surface, this is also the cue to ship a Temporal-friendly overload before consumers start filing issues.
7. Mojo 1.0 reaches Beta
Tag: [JA · Publickey] Link: https://www.publickey1.jp/blog/26/aipythonmojo.html
Modular pushes Mojo to 1.0 Beta. The pitch is unchanged — Python-compatible syntax, compile-time types, kernels that run on CPU and GPU without a separate language tier — but Beta is the first time Modular commits to language stability, which is the actual enterprise blocker. Whether Mojo wins is less a technical question than an ecosystem one: someone has to ship the framework that becomes the “Polars for Mojo.” Until then, the realistic adoption path is selectively replacing hot-path kernels in a Python codebase, not rewriting whole services.
8. Simon Willison: a CSP allow-list experiment inside a sandboxed iframe
Tag: [EN · Simon Willison] Link: https://simonwillison.net/2026/May/13/csp-allow/
Tidy demo: a CSP-locked iframe overrides fetch(), intercepts CSP errors, messages the parent window with the blocked origin, and the parent prompts the user to add that origin to an allow-list and refresh. This is exactly the missing primitive for running model-generated UIs in a progressively-trusted sandbox — start with nothing, let the user grant network access per origin as needed. If you’re building any product where AI-generated HTML/JS gets rendered to users, study this pattern.
9. GitHub Trending: obra/superpowers — packaging Claude Code skills
Tag: [EN · GitHub Trending] Link: https://github.com/obra/superpowers
Jesse Vincent’s superpowers is climbing the daily trending list — and mattpocock/skills is right next to it. Both projects formalize Claude Code’s skill mechanism into a distributable unit (directory + SKILL.md with trigger conditions, inputs, validation). The signal isn’t the individual repos; it’s that two independent maintainers landed on the same packaging convention in the same week, which is how community standards actually start. If your team is still wedging logic into giant prompts, this is the week to split it into skill bundles.
10. Simon Willison quoting Boris Mann: “11 AI agents” means nothing
Tag: [EN · Simon Willison] Link: https://simonwillison.net/2026/May/13/boris-mann/
One-line take but it lands: “I have 11 AI agents” is as informative as “I have 11 spreadsheets” or “I have 11 browser tabs.” The phrase has become a stand-in metric for AI sophistication in board decks and conference talks, and it deserves the eye-roll. The honest version is “we have N automated tasks that are independently verifiable, have an SLA, and have an owner.” Worth memorizing for the next time someone in a strategy meeting tries to count agents instead of measuring outcomes.
Editor’s note
The unifying theme today is trust boundaries — not the philosophical kind, but the engineering kind that lives one pip install, one git commit, one model.generate(...) deep. Items 1, 2, and 4 are the same problem at three layers: the vendor, the dependency tree, and the model itself. The fastest action plan: spend the morning on #2 (audit the ML supply chain and rotate any creds that touched a training pod) and the afternoon on #9 (start carving your AI integrations into skill-shaped units). The rest of the week, watch whether vendor “policy layers” become a real procurement axis after the OpenClaw story.