Open Source
Shaping the tools I use every day, one pull request at a time
A hand-picked selection: only the contributions worth reading about, not every merged pull request. Articles about Magento and Adobe Commerce are on the blog.
Stream assistant text into the cockpit as it is generated — on GitHub
Claude Code ran without --print and --include-partial-messages, so the cockpit only showed a reply once the whole block was complete, 17 to 20 seconds into a 300-word answer. Now content_block_delta frames map to item.delta events on the same item id the final block later completes, and text reaches the screen seven to eight seconds before the block finishes, with no cockpit change needed.
Set a timeout on the Shield rules fetch — on GitHub
Magento\Framework\HTTP\Client\Curl sets no default timeout, so a stalled connection to the rules endpoint blocked fetchRules() indefinitely. That call runs from a cron job in a separate process, and Magento’s schedule lifetime only prunes stale rows after the fact — it never kills the hung worker.
Cache the WAF rules in front of the flag lookup — on GitHub
The plugin injects the WAF eagerly, so every request paid for a point SELECT on the flag table before it could decode the rules — a round trip for a value that only changes when the five-minute cron writes it. Caching in front of that lookup, without reintroducing the cache-only storage the module had deliberately dropped, since cache:flush or a disabled cache type must not leave the WAF ruleless.
Fix the escaping example in the view models guide — on GitHub
Official docs showed $block->escape…() for output escaping and had the @var annotation the wrong way round. Documentation is copy-pasted into production more often than anyone admits.
Escape table names so encryption key rotation survives them — on GitHub
Table names containing special characters broke the generated SQL mid-rotation — a bad moment to discover a quoting bug, given what the tool is re-encrypting.
Prefetch orders to kill an N+1 in the admin grid — on GitHub
The orders grid issued one query per row for Mailchimp data. Prefetching cut over 20% of the grid load locally — more on any environment with real network latency to the database.
Install ps so Magento integration tests stop crashing — on GitHub
Without ps in the image, Magento’s memory estimation fell through to its Windows code path and died with sh: tasklist.exe: not found. A genuinely great error message to debug on Linux.
Run ExtensionChecker without a working Magento install — on GitHub
The dependency scanner required a fully bootstrapped Magento, which is precisely what you do not have when auditing a pile of modules in CI.
Correct the documented PHP compatibility range — on GitHub
composer.json and reality both said PHP 8.1 worked; the README still said otherwise, and teams believe the README.
Only merged work is listed here, and only the parts worth a comment — the full history, including everything still in review, lives on GitHub.
When
opencode servenever printed its URL, the runner kept talking to a port nobody might have bound. The Codex RPC dropped responses with string JSON-RPC ids, which the spec allows, so those requests never settled. Claude’ssendMessagereported success after the child had already exited. The session now fails fast with a clear error, numeric string ids settle their request, and stdin counts as closed once the child exits.