Changelog

All notable changes to tsgonest.

Bug Fixes

  • Model validation error paths as JS expressions (codegen) (212d9db)

Features

  • Let @in declare the parameter name, warn when none is available (#241) (analyzer) (6e5f9a3)

[0.17.1] - 2026-08-02

Bug Fixes

  • Resolve @in JSDoc through imported decorator aliases (analyzer) (601804d)

[0.17.0] - 2026-07-22

Bug Fixes

  • Resolve open issues #210, #223, #224, #225, #226, #227 (7984265)
  • Support NestJS >=11.1.20 SSE disconnect source (platform-bun) (d8af3d4)
  • Escape MDX-hostile characters in the docs changelog page (release) (eb6bdd8)

Documentation

  • Add just _patch-collections to the update-tsgo command steps (2e0235c)

Features

  • Replace fsnotify with typescript-go's fswatch backend (watcher) (3e0a6f1)
  • Harden against external clean and add crash watchdog (dev) (8aed12e)

Internal

  • Update typescript-go submodule to 01cbcdd864 (7903ee8)
  • Apply dependabot bumps and clear all audit findings (deps) (e977ffb)

Refactoring

  • Use upstream Type.Alias() getter, drop alias field shim (analyzer) (a7f3250)

Testing

  • Remove unit tests made redundant by the compiler or mocks (a80ed28)

[0.16.0] - 2026-07-16

Features

  • Branded constraints on arrays + multipart boolean coverage (#221) (analyzer) (72bd1ee)

Internal

  • Update typescript-go submodule to 9ea7f6b36e (#220) (4fb3f17)

[0.15.0] - 2026-05-14

Bug Fixes

  • Wrap npx via cmd /C on Windows and use forward-slash glob (sdkgen) (f556d5c)
  • Normalize backslashes in cross-companion import paths (#140) (codegen) (033069a)
  • Compute relative import for Validate<typeof fn> validator path (codegen) (7cb8f90)
  • Windows recipe correctness and launcher binary discovery (#158) (justfile,launcher) (832063f)
  • Treat transient stat errors as skip-this-poll, not delete (configpoller) (e257223)
  • Support ** glob patterns in --assets via doublestar (build) (51c00d4)
  • Refuse to clean Windows drive roots and other dangerous paths (build) (be45860)
  • Retry rename on transient failure and invalidate stale cache (buildcache) (59fc483)
  • Suppress deleteOutDir on watch rebuilds to fix node-startup race (dev) (8833abf)
  • Normalize separators in shouldSkipPath for cross-shell compat (watcher) (7a395c6)
  • Resolve symlinks/junctions at watch root (watcher) (2cf7b69)
  • Detect watched-root rename/remove and surface error (watcher) (87edd7e)
  • Synthesize Create events for files in atomically-populated subdirs (watcher) (8298e1c)
  • Track Running() via atomic.Bool to eliminate data race (runner) (bd52e8b)
  • Reap suspended child and clear r.cmd on Start error paths (runner) (df91796)
  • Skip 5s wait when CTRL_BREAK signal can't be delivered (runner) (e26f2d1)
  • Join rebuild goroutine and gate Restart on shutdown (dev) (7324aad)
  • Pick shell by GOOS for --exec to support Windows (dev) (c976767)
  • Normalize entryPoint separators before dist/ prefix check (dev) (481bee6)
  • Allocate r.done after error-prone setup to prevent Wait() hang (runner) (a05a7f1)
  • Try CREATE_BREAKAWAY_FROM_JOB and fall back when denied (runner) (7cdb2ba)
  • Surface ResumeThread failures in resumeProcessThreads (runner) (e907eca)
  • Hoist stdin scanner above runDevLoop to prevent goroutine leak (dev) (26fa704)
  • Case-insensitive extension and skip-dir comparisons (#145 #147 #149) (watcher,build) (d866b75)
  • Release r.mu during 5s graceful-stop wait (runner) (af126c8)
  • Recover from fsnotify overflow via snapshot diff and polling fallback (watcher) (98d9437)
  • Serialize rs restart through change channel to prevent double restart (dev) (9c402ba)
  • Use symlink-resolved paths in roots map (watcher) (f4fbbe7)
  • Poll watch roots on Windows to detect rename/remove (watcher) (ff6223c)
  • Await spawned dev process exit before deleting temp dir (e2e) (4ced031)
  • Quote pnpm filter pattern with double quotes for Windows (#203) (scripts) (0f1b038)
  • Chdir to opts.cwd before globbing source files (#205) (migrate) (78dc094)
  • Propagate JSDoc on type-alias declarations through imports and arrays (analyzer) (9bcc4fc)
  • Emit per-element constraint checks in array iteration loops (codegen) (113adf2)
  • Runtime constraint checks for named scalar @Param/@Query params (rewrite) (a295ab8)

Internal

  • Gofmt (a576095)
  • Run e2e suite on windows-latest + fix harness path (#151) (4411d8a)
  • Add macos-latest to test matrix (d65809f)
  • Drop runner-tests job (94fdeac)
  • Drop benchmark workflow (b346862)
  • Depend on CI workflow + add concurrency guard (release) (78bee9c)
  • Call CI as a reusable workflow from release.yml (8b78f32)
  • Run e2e suite on windows-latest + fix harness path (#151) (#172) (f5f6e75)
  • Update typescript-go submodule to 092b34f534 (9e1b862)
  • Add .gitattributes for cross-platform line endings (713e3c4)
  • Scope dependabot to consumer-facing packages (deps) (df1398f)
  • Use pnpm --dir for e2e to avoid PowerShell && incompatibility (justfile) (b3af939)
  • Use pnpm --dir for e2e to fix Windows CI parser error (justfile) (6d9d5aa)
  • Bump SchemaVersion to 2 for new analysis output format (cache) (3251e1b)

Testing

  • Add KNOWN ISSUE doc-tests for the May 2026 dev/watch audit (#142) (f05cb00)
  • Normalize path separators for Windows (buildcache,pathalias) (8e4a9ed)
  • Build integration fixture once via globalSetup with stderr capture (e2e) (539e520)
  • Invoke tsc via node tsc.js to avoid Windows .cmd spawn restriction (#204) (sdk) (fb5eb2b)

[0.14.0] - 2026-04-27

Bug Fixes

  • Locate chained-assignment classes and surface load-bearing rewrite misses (rewrite) (1c77253)

Internal

  • Update typescript-go submodule to 515d036f9 (#115) (cd73b09)

[0.13.5] - 2026-04-15

Bug Fixes

  • Emit local helpers for recursive refs without companion files (codegen) (db7c083)

[0.13.4] - 2026-04-10

Bug Fixes

  • Compose @Body() in @FormDataBody so NestJS binds the parameter (runtime) (ce5a05c)

[0.13.3] - 2026-04-10

Bug Fixes

  • Use mapped type constraint in buildFormData for interface compatibility (sdkgen) (181397e)

[0.13.2] - 2026-04-09

Bug Fixes

  • Emit imports for cross-companion recursive type references (#98) (codegen) (8ed70ab)
  • Handle ended streams in FormDataInterceptor on Node 24 (#99) (runtime) (5047566)

[0.13.1] - 2026-04-09

Bug Fixes

  • Use web-native FormData parsing on Node 20+, fixing multer stream issues on Node 24 (f76e779)

[0.13.0] - 2026-04-09

Bug Fixes

  • Address PR review — config wiring, enum dedup, null guard, e2e fixes (766912a)
  • Pretty-print SDK warnings, fix e2e race, return warnings from Generate (7c54850)

Features

  • Add nullable, readOnly, discriminated unions, tuples, TS enums, and multipart improvements (sdkgen) (9ac8321)

Internal

  • Update typescript-go submodule to 2a5e1cf9fe (d700f0e)

[0.12.3] - 2026-04-07

Bug Fixes

  • SDK client crashes on empty response body and network errors (#89) (#90) (c967602)

[0.12.2] - 2026-04-06

Bug Fixes

  • Watcher restart loop, suppress anonymous type arg warnings, bump typescript-go (#87) (fc3d6e6)

[0.12.1] - 2026-04-03

Bug Fixes

  • Bump fumadocs deps to fix build (#75) (docs) (3cc118e)
  • Nullable return types crash serializer at runtime (#80) (71e68fa)

Internal

  • Bump typescript-go to 281b3d072 (14 upstream commits) (18ec3d4)

[0.12.0] - 2026-03-31

Features

  • Multi-output OpenAPI, controller filtering, and tsgonest openapi subcommand (#72) (c68a59d)
  • tsgonest check subcommand, per-output SDK, remove legacy --input, require rootDir (#73) (1e7ff3e)

Internal

  • Bump tsdown to 0.21.7 across workspace (#74) (e7f64cd)

[0.11.2] - 2026-03-31

Bug Fixes

  • Update integration fixture for moduleResolution deprecation (3959c73)

Internal

  • Bump typescript-go + deps + actions + clarify CLAUDE.md (#70) (ea0bb44)

[0.11.1] - 2026-03-30

Bug Fixes

[0.11.0] - 2026-03-19

Bug Fixes

  • Fix substring false positives in SDK import collection (sdkgen) (b51b360)
  • Auto-inject TsgonestSseInterceptor for all @EventStream routes (sse) (192e125)

Features

  • Multipart/form-data file upload support across all platforms (748ae02)
  • Add SSE (Server-Sent Events) streaming support (platform-bun) (710ad43)

Performance

  • Skip Headers allocation for common responses (platform-bun) (c31e61c)
  • Optimize route matching and body parser (platform-bun) (e4c7f0a)
  • Use Bun.serve() native C++ radix-tree routing (platform-bun) (9bbd70f)

[0.10.0] - 2026-03-18

Bug Fixes

  • Detect stale .tsbuildinfo and honor deleteOutDir config (build) (de546e3)
  • Gate bug-demo tests behind RUNNER_BUG_TESTS env var (test) (8f45970)
  • Fix process leaks and improve cross-platform process management (runner) (5a7f512)
  • Use CREATE_SUSPENDED to eliminate job assignment race (runner/windows) (6f3a1cc)
  • Address PR review issues across dev, runner, and platform-bun (d945471)
  • Create fresh program for stale buildinfo recovery (build) (8ed85af)

Features

  • Restart full dev loop on config file changes (dev) (e9a7c5d)
  • Add Bun runtime support, @tsgonest/platform-bun adapter, and HTTP benchmarks (e17b495)

Internal

  • Update all project dependencies to latest (deps) (35ab98e)

Performance

  • Use UpdateProgram for single-file rebuilds (dev) (21d71a1)
  • Use fsnotify for event-driven file watching (watcher) (654dfa2)

Testing

  • Add process leak and cross-platform tests (runner) (2ae86c0)

[0.9.3] - 2026-03-17

Bug Fixes

  • Guard undefined before wrapping optional array query params (codegen) (4082348)
  • Include type arguments in resolveInnerTypeName for generic type aliases (a383ed4)

Documentation

  • Rewrite README with competitive positioning, full feature reference, and sponsor section (5b5489d)

[0.9.2] - 2026-03-09

Testing

  • Accept second-based timing output (e2e) (88412f3)

[0.9.1] - 2026-03-09

Bug Fixes

  • Emit query param coercion before type checks + add array coercion (codegen) (bc521f9)

Features

  • Update documentation for tsgonest features and improvements (docs) (dfe44a2)
  • Pretty build output with colored status icons and structured warnings (c46c557)

[0.9.0] - 2026-03-06

Bug Fixes

  • Build TypeScript packages before e2e tests (ci) (7cdf312)

Features

  • Controller inheritance, parameter defaults, query dedup, StreamableFile (e9af4b8)

Internal

  • Update typescript-go submodule to track upstream API changes (997dc15)

[0.8.8] - 2026-03-04

Bug Fixes

  • Multi-controller rewrite — per-class method lookup and scoped interceptor injection (928d323)
  • Scope interceptor deduplication sentinel to current __decorate statement (3b8deeb)

[0.8.7] - 2026-03-03

Bug Fixes

  • Generic interface return types collapsing to base name in OpenAPI (4bb3b9b)

[0.8.6] - 2026-03-03

Bug Fixes

  • CJS controller rewrite — chained assignment detection and "use strict" ordering (#27) (bd1e49e)

[0.8.5] - 2026-03-02

Bug Fixes

  • Windows path normalization, --clean deletes .tsbuildinfo, and overlapping edit guard (e7ec923)

[0.8.4] - 2026-03-02

Refactoring

  • AST-based controller rewriter, typed constraints, sdkgen determinism (#24) (cf77743)

[0.8.3] - 2026-03-02

Features

  • Response hooks, error extraction, timeout, throwOnError, single-version re-exports (sdkgen) (ae442f9)

Internal

  • Gitignore platform binary files in packages/cli-* (68a44b1)

[0.8.2] - 2026-03-02

Bug Fixes

  • Config defineConfig() double-default, SSE typed events, FormData body, and rewriter hardening (#23) (11cf5b9)

[0.8.1] - 2026-03-01

Features

  • Primitive return serialization, SDK prefix support, dev mode improvements, and request overrides (#17) (#22) (e107d5d)

[0.8.0] - 2026-02-28

Bug Fixes

  • Update typescript-go submodule to match shim API changes (#15) (3f82e49)
  • Update typescript-go to latest upstream, add Dependabot (#16) (00e65f7)

Features

  • Improve migration command and add migration docs (#13) (81c7a10)
  • Add @Returns decorator, transforms.exclude, responseTypeCheck, and analyzer improvements (#14) (08cec33)

[0.7.5] - 2026-02-27

Bug Fixes

  • Resolve branded type degradation, breadth limit exhaustion, and self-referential type handling (#12) (48cf1a1)

[0.7.4] - 2026-02-27

Documentation

  • Fix factual errors, add Rules & Limitations page, improve tone (#10) (5cdb3e9)

Features

  • Add @EventStream() for type-safe Server-Sent Events (#11) (bf8d5af)

[0.7.3] - 2026-02-26

Bug Fixes

  • Harden codegen against edge-case security vectors (#9) (d15bf63)

[0.7.2] - 2026-02-26

Bug Fixes

  • Resolve SDK fingerprint collision for inline paginated response types (#8) (ffa249d)

[0.7.1] - 2026-02-26

Bug Fixes

  • Resolve OpenAPI generic type collapse and named array double-nesting (#7) (65afe54)

[0.7.0] - 2026-02-26

Features

  • Support @All(), array paths, @Header(), @Redirect(), and @Version(string[]) (#6) (89c6e5e)

[0.6.3] - 2026-02-26

Bug Fixes

  • Quote and escape non-identifier property names in SDK generation (#5) (badca0c)

[0.6.2] - 2026-02-26

Bug Fixes

  • Handle @public JSDoc on controllers and quote SDK property names (#4) (6feba36)

[0.6.1] - 2026-02-26

Bug Fixes

  • Synthesize missing path params and use method name for x-tsgonest-method (1cf5024)
  • Update e2e test for qualified standalone function names (04e9b67)

[0.6.0] - 2026-02-25

Features

  • OpenAPI feature parity — operationId, security, tags, descriptions, extensions, and more (da184f8)

[0.5.2] - 2026-02-25

Bug Fixes

  • Harden codegen emit for JS edge cases and move build cache into outDir (#3) (7837b7b)

[0.5.1] - 2026-02-25

Bug Fixes

  • Warn and skip unsupported runtime controller routes (27249e7)
  • Warn and skip unsupported runtime controller routes (#2) (5d8c3de)

[0.5.0] - 2026-02-24

Bug Fixes

  • Apply coercion after type registry population, auto-async non-async methods with return transforms (33cfe78)

Features

  • Add @Query/@Param/@Headers validation, coercion, import alias resolution, and companion reduction (6c97993)
  • @Query/@Param/@Headers validation, coercion, and async return handling (#1) (776d760)

[0.4.4] - 2026-02-24

Bug Fixes

  • Make branded type phantom properties optional, fix migrate gaps (567b63a)

[0.4.3] - 2026-02-24

Bug Fixes

  • Add bin field to platform packages for execute permissions (537d864)
  • Resolve migrate.cjs from node_modules tree for npx compatibility (9c97fc0)

[0.4.2] - 2026-02-24

Bug Fixes

  • Restore Node.js launcher script removed by overly broad gitignore (ebbcba2)

[0.4.1] - 2026-02-24

Bug Fixes

  • Set up Node.js before Go unit tests (ci) (a874093)
  • Fix 3 failing tests and gitignore packages/core/bin/ (e2e) (5bc9e5a)
  • Build migrate.cjs before e2e tests, gate release on tests (ci) (10589ac)
  • Infinity/NaN serialization, idn-hostname regex, StandardSchema generics, intersection codegen, and more (f8c13dd)

[0.4.0] - 2026-02-24

Features

  • Add migrate command, FormDataBody decorator, SDK generation, and controller rewriting (939b571)

[0.3.0] - 2026-02-23

Bug Fixes

  • Fix code block styling and navigation meta.json (docs) (cc1e253)

Documentation

  • Rewrite documentation site, add LICENSE and README (82fa06b)
  • Update performance claims with measured benchmark data (55f5052)

Features

  • Optimize serialization performance and add union serialization support (b5dd739)
  • Add TypeScript config file support (tsgonest.config.ts) (a5bfd63)
  • Add benchmark suite (validation, serialization, compilation) (80e40c1)

[0.2.2] - 2026-02-23

Bug Fixes

  • Update lockfile for cli-win32-arm64 package (397585d)

Features

  • Add Alpine/musl support (static Linux binaries) and Windows ARM64 platform, rewrite docs (7e5f615)

[0.2.1] - 2026-02-23

Bug Fixes

  • Replace postinstall binary copy with Node.js launcher script, fix version ldflags (5944993)

[0.2.0] - 2026-02-23

Bug Fixes

  • Add e2e to pnpm workspace so vitest is installed in CI (ci) (f365886)

Features

  • Incremental compilation, diagnostics, build cache, @Returns decorator, companion consolidation, dev mode, cleanup (f524a95)

[0.1.1] - 2026-02-22

Bug Fixes

  • Rename binaries with platform suffix for GitHub Release assets (release) (d87b13d)

[0.1.0] - 2026-02-22

On this page

Bug FixesFeatures[0.17.1] - 2026-08-02Bug Fixes[0.17.0] - 2026-07-22Bug FixesDocumentationFeaturesInternalRefactoringTesting[0.16.0] - 2026-07-16FeaturesInternal[0.15.0] - 2026-05-14Bug FixesInternalTesting[0.14.0] - 2026-04-27Bug FixesInternal[0.13.5] - 2026-04-15Bug Fixes[0.13.4] - 2026-04-10Bug Fixes[0.13.3] - 2026-04-10Bug Fixes[0.13.2] - 2026-04-09Bug Fixes[0.13.1] - 2026-04-09Bug Fixes[0.13.0] - 2026-04-09Bug FixesFeaturesInternal[0.12.3] - 2026-04-07Bug Fixes[0.12.2] - 2026-04-06Bug Fixes[0.12.1] - 2026-04-03Bug FixesInternal[0.12.0] - 2026-03-31FeaturesInternal[0.11.2] - 2026-03-31Bug FixesInternal[0.11.1] - 2026-03-30Bug Fixes[0.11.0] - 2026-03-19Bug FixesFeaturesPerformance[0.10.0] - 2026-03-18Bug FixesFeaturesInternalPerformanceTesting[0.9.3] - 2026-03-17Bug FixesDocumentation[0.9.2] - 2026-03-09Testing[0.9.1] - 2026-03-09Bug FixesFeatures[0.9.0] - 2026-03-06Bug FixesFeaturesInternal[0.8.8] - 2026-03-04Bug Fixes[0.8.7] - 2026-03-03Bug Fixes[0.8.6] - 2026-03-03Bug Fixes[0.8.5] - 2026-03-02Bug Fixes[0.8.4] - 2026-03-02Refactoring[0.8.3] - 2026-03-02FeaturesInternal[0.8.2] - 2026-03-02Bug Fixes[0.8.1] - 2026-03-01Features[0.8.0] - 2026-02-28Bug FixesFeatures[0.7.5] - 2026-02-27Bug Fixes[0.7.4] - 2026-02-27DocumentationFeatures[0.7.3] - 2026-02-26Bug Fixes[0.7.2] - 2026-02-26Bug Fixes[0.7.1] - 2026-02-26Bug Fixes[0.7.0] - 2026-02-26Features[0.6.3] - 2026-02-26Bug Fixes[0.6.2] - 2026-02-26Bug Fixes[0.6.1] - 2026-02-26Bug Fixes[0.6.0] - 2026-02-25Features[0.5.2] - 2026-02-25Bug Fixes[0.5.1] - 2026-02-25Bug Fixes[0.5.0] - 2026-02-24Bug FixesFeatures[0.4.4] - 2026-02-24Bug Fixes[0.4.3] - 2026-02-24Bug Fixes[0.4.2] - 2026-02-24Bug Fixes[0.4.1] - 2026-02-24Bug Fixes[0.4.0] - 2026-02-24Features[0.3.0] - 2026-02-23Bug FixesDocumentationFeatures[0.2.2] - 2026-02-23Bug FixesFeatures[0.2.1] - 2026-02-23Bug Fixes[0.2.0] - 2026-02-23Bug FixesFeatures[0.1.1] - 2026-02-22Bug Fixes[0.1.0] - 2026-02-22