Open Source
Contribuciones open source
Tres pull requests mergeados en proyectos de terceros. No soy maintainer ni colaborador habitual: soy contribuidor. Acá están el problema, el arreglo y la review de cada uno, con el link al PR público por si querés leer el diff.
vitest-dev/vitest
PR #11360
Mergeado el 29 de septiembre de 2026
17.200 estrellas
El problema
Los pools de vm corrían el optimizador de dependencias de Vite sobre todo el index.html. Si una dependencia descubierta así no se podía empaquetar, la corrida moría con exit 1 con todos los tests pasando. Es el peor tipo de falla: no dice que un test está mal, dice que el proceso se cayó.
El arreglo
El handler configEnvironment hacía un return temprano para el environment de vm antes de aplicar resolveOptimizerConfig, así que ese environment conservaba el default de browser de Vite. Rastreé hasta el commit que introdujo el problema y el fix se mergeó. El maintainer agregó nits de redacción y aclaró el fixture antes de aprobarlo.
Verificación y review
RED → GREEN: sin el fix fallan exactamente vmThreads y vmForks; con el fix pasan los cuatro pools.
Ver el PR #11360 en GitHubfastify/fastify-cookie
PR #377
Mergeado el 27 de octubre de 2026
301 estrellas
El problema
reply.setCookie() aceptaba la opción encode y la ignoraba: no la reenviaba al serializer de cookie@2, así que no había forma de customizar cómo se codifica el valor. Falla silenciosa: la opción entra, no hace nada.
El arreglo
Separé encode del resto de los atributos y lo pasé como opciones de stringifySetCookie. Se mergeó con dos aprobaciones de maintainers y salió publicado en @fastify/cookie 11.1.5, minutos después del merge.
Verificación y review
Había un PR anterior con el mismo objetivo. En vez de cerrar el mío, expliqué en qué se distinguía; los maintainers mergearon los dos y el código que sobrevive es el mío. El PR tardó 32,6 días en mergearse.
Ver el PR #377 en GitHubvitest-dev/vitest
PR #11781
Mergeado el 30 de octubre de 2026
17.200 estrellas
El problema
Desde 5.0.4 el cache de módulos en disco está prendido por defecto. Si su directorio no se podía crear (filesystem de solo lectura, o un proyecto que pertenece a otro usuario), el mkdirSync tiraba una excepción y el módulo que se estaba transformando fallaba con un error que no tenía nada que ver con el test.
El arreglo
Medí que el fallo golpeaba al primer módulo de cada config, no a todos los archivos como decía el reporte. En vez de propagar el error, el cache degrada: reporta el directorio inutilizable una vez y devuelve el mismo valor nulo que ya significaba «este módulo no se cachea».
Verificación y review
El maintainer pidió cambios: quería desactivar la feature entera para no calcular hashes al vicio. Mi primera versión atrapaba el error donde vivía el mkdir, o sea tarde. Moví el chequeo al principio del recorrido: no lee, no hashea, no escribe. El diseño final es más chico que el mío y mejor.
Ver el PR #11781 en GitHubPor qué esto se puede verificar
Cada tarjeta linkea el pull request público en GitHub: ahí se ve el diff, quién lo aprobó, quién lo mergeó y qué se discutió en la review. No listo PRs abiertos ni rechazados, porque un PR abierto es una intención y todavía puede cerrarse sin mergear.