This release keeps dependencies and maintenance posture current for teams operating this tool.
Published 11d
Build & Package
✓ No known CVEs patched
✓ No known CVEs patched in this version
Topics
ai
ast
cli
codegraph
compiler
compilers
+14 more
eslint
esm
lint
linter
loader
nodejs
plugin
runtime
toolchain
transformer
typescript
typescript-go
typia
unplugin
Summary
AI summaryBroad release touches 🐞 Bug Fixes, 🚀 Features, 🏎 Performance, and https://github.com/samchon/ttsc/commit/8054105c5.
Full changelog
🚀 Features
- graph:
- Stamp a sacred result directive as the first IResult property - by @samchon and Claude Opus 4.8 (1M context) (80541)
- Honest result directive + structured next on the IOutput wrapper - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/395 (c4ce8)
- The audit says the server checked it, not only that the compiler resolved it - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/400 (c5e11)
- Let the caller name the machinery, and stop asking the question twice - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/529 (fab53)
- lint:
- Align ban-ts-comment with upstream defaults and directives - by @samchon and Claude Opus 4.8 (1M context) (2a4dd)
- Preserve project identity across rule lifecycles - by @samchon in https://github.com/samchon/ttsc/issues/437 (002f6)
- Implement unicorn/consistent-template-literal-escape raw-source port - by @samchon and Claude Opus 4.8 (1M context) (20e22)
- Implement unicorn/import-style per-module import policies - by @samchon and Claude Opus 4.8 (1M context) (ad401)
- Implement unicorn/consistent-destructuring (work in progress) - by @samchon and Claude Opus 4.8 (1M context) (c0b31)
- Implement unicorn/filename-case (work in progress) - by @samchon and Claude Opus 4.8 (1M context) (c3a8c)
- Enforce published boundary dependency contracts - by @samchon (2c402)
- Complete boundaries/dependencies upstream semantics - by @samchon and Claude Opus 4.8 (1M context) (2f187)
- Implement unicorn/string-content (work in progress) - by @samchon and Claude Opus 4.8 (1M context) (c8eb8)
- Implement unicorn/no-unused-properties - by @samchon (aaed0)
- Implement unicorn/no-unnecessary-polyfills (work in progress) - by @samchon and Claude Opus 4.8 (1M context) (edd19)
- Implement unicorn/isolated-functions (work in progress) - by @samchon and Claude Opus 4.8 (1M context) (059ba)
- Implement unicorn/isolated-functions - by @samchon and Claude Opus 4.8 (1M context) (773fe)
- Add regex AST + optimizer scaffolding for unicorn/better-regex (work in progress) - by @samchon and Claude Opus 4.8 (1M context) (8803f)
- Implement unicorn/better-regex rule - by @samchon and Claude Opus 4.8 (1M context) (57125)
- shim:
- Expose Checker_getPropertyNameForKnownSymbolName for well-known-symbol lookups - by @samchon and Claude Opus 4.8 (1M context) (ded6a)
- website:
- Rework the graph benchmark charts - by @samchon and Claude Opus 4.8 (1M context) (b8e46)
🐞 Bug Fixes
- bench:
- One cell per measurement, not two - by @samchon (a5501)
- build:
- Derive rollup externals from package.json so unplugin/metro build on Node 22 - by @samchon and Claude Opus 4.8 (1M context) (b84aa)
- factory:
- Give ArrowFunction assignment-level precedence in TsPrinter - by @samchon and Claude Opus 4.8 (1M context) (f1a57)
- Escape template literal text and honor rawText when printing - by @samchon and Claude Opus 4.8 (1M context) (d3677)
- Share parse-back helper in test suite internals - by @samchon and Claude Opus 4.8 (1M context) (f684a)
- Drop trailing comma after rest and trailing elision in broken lists - by @samchon and Claude Opus 4.8 (1M context) (17d19)
- Correct metacharacter distribution note in multi-span test doc - by @samchon and Claude Opus 4.8 (1M context) (61560)
- Pin only-rest single-element boundary in params break test - by @samchon and Claude Opus 4.8 (1M context) (bcad7)
- Parenthesize new target with a call in the member chain - by @samchon and Claude Opus 4.8 (1M context) (f0217)
- graph:
- Drop the unreachable aliases pipeline from details and trace - by @samchon and Claude Opus 4.8 (1M context) (97be7)
- Drop the never-produced diagnostics from the wire schema - by @samchon and Claude Opus 4.8 (1M context) (58dcb)
- Rewrite the MCP instruction concise, keep the result directive - by @samchon and Claude Opus 4.8 (1M context) (f3f36)
- State the source-until-edit graph invariant explicitly - by @samchon and Claude Opus 4.8 (1M context) (99202)
- Drop the next/guide re-call machinery, let the directive end the call - by @samchon and Claude Opus 4.8 (1M context) (4bbf4)
- Reframe truncated so a complete result never invites a re-call - by @samchon and Claude Opus 4.8 (1M context) (500fd)
- Stop dedicated over-drilling and clear tour-flow noise - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/398 (331ee)
- Make the tour tell the truth about its own coverage, and publish the grid it earned - by @samchon in https://github.com/samchon/ttsc/issues/405 (d4ed9)
- Make the question the user's words, not the model's - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/432 (6f86b)
- Follow the call into the implementation it dispatches to - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/440 (e59e5)
- Make the question the user's words, not the model's - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/548 (de9e6)
- Take the benchmark's own symbols out of the tour's schema - by @samchon in https://github.com/samchon/ttsc/issues/550 (f734c)
- Rank the tour on three facts, not on English - by @samchon in https://github.com/samchon/ttsc/issues/559 (c1ee8)
- Resolve binary from the target project and make the result audit honest - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/698 (12690)
- lint:
- Exempt backslash-digit escapes from no-useless-escape in strings and templates - by @samchon and Claude Opus 4.8 (1M context) (42d96)
- Require a crossed newline before stripping statement semicolons - by @samchon and Claude Opus 4.8 (1M context) (217ce)
- Reword digit-exemption test comment to avoid mid-word line breaks - by @samchon and Claude Opus 4.8 (1M context) (a7fc9)
- Treat a trailing-comma arrow parameter as parenthesized - by @samchon and Claude Opus 4.8 (1M context) (6a1e9)
- Refuse sort-imports merges that produce invalid import syntax - by @samchon and Claude Opus 4.8 (1M context) (8cfff)
- Pin ASCII upper-boundary neighbor of the digit exemption - by @samchon and Claude Opus 4.8 (1M context) (7405a)
- Decline no-var autofix on block-scope escape and loop-closure capture - by @samchon and Claude Opus 4.8 (1M context) (26981)
- Pin arrow-parens acting past a post-paren list comma - by @samchon and Claude Opus 4.8 (1M context) (dd1a4)
- Document namespace and comment refusal in renderMergedDecl - by @samchon and Claude Opus 4.8 (1M context) (31022)
- Keep non-string sub-chains whole in prefer-template autofix - by @samchon and Claude Opus 4.8 (1M context) (f8bd4)
- Decline no-var autofix for declarations under with statements - by @samchon and Claude Opus 4.8 (1M context) (bacfc)
- Make prefer-template containment gate paren-transparent - by @samchon and Claude Opus 4.8 (1M context) (6a02f)
- Treat class field initializers as capture boundaries in no-var gate - by @samchon and Claude Opus 4.8 (1M context) (84c40)
- Decline no-var autofix for bindings named let or static - by @samchon and Claude Opus 4.8 (1M context) (b3433)
- Parenthesize no-extra-boolean-cast splices by precedence and decline comment-lossy fixes - by @samchon and Claude Opus 4.8 (1M context) (c06f2)
- Align no-unused-expressions with default ESLint semantics - by @samchon and Claude Opus 4.8 (1M context) (8dde2)
- Cover variable and property literal annotations in prefer-as-const - by @samchon and Claude Opus 4.8 (1M context) (5b83c)
- Descend through expression parens in prefer-as-const matching - by @samchon and Claude Opus 4.8 (1M context) (93de0)
- Align no-duplicate-imports with ESLint mergeability and options - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/419 (92f56)
- Make no-var inspect loop-header declaration lists - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/422 (e9b59)
- Preserve no-unused-expressions parity on current master - by @samchon (56128)
- Decide no-fallthrough by completion analysis and marker comments - by @samchon and Claude Opus 4.8 (1M context) (aa2e3)
- Preserve binding identity in prefer-const - by @samchon (5eea6)
- Make prefer-as-const cover variable and property annotations - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/426 (d4fd5)
- Cover async iteration and resource management in await-thenable - by @samchon and Claude Opus 4.8 (1M context) (a9419)
- Preserve explicit switch coverage semantics - by @samchon (f3cde)
- Make no-misused-promises follow contextual types - by @samchon in https://github.com/samchon/ttsc/issues/443 (0534c)
- Align no-floating-promises with upstream defaults - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/442 (cfd3b)
- Prevent reusable hosts from reinitializing contributors - by @samchon (b732a)
- Align directive lengths with Unicode graphemes - by @samchon (75ca9)
- Keep grapheme generation version-coupled - by @samchon (ddd02)
- Prevent unreachable catches from reopening terminated cases - by @samchon (ea732)
- Trust parser lexical goals for comment directives - by @samchon (c3966)
- Preserve runtime heritage while excluding type syntax - by @samchon (5b3cd)
- Make editor formatting reproducible - by @samchon (114c9)
- Honor complete VS Code selector identity - by @samchon (7e9f5)
- Replace duplicate override properties - by @samchon (c1ce5)
- Normalize every valid selector group - by @samchon (aee60)
- Prevent unsafe prefer-at recommendations - by @samchon (2666b)
- Preserve module evaluation semantics during import formatting - by @samchon (eb3be)
- Prevent false inner-declaration reports in strict code - by @samchon (eefcb)
- Prevent function writes from crossing binding scopes - by @samchon (532a5)
- Keep rule options inside matching config entries - by @samchon (fd04f)
- Match consistent-function-scoping loop chains, class heads, and report ranges to upstream - by @samchon and Claude Opus 4.8 (1M context) (97e51)
- Close the import-style config before the filename-case autocomplete case - by @samchon and Claude Opus 4.8 (1M context) (8396e)
- Match unicorn/string-content escaping to current upstream - by @samchon and Claude Opus 4.8 (1M context) (a8e03)
- Name the escaped rune in no-useless-escape messages - by @samchon and Claude Opus 4.8 (1M context) (7ed5f)
- Decide regexp/no-useless-flag on the regexp AST - by @samchon and Claude Opus 4.8 (1M context) (b5d97)
- Canonicalize every letter of a number literal - by @samchon and Claude Opus 4.8 (1M context) (16036)
- Bind unicorn/consistent-existence-index-check to const indexes - by @samchon and Claude Opus 4.8 (1M context) (3f1cb)
- Stop unicorn/better-regex constructor fixes corrupting source - by @samchon and Claude Opus 4.8 (1M context) (d15e7)
- Suppress value-changing unicorn/prefer-string-raw reports - by @samchon and Claude Opus 4.8 (1M context) (34529)
- Inspect interpolated template segments in the unicorn escape rules - by @samchon and Claude Opus 4.8 (1M context) (f55a6)
- Report valid-typeof only on equality comparisons - by @samchon and Claude Opus 4.8 (1M context) (2db19)
- Scan unicorn escapes with backslash parity and bounded digit runs - by @samchon and Claude Opus 4.8 (1M context) (612cd)
- Exercise prefer-string-raw template delimiters and correct its scope note - by @samchon and Claude Opus 4.8 (1M context) (abd41)
- Tighten the escape-scan helper placement and doc comments - by @samchon and Claude Opus 4.8 (1M context) (63997)
- Name the conservative regexp/no-useless-flag nodes and cover them - by @samchon and Claude Opus 4.8 (1M context) (41068)
- Match every
*Errorcallee in unicorn/throw-new-error - by @samchon and Claude Opus 4.8 (1M context) (c4c37) - Keep trailing comma off rest in destructuring assignment targets - by @samchon and Claude Opus 4.8 (1M context) (a61dc)
- Resolve unicorn/prefer-optional-catch-binding via checker scope - by @samchon and Claude Opus 4.8 (1M context) (fa4be)
- Resolve no-dupe-keys computed keys to their static value - by @samchon and Claude Opus 4.8 (1M context) (d3cca)
- Detect all no-extend-native prototype-extension shapes - by @samchon and Claude Opus 4.8 (1M context) (823b2)
- Make no-unnecessary-qualifier type-aware - by @samchon and Claude Opus 4.8 (1M context) (9a168)
- Honor endOfLine in the three string-builder format reflows - by @samchon and Claude Opus 4.8 (1M context) (a3bb2)
- Apply multi-edit fixes per finding atomically - by @samchon and Claude Opus 4.8 (1M context) (c38df)
- Keep LSP commands correct through symlinks and junctions - by @samchon and Claude Opus 4.8 (1M context) (d08b2)
- Safe autofixes for dot-notation, comment-eating fixers, no-return-assign parens - by @samchon and Claude Opus 4.8 (1M context) (79741)
- Align unicorn/text-encoding-identifier-case with upstream - by @samchon and Claude Opus 4.8 (1M context) (95ce9)
- Honor // no default marker and skip empty switches in default-case - by @samchon and Claude Opus 4.8 (1M context) (4139b)
- Make guard-for-in structural to match ESLint - by @samchon and Claude Opus 4.8 (1M context) (03ca2)
- Align unicorn/no-typeof-undefined with upstream - by @samchon and Claude Opus 4.8 (1M context) (d0896)
- Check untagged literals nested in a tagged template for useless escapes - by @samchon and Claude Opus 4.8 (1M context) (2879c)
- Honor no-else-return allowElseIf, restrict terminator to return - by @samchon and Claude Opus 4.8 (1M context) (7b1d7)
- Keep v-flag character-class escapes in no-useless-escape - by @samchon and Claude Opus 4.8 (1M context) (dc872)
- Unicorn/prefer-number-properties parity for options, filters, message, and fix - by @samchon and Claude Opus 4.8 (1M context) (9a932)
- Publish the unicorn/no-unnecessary-polyfills targets option type - by @samchon and Claude Opus 4.8 (1M context) (27a66)
- Honor ESLint default groups and options in no-mixed-operators - by @samchon and Claude Opus 4.8 (1M context) (62111)
- Grouped-accessor-pairs inspects object literals and honors order option - by @samchon and Claude Opus 4.8 (1M context) (cf0ee)
- Preserve checker pool for type-aware rules - by @samchon (3e542)
- Reject optionless rule payloads - by @samchon (e2961)
- Restore TSX corpus coverage - by @samchon (b360e)
- metro:
- Preserve upstream transformer initialization failures - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/690 (fd337)
- paths:
- Preserve JSON extensions when aliases are rewritten to emitted files - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/691 (2799f)
- platform:
- Coherent linux-arm baseline and release tag/version validation - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/692 (32b57)
- playground:
- Surface plugin failures and harden dependency and sandbox discovery - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/699 (40788)
- plugins:
- Anchor config discovery at the launcher-provided project root - by @samchon and Claude Opus 4.8 (1M context) (e09de)
- test:
- ttsc:
- Make the plugin config anchor an explicit opt-in option - by @samchon and Claude Opus 4.8 (1M context) (0e54e)
- Quote go.work paths so workspace spaces don't break source builds - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/397 (a95ff)
- Distinguish released source-plugin locks from abandoned locks - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/430 (707dd)
- Fence source-plugin lock generations - by @samchon in https://github.com/samchon/ttsc/issues/460 (72575)
- Decode preceding rune in plugin-call boundary guard - by @samchon and Claude Opus 4.8 (1M context) (27181)
- Exclude persistent plugin lock dirs from corpus cache-entry counts - by @samchon and Claude Opus 4.8 (1M context) (17b8b)
- Stop classifying a BOM'd file dirty on didOpen - by @samchon and Claude Opus 4.8 (1M context) (b08db)
- Stop the graph SymbolProvider from hijacking tsgo's documentSymbol/references - by @samchon and Claude Opus 4.8 (1M context) (9ce5e)
- Reject malformed resident-transform replies and stop generated-flag drift - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/697 (25fed)
- Honor compiler context env in source-plugin build and clean - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/694 (8b2f5)
- Derive emitted plugin aliases without a suffix ceiling - by @samchon in https://github.com/samchon/ttsc/issues/707 (f3012)
- ttsx:
- Inline served source maps so coverage and stacks map to source - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/353 and https://github.com/samchon/ttsc/issues/390 (19d22)
- Harden launcher runtime cache, exports, Node range, and CLI flag adjacency - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/696 (adafc)
- unplugin:
- vscode:
- Launch windows command shims with verbatim arguments - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/689 (e8727)
- wasm:
- Keep boot and MemFS invariants consistent - by @samchon and Claude Opus 4.8 (1M context) in https://github.com/samchon/ttsc/issues/693 (aabc3)
- website:
🏎 Performance
- lint:
- Bound parser-aware comment scan resets - by @samchon (aad04)
- Add a per-file memo hook to the rule engine - by @samchon and Claude Opus 4.8 (1M context) (53cfd)
- Memoize the security binding table once per file - by @samchon and Claude Opus 4.8 (1M context) (eabe6)
- Collect jsx-no-undef declared names once per file - by @samchon and Claude Opus 4.8 (1M context) (90113)
- Let syntactic contributor rules opt out of the checker-pool pin - by @samchon and Claude Opus 4.8 (1M context) (2e9bd)
- Cache option-derived regexes compiled per node - by @samchon and Claude Opus 4.8 (1M context) (c5fff)
View changes on GitHub
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Ttsc
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]