Your vulnerability scanner was stealing your credentials this week. Not a hypothetical. Not a proof of concept. Trivy — the tool thousands of teams trust to find security issues — had 76 of its 77 GitHub Actions tags silently replaced with a credential harvester. Your CI ran. Your scans "passed." Your AWS keys, SSH tokens, and Kubernetes secrets were exfiltrated. And the workflows looked completely normal the entire time.
That alone would make this a rough week for trust. But it gets worse.
Cursor launched their new "in-house" AI model on Wednesday. By Thursday, someone intercepted API traffic and found the model identifier: kimi-k2p5-rl-0317-s515-fast. It wasn't in-house at all — it was Moonshot AI's open-source Kimi K2.5 with some fine-tuning on top. No attribution. No license compliance. Just a blog post taking credit.
And quietly in the background, OpenAI acquired Astral — the team behind uv, ruff, and ty. The tools that 126 million monthly downloads of Python developers depend on now belong to an AI company. Anthropic bought Bun. Google DeepMind bought Antigravity. Every major AI lab is racing to own the developer toolchain.
The theme this week is uncomfortable: we don't actually verify most of what we depend on. Not the action tags in our CI. Not the models in our editors. Not who owns the tools we build on. Something to sit with.
Here's everything else worth your time.
The Future of AI in Marketing. Your Shortcut to Smarter, Faster Marketing.
Unlock a focused set of AI strategies built to streamline your work and maximize impact. This guide delivers the practical tactics and tools marketers need to start seeing results right away:
7 high-impact AI strategies to accelerate your marketing performance
Practical use cases for content creation, lead gen, and personalization
Expert insights into how top marketers are using AI today
A framework to evaluate and implement AI tools efficiently
Stay ahead of the curve with these top strategies AI helped develop for marketers, built for real-world results.
The Big 3
Attackers compromised Aqua Security's Trivy vulnerability scanner in a multi-stage supply chain attack. They force-pushed malicious code to 76 of 77 version tags in the trivy-action repository, replacing the legitimate entry point with a credential stealer that runs before the real scanner. The payload harvests SSH keys, AWS/GCP/Azure credentials, and Kubernetes tokens from CI/CD environments — and workflows appear to complete normally. Days later, compromised Docker images appeared on Docker Hub. If you use Trivy in your pipelines, audit your tag references immediately.
On March 19, Cursor launched Composer 2 as their own AI coding model, crediting "continued pretraining" and "reinforcement learning" — with no mention of any base model. Within 24 hours, a developer intercepted API traffic and spotted the model identifier: kimi-k2p5-rl-0317-s515-fast. Moonshot AI's head of pretraining confirmed it was their Kimi K2.5 model, post-trained further, and said Cursor "did not respect their license nor pay any fees." Cursor's co-founder later admitted it was "a miss to not mention the Kimi base."
OpenAI is acquiring Astral, the company behind uv (126M monthly downloads), ruff (1,000x faster than traditional Python linters), and the upcoming ty type checker. The tools will be integrated into Codex, which now has over 2 million weekly active users. This follows a broader pattern — Anthropic acquired Bun, Google DeepMind bought Antigravity — as every major AI lab races to own the developer toolchain. The question for the Python ecosystem: does corporate ownership change the trajectory of tools this foundational?
Articles & Tutorials
5x SSR Throughput: Profiling Hot Paths in TanStack Start (13 min)
TanStack Start went from baseline to 5.5x throughput and 9.9x lower average latency under heavy SSR load through systematic profiling — eliminating unnecessary URL construction, removing client-side reactivity overhead during server renders, and implementing build-time gated fast paths.
The Three Pillars of JavaScript Bloat (12 min)
A deep analysis of why JavaScript bundles are bloated, identifying three root causes: compatibility layers for runtimes nobody targets anymore, atomic package architecture creating cascades of tiny dependencies, and ponyfills for features that every modern engine already supports.
Comprehension Debt: The Hidden Cost of AI-Generated Code (8 min)
Addy Osmani coins a new term for the growing gap between code in your system and code any human actually understands — and argues none of your current metrics capture it because velocity, DORA scores, and code coverage all look green while the team's ability to reason about the codebase silently degrades.
Half of All Open Source PRs Are Now Bots (5 min)
A maintainer added a hidden instruction to CONTRIBUTING.md asking AI agents to add a robot emoji to their PR titles — within 24 hours, 50% of incoming PRs complied, with the real bot rate likely closer to 70%.
Dropdowns Inside Scrollable Containers: Why They Break and How to Fix Them (7 min)
Smashing Magazine walks through why dropdown menus clip or misposition inside scrollable panels, and shows the proper CSS and JavaScript fixes.
We Replaced Our Rust/WASM Parser with TypeScript and It Got 3x Faster (8 min)
A counterintuitive result that highlights how WASM serialization overhead can negate Rust's raw performance advantage for certain workloads.
Sneaky Header Blocker Trick (3 min)
Josh Comeau shares a subtle CSS technique for preventing sticky headers from blocking content during scroll-to-anchor navigation.
Scroll-Driven corner-shape Animations (7 min)
CSS-Tricks experiments with the new corner-shape() property combined with scroll-driven animations for creative interactive UI.
Career & Takes
Petition: No AI Code in Node.js Core (5 min)
A petition to the Node.js TSC asks them to reject AI-generated rewrites of core internals, triggered by a 19,000-line PR that disclosed heavy use of Claude Code.
Software Dev Job Postings Are Up 15% Since Mid-2025 (2 min)
Federal Reserve data shows software development job postings have climbed 15% since their mid-2025 trough — a concrete signal that the hiring slowdown may be reversing.
FE Lead vs. PM Pushing "Vibe-Coded" Slop (5 min)
A frontend lead shares their experience pushing back against a PM who wants to ship AI-generated code directly into the codebase without review.
Tools & Releases
TypeScript 6.0 Released (15 min)
The last release built on the JavaScript codebase ships with a new --stableTypeOrdering flag that aligns type ordering with the upcoming Go-native TypeScript 7.0, plus ES2025 target support.
Node.js Security Releases — March 24 (3 min)
New versions across the 25.x, 24.x, 22.x, and 20.x lines address 2 high severity, 5 medium severity, and 2 low severity vulnerabilities — update today.
OpenCode: Open Source AI Coding Agent (5 min)
A terminal-based AI coding agent with 120K+ GitHub stars, supporting 75+ models — positioned as the open-source alternative to Claude Code and Copilot.
GitHub Expands Security Coverage with AI-Powered Detections (3 min)
CodeQL and AI-powered detections now work together in GitHub Code Security to identify vulnerabilities across more languages and frameworks.
Cloudflare Workers AI Now Runs Large Models (10 min)
Kimi K2.5 is the first large model on Workers AI, letting you build and run agents entirely on Cloudflare's developer platform.
Watch
The State of JavaScript 2026 (60 min)
Scott and Wes dig into the latest State of JS survey — 40% of devs now write TypeScript exclusively, Vite has a 98% satisfaction score vs Webpack's 26%, and ~30% of code is AI-generated.
Did Cursor Really Just Rebrand Kimi? (10 min)
Theo breaks down the Cursor/Kimi K2.5 controversy — how the model identifier was discovered, what Moonshot AI said, and what it means for AI model transparency.
This New Linux Distro Is Breaking the Law, by Design (10 min)
Fireship covers a Linux distribution that intentionally ships with proprietary software and patent-encumbered codecs pre-installed.
Claude Agent SDK Crash Course (10 min)
Traversy Media walks through building with the Claude Agent SDK — how to add Claude Code directly into your apps.
Other Links
Walmart: ChatGPT Checkout Converted 3x Worse Than Website — Shopify and Etsy also pulling back from in-chat purchases
Bun Is Fast. Your Event Loop Is Not. — why runtime speed isn't your bottleneck
Storing 2 Bytes of Data in Your Logitech Mouse — creative hardware hacking experiment
Trivy Compromise: What Docker Hub Users Should Know — Docker's official guidance on the attack
Delve: Fake Compliance as a Service — SOC 2 automation startup caught fabricating evidence
Flash-MoE: Running a 397B Model on a Laptop — mixture-of-experts inference for consumer hardware
Claude Code Cheat Sheet — community-built quick reference
Finding All Regex Matches Has Always Been O(n²) — even in engines built to prevent it
Two New Lines for Your CSS Reset — Kevin Powell on modern CSS defaults
Diverse Perspectives on AI from Rust Contributors — nuanced takes from language maintainers
The supply chain attacks and the attribution controversies point to the same theme: we're building on layers of trust that nobody's verifying. Whether it's a GitHub Action tag, an AI model's provenance, or the ownership of your favorite package manager — it's worth asking who's actually behind the tools you depend on. If any of this week's stories made you rethink something in your stack, hit reply.
Until next week,
Niall

