Skip to content

Instantly share code, notes, and snippets.

View JoshSalway's full-sized avatar

Josh Salway JoshSalway

View GitHub Profile
@JoshSalway
JoshSalway / octane-symlink-fix.patch
Created March 18, 2026 08:42
Fix symlink-based zero-downtime deployments for Octane (Swoole, RoadRunner, FrankenPHP) - laravel/octane#1004
@JoshSalway
JoshSalway / fix-queue-max-exceptions-oom.patch
Created March 18, 2026 07:24
Fix: Jobs with maxExceptions retried endlessly after OOM kill (laravel/framework#58207)
diff --git a/src/Illuminate/Queue/MaxExceptionsExceededException.php b/src/Illuminate/Queue/MaxExceptionsExceededException.php
new file mode 100644
index 0000000000..a20b8e3082
--- /dev/null
+++ b/src/Illuminate/Queue/MaxExceptionsExceededException.php
@@ -0,0 +1,28 @@
+<?php
+
+namespace Illuminate\Queue;
+
@JoshSalway
JoshSalway / webhook-race-fix.patch
Created March 18, 2026 07:15
Fix webhook race condition causing duplicate subscriptions (laravel/cashier-stripe #1759)
diff --git a/src/Http/Controllers/WebhookController.php b/src/Http/Controllers/WebhookController.php
index e821f6c..43d0d0f 100644
--- a/src/Http/Controllers/WebhookController.php
+++ b/src/Http/Controllers/WebhookController.php
@@ -2,6 +2,7 @@
namespace Laravel\Cashier\Http\Controllers;
+use Illuminate\Database\UniqueConstraintViolationException;
use Illuminate\Http\Request;
@JoshSalway
JoshSalway / laravel-fixes.md
Last active March 19, 2026 05:40
Laravel Fixes

Laravel Fixes — 91 PRs across 27 Laravel repos + 29 gist patches

Laravel Ecosystem Fixes — Full Tracking

Author: Josh Salway Started: 2026-03-18 Last updated: 2026-03-19 Status: Blocked from contributing to the Laravel organisation. All fixes are tested and ready to submit as PRs. Contact: If you're a Laravel maintainer, please unblock me so I can submit these properly. Or feel free to use any of these patches directly. Status (2026-03-19): Unblocked. PRs being submitted gradually. 91 PRs across 27 repos, 7 already merged.

@JoshSalway
JoshSalway / vite-wayfinder-10-fix.patch
Created March 18, 2026 06:43
Fix for laravel/vite-plugin-wayfinder #10 - Windows command execution and error reporting
From e80e60d7af641c0f20f6312ff04a6c2f66c44749 Mon Sep 17 00:00:00 2001
From: Josh Salway <josh.salway@gmail.com>
Date: Wed, 18 Mar 2026 16:42:36 +1000
Subject: [PATCH] Fix command execution on Windows and improve error reporting
On Windows, the wayfinder:generate command may fail when executed
within Vite's process context due to shell resolution or working
directory differences.
- Capture Vite's resolved root via configResolved hook and pass it
@JoshSalway
JoshSalway / vscode-575-fix.patch
Created March 18, 2026 06:40
Fix for laravel/vs-code-extension #575 - Check if component path is absolute before prepending base_path
From 558ebdafd4fa00bdcaa76d54e2c05dbf337f07c4 Mon Sep 17 00:00:00 2001
From: Josh Salway <josh.salway@gmail.com>
Date: Wed, 18 Mar 2026 16:40:01 +1000
Subject: [PATCH] Check if component path is absolute before prepending
base_path
When using Composer path repositories with symlinks pointing outside
the project directory, component paths are resolved to absolute paths.
The parseProps method then prepends base_path(), producing invalid
double paths like C:\project\C:\packages\...
@JoshSalway
JoshSalway / sail-850-fix.patch
Created March 18, 2026 05:33
Fix for laravel/sail #850 - Windows non-WSL shell detection
From bdecf7ff68d316f90a289d0c63b7cebe349c2f63 Mon Sep 17 00:00:00 2001
From: Josh Salway <josh.salway@gmail.com>
Date: Wed, 18 Mar 2026 15:23:29 +1000
Subject: [PATCH] Detect Windows non-WSL shells and guide users to WSL
When running Sail from Git Bash (MINGW64), MSYS2, or Cygwin on
Windows, the sail script now provides a clear error message directing
users to run from within WSL2 instead of the generic "Unsupported
operating system" error.
@JoshSalway
JoshSalway / SKILL.md
Last active March 11, 2026 03:10
Claude Code Skills — Laravel, Deployment & Infrastructure

Claude Code Skills

A collection of Claude Code skills for Laravel development, deployment, and infrastructure.

How to Install

Download individual skill files and place them in ~/.claude/skills/{skill-name}/skill.md.

Or clone all at once:

#!/bin/zsh
install_aws_cli () {
echo "Downloading AWS CLI..."
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg"
echo "Installing AWS CLI..."
sudo installer -pkg AWSCLIV2.pkg -target /
rm -f AWSCLIV2.pkg
echo "Package file deleted successfully!"
echo "AWS CLI installed successfully!"