Contributions
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.
Hardcode the xxh128 hash algorithm in product import — on GitHub
Product import derived its row hash from whatever algorithm the environment happened to offer, so the same CSV produced different hashes on different PHP builds and re-imported unchanged rows. Pinned to xxh128.
Compress the content types Magento actually serves — on GitHub
nginx.conf.sample left PWA manifests and EOT/OTF fonts out of gzip_types, so they shipped uncompressed on every store built from the sample. Also dropped the gzip_disable "msie6" workaround.
Preserve cart price rule discounts when editing an order in admin — on GitHub
Editing an order silently dropped rules limited by uses-per-customer: the new quote re-validated usage while the original order — the one about to be canceled — still held the usage slot. Same defect hit coupon validation.
Handle malformed UTF-8 in the CatalogWidget cache key — on GitHub
ProductsList::getCacheKeyInfo() serialized raw $_GET — so a single malformed byte in the query string threw out of json_encode() and took the whole page down to the generic error page. Bots find those bytes for you.
Align the bootstrap PHP version check with what Magento requires — on GitHub
app/bootstrap.php still gated on PHP 8.1 while composer.json demanded 8.3, so anyone on 8.1 or 8.2 sailed past the friendly message and hit an opaque Composer failure instead.
Change quote.applied_rule_ids to TEXT — on GitHub
quote.applied_rule_ids was VARCHAR(255) while quote_item and quote_address_item used TEXT. Past ~100 applied rules the parent column truncated and stopped matching its children.
Show the country in order grid address columns — on GitHub
Sales > Orders rendered street, city, region and postcode but not the country, which is ambiguous for anyone shipping internationally. Added country_id to both address aggregators.
Enable the compiled configuration cache for test execution — on GitHub
The compiled_config cache holds the merged di.xml graph, and integration tests rebuilt it instead of reusing it. Straight wall-clock off every suite run.
Handle negative page numbers on category listings — on GitHub
A negative ?p= value was treated as a valid request and ended in an exception instead of a sensible response — trivially reachable by any crawler that guesses at URLs.
Only merged work is listed here, and only the parts worth a comment — the full history, including everything still in review, lives on GitHub.
The generated VCL rejected
PATCHwith a synthetic 405, which broke REST clients doing partial updates behind Varnish. One line in the method whitelist, years of head-scratching saved.