Skip to main content
Matin · Portfolio · 2026Matin Gathani

Open source

Pull requests to tools I use

Highlights from each project. Each heading links to the full list on GitHub.

Cloudflare ↗

Cloudflare's open-source developer toolkit — Wrangler CLI, Miniflare, Vite plugin. 28 merged fixes; selected highlights below.

#14134Merged

Prevent SQLITE_TOOBIG crash when a Workflows step returns a large Uint8Array

Traced a Cloudflare Workflows crash on large step outputs to a SQLite row-size limit and chunked the write so long-running workflows no longer fail.

#14059Merged

Remove "Success!" from stdout in `kv bulk get`

A status line was being written to stdout, corrupting the JSON output that automation scripts piped downstream.

#14041Merged

Fix `wrangler complete` printing AI skills prompt into shell completion output

Shell autocomplete was polluted with an unrelated prompt string, breaking tab completion in zsh and bash.

#14027Merged

Gracefully handle EMFILE when the assets watcher exceeds the directory limit

Large asset directories crashed `wrangler dev` with an unhandled EMFILE; now falls back to polling with a clear warning.

#14026Merged

Show login URL when the browser cannot be opened in headless/container environments

OAuth login silently hung in Docker and CI; now prints the URL so the user can complete auth manually.

#14316Merged

Don't crash `wrangler dev` when source-mapping a truncated error chunk

A partial stack chunk threw inside the source-map lookup; now handled so the original error surfaces instead.

#14568Merged

Fix Windows CI flakes: local-explorer ECONNRESET retry, hyperdrive e2e EPIPE

Two long-standing Windows-only test flakes fixed with a connection retry and EPIPE tolerance.

#14218Merged

Allow Node.js built-ins in resolve.external for Worker environments (Vite plugin)

The Vite plugin rejected valid `node:` externals, breaking builds that depend on nodejs_compat.

#13763Merged

Show a clear error for DO migrations on service-worker format Workers

Durable Object migrations failed with an opaque message on the service-worker format; now explains the module-format requirement.

#13777Merged

Throw a clear error when _routes.json contains invalid JSON

A malformed _routes.json produced a stack trace instead of pointing at the file and parse position.

#13834Merged

Make hotkeys work with Caps Lock enabled

`wrangler dev` hotkeys compared raw key case, so nothing responded while Caps Lock was on.

#13750Merged

Auto-delete Wrangler logs older than 7 days and add WRANGLER_LOG_DISK opt-out

Wrangler's log directory grew unbounded; added retention with an env-var escape hatch.

#14409Merged

vitest-pool-workers: reset() now clears ratelimit binding state between tests

Rate-limit binding state leaked across tests, causing order-dependent failures.

#13838Merged

Handle a deleted entry point during hot-reload without an unhandled rejection

Removing the entry file mid-session crashed the dev server instead of waiting for it to reappear.

#14330Open

Preserve multiple Set-Cookie headers on WebSocket 101 upgrade responses (Miniflare)

Miniflare collapsed repeated Set-Cookie headers on upgrade responses, dropping all but the last cookie.

#14598Open

Report a non-zero exit code when Wrangler is killed by a signal (e.g. OOM)

Wrangler exited 0 after an OOM kill, so CI pipelines treated crashed builds as successful.

Prisma ↗

Next-gen Node.js and TypeScript ORM (formerly prisma/prisma)

#29426Merged

Serialize unknown driver adapter error cause as JSON

Replaced a bare template literal with safeJsonStringify so unknown cause.kind no longer renders as [object Object] in production errors.

#29468Open

Serialize concurrent pg transaction queries

Added a mutex to adapter-pg so concurrent queries within a transaction are serialized correctly instead of racing.

#29469Open

Add TIMETZ_ARRAY (OID 1270) type mapping to adapter-pg

TIMETZ_ARRAY was missing from the OID type map, causing unhandled type errors on arrays of time-with-timezone columns.

#29470Open

Handle MariaDB SET column type in adapter-mariadb

mapColumnType and mapRow now correctly handle SET columns instead of throwing on an unrecognized type.

#29472Open

Restore meta.target on P2002/P2011 errors in the JS driver-adapter path

Unique and null constraint errors lost meta.target when routed through JS adapters; now populated correctly from the error context.

#29481Open

Fix TIMESTAMPTZ reads/writes on non-UTC servers in adapter-pg

Timestamps were shifted by the server timezone offset; now always converted to/from UTC regardless of server locale.

#29482Open

Enforce UTC timezone unconditionally in adapter-mariadb

The MariaDB adapter respected the server timezone, causing silent datetime drift on non-UTC database hosts.

#29484Open

Fix P2011 NullConstraintViolation column extraction in adapter-pg

Was using a fragile regex to extract the column name; now reads error.column directly from the pg error object.

#29491Open

Fix socket errors bypassing isDriverError in adapter-mssql

MSSQL socket errors were thrown raw instead of being wrapped as a typed MappedError, breaking error-handling consumers.

Vercel Storage ↗

Vercel Blob and Edge Config SDKs

Lexical ↗

Extensible text editor framework by Meta

Stripe.js ↗

Stripe's browser-side JavaScript library