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.
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.
View PR ↗
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.
View PR ↗
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.
View PR ↗
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.
View PR ↗
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.
View PR ↗
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.
View PR ↗
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.
View PR ↗
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.
View PR ↗
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.
View PR ↗
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.
View PR ↗
Make hotkeys work with Caps Lock enabled
`wrangler dev` hotkeys compared raw key case, so nothing responded while Caps Lock was on.
View PR ↗
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.
View PR ↗
vitest-pool-workers: reset() now clears ratelimit binding state between tests
Rate-limit binding state leaked across tests, causing order-dependent failures.
View PR ↗
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.
View PR ↗
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.
View PR ↗
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.
View PR ↗
Prisma ↗
Next-gen Node.js and TypeScript ORM (formerly prisma/prisma)
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.
View PR ↗
Serialize concurrent pg transaction queries
Added a mutex to adapter-pg so concurrent queries within a transaction are serialized correctly instead of racing.
View PR ↗
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.
View PR ↗
Handle MariaDB SET column type in adapter-mariadb
mapColumnType and mapRow now correctly handle SET columns instead of throwing on an unrecognized type.
View PR ↗
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.
View PR ↗
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.
View PR ↗
Enforce UTC timezone unconditionally in adapter-mariadb
The MariaDB adapter respected the server timezone, causing silent datetime drift on non-UTC database hosts.
View PR ↗
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.
View PR ↗
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.
View PR ↗
Vercel Storage ↗
Vercel Blob and Edge Config SDKs
Resolve multipart deadlock on empty streams, fix TransformStream backpressure
resolve() was never called when a stream produced no parts, permanently blocking the upload promise with no error or timeout.
View PR ↗
Enforce maximumSizeInBytes client-side for multipart uploads
Oversized multipart uploads were only rejected server-side after transfer; now checked before the first part is sent.
View PR ↗
Normalize contentDisposition to the original filename when addRandomSuffix is enabled
The download filename kept the random suffix; now preserves the caller's original filename in the Content-Disposition header.
View PR ↗
Include HTTP status in the error when client token retrieval fails
Token-retrieval failures surfaced a generic message with no status code, making them hard to diagnose.
View PR ↗
Respect server pathname in handleUpload
handleUpload ignored a server-provided pathname, so uploads landed at the client-supplied path instead.
View PR ↗
Infer callback URL from Node request headers
The upload callback URL had to be passed explicitly; now inferred from x-forwarded headers when omitted.
View PR ↗
Lexical ↗
Extensible text editor framework by Meta
Prevent false onChange event on initial autofocus with code highlighting
hasSeenFirstChangeRef was not initialized before HistoryPlugin mounted, causing a spurious onChange on every autofocus.
View PR ↗
Preserve pasted paragraph alignment when merging into the destination block
Pasting rich text lost block-level alignment; fixed by reading the source node's format before insertion.
View PR ↗
Prevent crash converting a HeadingNode selection to a code block
formatCode() called $findParagraphParent, which only handles ParagraphNode, throwing when the selection was inside a HeadingNode.
View PR ↗
Stripe.js ↗
Stripe's browser-side JavaScript library