v12.3.0 (2026-10-27)
Features
platform-node- #18063 feat(node): add a native node http platform adapter (@kamilmysliwiec)
Bug fixes
common- #18289 fix(common): report the detected file type in file type errors (@DenisCDev)
- #18246 fix(common): avoid throwing for arrow prototype constructors (@fengxueweilai)
- #18220 fix(common): abort the response when a streamable file fails midway (@thekhegay)
core- #18276 fix(core): run middleware once for routes that differ only in version (@OmBhandwaldar)
- #18262 fix(core): tolerate sse request sockets without tuning methods (@SnowingFox)
- #18252 fix(core): read the url protocol from the server (@thekhegay)
- #18254 fix(core): name the array and index of undefined module entries (@thekhegay)
- #18235 fix(core): discover classes by each of their discovery decorators (@OmBhandwaldar)
- #18216 fix(core): read the abort on error option of the app being called (@thekhegay)
- #18209 fix(core): let middleware exclusions cover prefix-excluded routes (@thekhegay)
- #18210 fix(core): honor abortOnError passed to select() (@Cayan)
- #18215 fix(core): subscribe to handler observables from other rxjs copies (@koreahghg)
- #18201 fix(core): read a quoted media type version in the middleware exclusions (@hktitof)
- #18200 fix(core): resolve request-scoped forward refs for concurrent requests (@maxymlyskov)
common,microservices,platform-ws- #18285 fix(ws,microservices): load packages where bundlers can see them (@kamilmysliwiec)
common,microservices,websockets- #18272 fix(common): keep one route param per argument in an overriding method (@maxymlyskov)
platform-express- #18264 fix(express): map unsupported multipart content types to 415 (@seren-wib)
- #18234 fix(express): end a head response for an empty streamable file (@spokodev)
- #18232 fix(express): leave 5xx http-errors errors unmapped so they are logged (@kamilmysliwiec)
- #18214 fix(platform-express): map http-errors exceptions to HttpException in Express adapter (@okxint)
- #18199 fix(express): send the standard body for an exception wrapping an error (@KAPUIST)
platform-fastify- #18253 fix(fastify): send object error bodies with a json content type (@maxymlyskov)
- #18240 fix(fastify): leave 5xx fastify errors unmapped so they are logged (@thekhegay)
- #18239 fix(fastify): map 4xx http-errors errors to http exceptions (@kamilmysliwiec)
- #18226 fix(fastify): listen on a file descriptor (@thekhegay)
- #18217 fix(fastify): run cors before nest middleware (@kamilmysliwiec)
core,platform-express,platform-fastify,platform-socket.io,platform-ws,websockets- #18251 fix(core,express,fastify,ws,socket.io): load adapters with an older core (@thekhegay)
microservices- #18250 fix(microservices): re-arm the redis retries on a new listen (@hktitof)
- #18255 fix(microservices): report a nats connection that gave up reconnecting (@thekhegay)
- #18249 fix(microservices): do not emit a trailing null to kafka requesters (@thekhegay)
- #18256 fix(microservices): let a retriable exception keep travelling (@hktitof)
- #18238 fix(microservices): retry the tcp server again after close and listen (@kamilmysliwiec)
- #18223 fix(microservices): clear the tcp retry timer when a new listen starts (@hktitof)
- #18221 fix(microservices): honor mqtt topic filter boundaries (@fabric0de)
- #18229 fix(microservices): let only the exact message handler answer a request (@maxymlyskov)
- #18211 fix(microservices): fail the request when its last reply cannot be sent (@maxymlyskov)
- #18206 fix(microservices): reset the tcp retry attempts on each listen (@hktitof)
- #18204 fix(microservices): count every failed rmq connection attempt (@maxymlyskov)
- #18197 fix(microservices): send the record headers of nats as message headers (@hktitof)
Dependencies
platform-express- #18268 fix(deps): update dependency multer to v2.5.0 [security] (@renovate[bot])
common- #18257 fix(deps): update dependency file-type to v22.2.0 (@kamilmysliwiec)
platform-fastify- #18219 fix(deps): update dependency @fastify/middie to v9.3.6 (@renovate[bot])
Committers: 16
- Abdellatif Anaflous (@hktitof)
- Daniel Pinto (@Cayan)
- Denis Scarabelli (@DenisCDev)
- Junpei Zhang (@pei711)
- Kamil Mysliwiec (@kamilmysliwiec)
- Luke Son (@KAPUIST)
- Maksym Lyskov (@maxymlyskov)
- Om Bhandwaldar (@OmBhandwaldar)
- Roman Khegay (@thekhegay)
- Spoko Dev (@spokodev)
- @fengxueweilai
- @okxint
- snowingfox (@SnowingFox)
- yooseong (@seren-wib)
- 김정현 (Kim JungHyeon) (@fabric0de)
- 한국 (@koreahghg)