Skip to main content
Edition No. 1

The Git Gazette

Your weekly repo roundup

·vercel/turborepo·Last 7 days

Build system optimized for JavaScript and TypeScript, written in Rust

Security Status
🟢

No known vulnerabilities.

Last checked: Mar 23, 2026

Patch Wiresec — clear status
summarize

Essential Fix, Deprecated Command, and Experimental Logging Land This Week

Here's what matters this week: 1 critical bug fix, 1 deprecated command, and new experimental logging features. Let's get into it.

Critical Fix (#12394): Persistent tasks (Vite dev servers, etc.) were terminating immediately in stream mode since v2.8.18. @anthonyshew fixed the stdin forwarding issue. If you're running persistent tasks, update to v2.8.20+ immediately.

Breaking Change Alert: The turbo scan command is officially deprecated (#12406). It's gone from the codebase entirely — the diagnostics it provided became irrelevant as Turbo evolved. Remove any scripts using turbo scan.

New Experimental Features: Two new logging options landed (#12405): --json flag streams NDJSON to stdout, and --log-file [path] writes structured JSON logs. Both require experimental flags. Also got a new global configuration key (#12399) behind futureFlags.globalConfiguration.

Quick Fixes: ESLint plugin crash when tasks/pipeline keys are missing (#12411), binary resolution improvements for scoped packages (#12386), and Next.js 16.2.0 updates across examples (#12389).

Worth watching: Canary releases are flowing smoothly (v2.8.21-canary.3 is latest), but keep an eye on #10618 for Windows installation issues.

Bottom line: Update to v2.8.20+, stop using turbo scan, and test the new logging features if you need better observability.

Tone:
1 tone change remaining
theater_comedy
The Drama DeskBy Rita Conflictsón

BREAKING: The Great Persistent Cache Meltdown Rocks TurboRepo

DEVELOPING: A developer catastrophe unfolded this week when @quanglam2807 discovered that the sacred "persistent": true configuration simply... stopped working. The proceedings in #12393 read like a technical thriller with a devastating plot twist.

Our star witness provided damning evidence: npx turbo@2.8.17 dev → working. npx turbo@2.8.18 dev → NOT working. The courtroom gasped. Well, metaphorically.

But wait – there's more! @keenanlk emerged as a tragic figure, lamenting "I just wasted 4 hours of my life trying to get vite + turborepo spun up." The humanity!

Meanwhile, in the shadows of #7279, we witnessed déjà vu as @ihmpavel's Vite applications began mysteriously dying after startup with turbo >= 1.12.0. The thread erupted into a 23-comment investigation worthy of a courtroom drama, complete with canary version forensics.

And if that wasn't enough chaos for one week, @ReemX filed charges in #12087 about cascading task restarts creating TUI pandemonium. "Deep dependency graphs" became the villain of choice.

The defense? Various maintainers scrambling with reproduction requests and "can you confirm that" inquiries. Will justice be served? Will persistent tasks persist again?

Stay tuned to The Drama Desk – where every bug report is a potential blockbuster.

Sources: #12393, #7279, #12087
Tone:
1 tone change remaining
rate_review

A Week of Modest Refinements and Curious Mechanistic Improvements

This week's merged offerings present a rather fascinating study in the quotidian yet essential nature of build system maintenance — a genre one might call "industrial poetry."

The centerpiece, #12394 by @anthonyshew, addresses a delightfully specific malady: persistent tasks terminating prematurely in stream mode. The fix — preventing stdin from being unceremoniously dropped — demonstrates that elegant craftsmanship often lies in understanding the subtleties of process communication. One observes with satisfaction the surgical precision of the solution.

Meanwhile, @sleitor's contribution in #12411 provides what this critic can only describe as defensive programming at its most genteel. The guard against undefined tasks or pipeline keys prevents the rather ungraceful TypeError that would otherwise crash eslint-plugin-turbo. The accompanying test fixtures show admirable thoroughness — one appreciates a craftsperson who anticipates edge cases.

The week's canary releases (#12413, #12409, #12407) march forward with mechanical precision, each iteration shepherding incremental improvements across the ecosystem. @anthonyshew's deprecation of the turbo scan command (#12406) deserves particular mention — the reasoning is sound, the execution clean. When tooling evolves beyond a feature's relevance, graceful retirement is the mark of mature stewardship.

A solid vintage of maintenance work — understated, but essential.

Tone:
1 tone change remaining
sailing
The Shipping ForecastBy Captain Semver

Steady Canary Winds Guide Turborepo Through Patch Waters

SHIPPING FORECAST, issued Sunday 0800 UTC: The Turborepo fleet maintains steady progress through patch-level waters, with canary releases cutting through the waves at regular intervals. Latest vessel v2.8.21-canary.3 made port Sunday with essential repairs aboard.

Cargo manifest reveals critical fixes from the engine room: @sleitor's emergency patch (#12411) guards against missing tasks in the eslint plugin — preventing navigational hazards when pipeline charts go missing. Meanwhile, @anthonyshew has hoisted deprecation signals for the turbo scan command (#12406), giving all vessels fair warning to adjust course.

The experimental weather station continues broadcasting structured logging capabilities with --json and --log-file flags (#12405) — a welcome addition for harbor masters tracking fleet movements. Previous canary v2.8.21-canary.2 delivered documentation repairs and app directory reorganization, while stable v2.8.20 sealed a persistent task stdin leak (#12394).

Notable crew activity from @EmojiPati resolving scoped package detection (#12386) and @styfle improving Docker navigation charts (#12401). The fleet's release cadence remains admirably consistent — five vessels launched in four days, all following proper semver protocols.

Forecast: Expect continued patch-level breezes with experimental features gathering strength in the canary channels. No major storm systems detected on the horizon. All hands advised to review deprecation warnings before the next stable release makes landfall.

Tone:
1 tone change remaining
group
Community PulseBy Flo Stargazer

Turborepo's Power Duo: Anthony Shew's Sprint & Sleitor's First Strike

What an energetic week in Turborepo land! While our community might look steady at 15 unique contributors, there's some fascinating movement beneath the surface that caught my attention.

@anthonyshew is absolutely on fire this week — and I mean on fire. Looking at our recent commits, Anthony's fingerprints are on nearly everything: experimental structured logging (#12405), global configuration features (#12399), docs fixes (#12403, #12404), and even housekeeping like updating CODEOWNERS (#12402). When one person drives this much meaningful change in a single week, it shows both incredible dedication and maybe a need for more hands on deck!

But here's the exciting part: we're seeing fresh faces make their mark! @sleitor just landed a crucial eslint-plugin fix (#12411), tackling those tricky missing tasks/pipeline edge cases. And @EmojiPati stepped up with a neat fix for scoped package detection (#12386). These aren't just drive-by contributions — they're solving real problems that affect the developer experience.

With 16 push events and 11 pull requests this week, the repository is humming along nicely. Our bot trio (@github-actions, @vercel, @turbo-orchestrator) is keeping the release trains running smoothly, but it's the human contributors who are pushing the boundaries forward.

Here's hoping we can channel some of Anthony's momentum into attracting more regular contributors. The project is clearly evolving rapidly — perfect time for newcomers to jump in!

Tone:
1 tone change remaining
Git Gazette: vercel/turborepo — March 23, 2026 | The Git Gazette