Changelog
All notable changes to tsgonest.
Bug Fixes
- Model validation error paths as JS expressions (codegen) (
212d9db)
Features
[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
Internal
[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
[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
[0.12.2] - 2026-04-06
Bug Fixes
[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 openapisubcommand (#72) (c68a59d) tsgonest checksubcommand, per-output SDK, remove legacy --input, require rootDir (#73) (1e7ff3e)
Internal
[0.11.2] - 2026-03-31
Bug Fixes
- Update integration fixture for moduleResolution deprecation (
3959c73)
Internal
[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
[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
[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
Features
[0.7.3] - 2026-02-26
Bug Fixes
[0.7.2] - 2026-02-26
Bug Fixes
[0.7.1] - 2026-02-26
Bug Fixes
[0.7.0] - 2026-02-26
Features
[0.6.3] - 2026-02-26
Bug Fixes
[0.6.2] - 2026-02-26
Bug Fixes
[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
[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)