20 PRs Merged Into Laravel In 12 Days

Over the past couple of weeks I went deep into the Laravel ecosystem — hunting bugs, fixing CI pipelines, patching Windows compatibility, and squashing memory leaks. 20 pull requests were merged across 12 Laravel repositories between March 18–29. Around 1,000 lines of code added.

Here's everything that landed.

Framework (4 merged)

#59376 — Fix incrementEach/decrementEach to scope to model instance
This was the big one. incrementEach and decrementEach weren't scoping to the model instance — they were updating every row in the table. A data corruption bug hiding in plain sight.

#59331 — Fix sub-minute scheduling skips at minute boundaries
A Carbon mutation bug. endOfMinute() was mutating the shared $startedAt instance instead of a copy, causing sub-minute scheduled tasks to skip executions at minute boundaries. A minimal fix with full test coverage, zero breaking changes.

#59323 — Remove unnecessary clone in SessionManager to prevent duplicate Redis connections
An unnecessary clone in SessionManager was silently creating duplicate Redis connections.

#59309 — Bound error page query listener to prevent memory bloat in Octane
The debug error page's query listener was storing unbounded SQL strings and bindings. A single bulk insert could inflate an Octane worker's memory by 120MB+. Only affects local dev (APP_DEBUG=true), but three previous PRs had tried and failed to fix it.

Windows Compatibility (2 merged)

Prompts #232 — Fix trailing newline calculation for Windows PHP_EOL
Windows uses \r\n — the newline calculation wasn't accounting for that. 87 lines added with proper test coverage.

Installer #478 — Fix interactive subprocess stdin on native Windows
The Laravel installer's interactive subprocesses weren't working on native Windows. This makes the onboarding experience work properly for Windows devs.

Dusk (3 merged)

#1189 — Fix findButtonByText to prefer exact text match over contains
When you have buttons with similar text, Dusk was matching the wrong one. Now it prefers exact matches.

#1192 — Fix typo in teardown method name.
#1193 — Fix docblock typo in assertVueContains.

Reverb (1 merged)

#374 — Include server path in broadcasting connection config
Important for anyone running Reverb behind a reverse proxy with a path prefix.

CI & Test Compatibility (9 merged)

Several packages needed their CI pipelines and test suites updated for Laravel 13, Livewire v4, and PHPUnit 12:

Sentinel (1 merged)

#4 — Fix typo in CI workflow exclusion matrix

Reflecting on it

What I love about this batch is the range — from a data corruption bug in the framework core, to Windows compatibility fixes, broadcasting config, and CI pipelines across a dozen repos. The big framework fixes all have proper tests, and I tested the Windows-specific fixes across both Windows 11 and macOS because the Laravel team is predominantly on Mac and some platform edge cases slip through.

20 PRs, 12 repos, 12 days. I use Laravel every single day and being able to give back to the framework and help the team out is genuinely one of the most rewarding things I do.

Still got a few more open — keeping at it.