Tags: danfma/metano
Tags
chore(release): 2.6.0 [skip ci] ## 2.6.0 _2026-06-25_ ### β¨ Features * emit full-namespace TypeScript layout with self-cleaning incremental builds ([dd125ef](dd125ef)) ### π Bug Fixes * harden orphan pruning against null manifest and directory-read failures ([6272918](6272918)) * prune stale package.json exports when the last transpilable type is removed ([78eaaf6](78eaaf6)) ### π Documentation * mark sample-regeneration tasks complete in feature 005 tasks ([8411df2](8411df2)) * reconcile baseline matrix and cross-package docs with full-namespace layout ([5fe9c1c](5fe9c1c))
chore(release): 2.4.0 [skip ci] ## 2.4.0 _2026-06-03_ ### β¨ Features * add JS-interop primitives ([JsTuple], [JsCallable], tuple deconstruction) ([9dab074](9dab074)) * add JSX/TSX code generation from C# components ([6e1279c](6e1279c)) * **build:** incremental skip + ItemGroup args for MetanoTranspile ([#230](#230)) ([b531c94](b531c94)) * **compiler:** copy <MetanoAsset> static assets to generated output ([#199](#199)) ([23078f6](23078f6)) ### π Bug Fixes * **build:** consolidate Metano.Build targets + add MetanoEnabled opt-out ([#230](#230)) ([618eede](618eede)) * **compiler:** address PR review findings on asset copy ([#199](#199)) ([a0805cb](a0805cb)) * correct JSX codegen lambda arity, text escaping, prop-rewrite coverage, and cross-package component imports ([d04ef79](d04ef79)), closes [#2](#2) * handle IrLinqChain in JSX prop-reference rewrite and regenerate samples ([eb1cccc](eb1cccc)), closes [#2](#2) * stop branded records from requesting an unused HashCode helper import ([e8692d2](e8692d2)) ### β»οΈ Refactor * **annotations:** hygiene sweep across Metano.Annotations ([#229](#229)) ([54c82a1](54c82a1)) * **compiler:** consolidate fold helpers + Dart duplication ([#225](#225)) ([ced1abb](ced1abb)) * **compiler:** dispatch JSON descriptor build on JsonPropertyKind enum ([#231](#231)) ([f2efda6](f2efda6)) * **compiler:** extract [Inline] cascade arm into thin rewriter ([#221](#221)) ([5cfe60b](5cfe60b)) * **compiler:** extract Emit/Import template lowering into rewriter ([#221](#221)) ([b996868](b996868)) * **compiler:** extract extension-method cascade arm into rewriter ([#221](#221)) ([ae84f53](ae84f53)) * **compiler:** extract invocation cascade into rewriter chain ([#221](#221)) ([460b9fb](460b9fb)) * **compiler:** extract named helpers per naming convention ([e8bb9c2](e8bb9c2)) * **compiler:** extract TypeTransformer Parallel.For body ([#222](#222)) ([ad20534](ad20534)) * **compiler:** hoist ImportCollector skip-list into a HashSet ([#224](#224)) ([195dedf](195dedf)) * **compiler:** preserve concrete export kind in per-group cache ([#220](#220)) ([fd29f23](fd29f23)) * **compiler:** split IrExpressionExtractor into themed partials ([#221](#221)) ([22d691b](22d691b)) * **compiler:** split IrToTsClassBridge into thematic partial files ([#223](#223)) ([9c52ee8](9c52ee8)) * **compiler:** split IrToTsClassEmitter.Transform into named phases ([#223](#223)) ([4ff44fd](4ff44fd)) * **compiler:** split TypeTransformer.BuildTypeStatements + drains ([#222](#222)) ([5ef3b6f](5ef3b6f)) * **compiler:** unify diagnostics sink discipline across TS + Dart ([#226](#226)) ([15a9d52](15a9d52)), closes [#218](#218) * migrate SolidJS signal binding onto JS-interop primitives ([6189a5e](6189a5e)) ### π Documentation * **compiler:** refresh stale caching/annotation docstrings ([#232](#232)) ([f0fc47b](f0fc47b)) * ratify constitution and add baseline spec with multi-target evolution roadmap ([6af0d36](6af0d36)) * reconcile plan/tasks signal-lowering with shipped feature-003 primitives ([7bc2667](7bc2667)) * retire old-spec after baseline parity sign-off ([2ed272f](2ed272f))
chore(release): 2.3.0 [skip ci] ## 2.3.0 _2026-05-12_ ### β¨ Features * **compiler:** --watch mode ([#18](#18)) ([8fff5a7](8fff5a7)), closes [#21](#21) [#21](#21) [#211](#211) [#213](#213) [#214](#214) * **compiler:** add [StrictUnionGuard] for shape-level union dispatch ([#154](#154)) ([f09fc40](f09fc40)), closes [#88](#88) * **compiler:** broaden MS0024 trigger to non-LINQ [Queryable] callsites ([#218](#218)) ([7c47a44](7c47a44)) * **compiler:** emit qualified type refs in queryable expression trees ([eae3507](eae3507)), closes [#203](#203) * **compiler:** extend queryable walker with new + nested lambda ([#206](#206)) ([e633d2f](e633d2f)) * **compiler:** fold static readonly + pure-arithmetic captures ([#208](#208)) ([0a7d251](0a7d251)) * **compiler:** fuse adjacent LINQ stages at build time ([#207](#207)) ([bf48474](bf48474)) * **compiler:** group closure hasher for PR 3b ([8b0c270](8b0c270)) * **compiler:** hoist pure repeated subtrees out of captured ExprTrees ([#209](#209)) ([46ad6da](46ad6da)) * **compiler:** incremental cache MVP β whole-build short-circuit (ADR-0021) ([9eef85a](9eef85a)), closes [#21](#21) [#18](#18) [#18](#18) [#21](#21) [#211](#211) [#213](#213) [#18](#18) * **compiler:** lower extension indexers via item$get / item$set helpers ([#156](#156)) ([7bfe7dd](7bfe7dd)) * **compiler:** lower extension property setters via $set helpers ([#156](#156)) ([6768eb5](6768eb5)) * **compiler:** lower static extension members to module helpers ([#156](#156)) ([457d2b5](457d2b5)) * **compiler:** MS0024 hard error for explicit queryable opt-in ([#205](#205)) ([95ca446](95ca446)) * **compiler:** parallelize TypeTransformer per file group (ADR-0020) ([b37c6d2](b37c6d2)), closes [#21](#21) [#18](#18) [#211](#211) [#21](#21) [#211](#211) [#21](#21) [#18](#18) * **compiler:** per-group skip integration (PR 3c) ([6dd58b6](6dd58b6)), closes [#21](#21) [#18](#18) [#21](#21) [#18](#18) [#211](#211) [#213](#213) [#214](#214) [#215](#215) [#216](#216) * **compiler:** per-type signature hasher for PR 3b ([590a5c6](590a5c6)) * **compiler:** type-level dependency graph backbone for [#18](#18) + [#21](#21) ([fcf999f](fcf999f)) * **runtime:** migrate array provider to getStages + document linq slot ([#200](#200)) ([b5f0101](b5f0101)) * **runtime:** publish ExprTree visitor API for queryable providers ([f77fa13](f77fa13)), closes [#198](#198) ### π Bug Fixes * address PR [#204](#204) review + add pre-push targets/ sync check ([6815397](6815397)), closes [C#-style](https://github.com/danfma/C/issues/-style) * **compiler,runtime:** record equals() routes value-wrapper fields through valueEquals ([#202](#202)) ([3fd0659](3fd0659)) * **compiler:** gate per-group cache writes on disk-touching runs ([9776c13](9776c13)), closes [#217](#217) * **compiler:** harden per-group cache against config drift, tampering, and error runs ([669755f](669755f)), closes [#217](#217) * **compiler:** make parallel TypeTransformer's shared sinks actually thread-safe ([4147f83](4147f83)), closes [#213](#213) * **compiler:** stabilise IrTypeSignatureHasher cache key (gemini review) ([e2a246c](e2a246c)), closes [#216](#216) * **compiler:** tighten incremental cache key + harden cache reads ([47baaed](47baaed)), closes [#214](#214) * **compiler:** tighten WatchHost debounce + sync per Copilot review ([6e89b62](6e89b62)), closes [#215](#215) * **compiler:** tighten WatchHost rename + error handling, unsubscribe Ctrl+C handler ([695002b](695002b)), closes [#215](#215) * **compiler:** verify WatchHost review findings already landed ([9212907](9212907)) * **dependency-graph:** address PR [#211](#211) review findings ([4fce313](4fce313)) * **reorg:** correct cref namespaces + harden pre-push gate against build races ([7b88091](7b88091)) ### β»οΈ Refactor * **compiler:** route ExprTree member/method casing through target-aware policy ([#210](#210)) ([21f9713](21f9713)) * **compiler:** split Metano.Compiler folders by concern (ADR-0019) ([a16aafb](a16aafb)) * **namespaces:** nest Metano.{Dart,TypeScript}.* under Metano.Compiler.* ([6276672](6276672)) ### π Documentation * ADR-0023 β per-group skip foundation (PR 3b setup) ([ecb81db](ecb81db)) * **dependency-graph:** scope statement to signature surface only ([ed921d5](ed921d5)) * **plans:** seed reorganization brief ([208cb95](208cb95)) * **roadmap:** editorial charter so docs/roadmap stays focused ([abf809d](abf809d))
chore(release): 2.2.0 [skip ci] ## 2.2.0 _2026-05-07_ ### β¨ Features * **compiler,ts:** Phase A β lower LINQ chains to pipe form ([#20](#20)) ([73cd8f5](73cd8f5)), closes [#31](#31) * **compiler,ts:** Phase B β capture lambda body as IR expression tree for IQueryable ([#31](#31)) ([d18acf3](d18acf3)) * **metano-runtime,annotations:** add ExprTree slot + [Queryable] attribute ([#20](#20) β [#31](#31) prep) ([15c0157](15c0157)) * **metano-runtime,compiler:** replace legacy LINQ with pipe runtime + groupBy + 32 overloads ([#20](#20)) ([1462c04](1462c04)) * **metano-runtime:** linq-pipe operators wrap generator behind Symbol.iterator ([#20](#20)) ([ed81252](ed81252)) * **metano-runtime:** prototype pipe-based LINQ runtime ([#20](#20)) ([92715a5](92715a5)) * **sample,runtime,compiler:** SQLite EF-lite provider via captured expression trees ([#198](#198), [#200](#200)) ([64ad51b](64ad51b)) * **sample:** demo IQueryable provider over arrays via Phase B trees ([#31](#31)) ([59b3ebb](59b3ebb)), closes [#196](#196) * **sample:** log emitted SQL via optional logger callback ([86b1592](86b1592)) ### π Bug Fixes * **compiler,sample:** address PR [#197](#197) review findings ([d17b86d](d17b86d)) * **compiler,ts:** address PR [#196](#196) review findings ([3ae80a3](3ae80a3)) * **metano-runtime,compiler:** address PR [#195](#195) review findings ([6652f9f](6652f9f)) * **metano-runtime:** export Grouping and GroupByOp types from linq barrel ([4ed1ae5](4ed1ae5)) * **sample,compiler:** address PR [#201](#201) review findings ([a49efe8](a49efe8)) * **sample:** biome compliance + main.ts entry for bun run . ([c0272bb](c0272bb)), closes [C#-emitted](https://github.com/danfma/C/issues/-emitted) ### β»οΈ Refactor * **metano-runtime:** linq-pipe operators return tagged descriptors ([#20](#20)) ([47bbe7c](47bbe7c)) * **metano-runtime:** nest queryable meta + add ExprCapture ([#20](#20) β [#31](#31)) ([7e635eb](7e635eb)), closes [#5](#5) [#6](#6) ### π Documentation * **linq:** fix stale linq-pipe paths + expression field name in PR [#195](#195) review ([f39ede1](f39ede1))
chore(release): 2.1.0 [skip ci] ## 2.1.0 _2026-05-02_ ### β¨ Features * **cli:** add --dry-run flag ([#19](#19)) ([d035bba](d035bba)) * **ts:** support direct recursion in [Inline] methods via named function expression ([#194](#194)) ([04f5813](04f5813)) ### π Bug Fixes * **compiler:** normalize args at [Emit] template call site ([#192](#192)) ([221f54d](221f54d)) * **compiler:** propagate [Name(target, ...)] through method/interface type references ([#170](#170)) ([4cc97be](4cc97be)) * **import-collector:** register [NoContainer] method-group references for import ([#179](#179)) ([b88595e](b88595e)) * **import-collector:** scan referenced assemblies for [NoContainer] exports ([#178](#178)) ([f171da5](f171da5)) * **ts:** drop parameter-property modifiers on dispatcher overload sigs + rest impl ([#25](#25)) ([d5e2f6d](d5e2f6d)) * **ts:** split record positional params into field + rest ctor parameter ([#152](#152)) ([dbf3fc3](dbf3fc3)), closes [#145](#145) ### β»οΈ Refactor * **import-collector:** bundle walker buckets into ImportCollectionSink ([#192](#192)) ([9a942d2](9a942d2)) ### π Documentation * **annotations:** pin [External] + [Import] resolution recipe ([#190](#190)) ([285ceb2](285ceb2))
chore(release): 2.0.0 [skip ci] ## 2.0.0 _2026-05-01_ ### β BREAKING CHANGES * **annotations:** [NoEmit] and [NoTranspile] are removed. Replace any [NoEmit] usage with [Ignore] (semantics carry over). Replace any [NoTranspile] with [Ignore] when the type is .NET-only, or with [External] when it is an ambient TypeScript shape that transpiled code legitimately references. Member-level [NoTranspile] without a replacement should switch to member-level [Ignore]. Compiler changes: - ValidateIgnoreReferences now skips members marked [Ignore] (an [Ignore] helper that takes an [Ignore] marker stays silent). - Member-level reference validation: invocations and member access on [Ignore] methods/properties/fields/events from transpilable code raise MS0013 with the member's owner.member name in the message. - IrTypeRefMapper threads the active TargetLanguage through HasIgnore so a type ignored only for the active backend is correctly marked IsIgnored=true in the IR (and IsTranspilable=false), keeping downstream paths like lambda parameter lowering and runtime guard generation consistent with the per-target contract. - IR field IrNamedTypeSemantics.IsNoEmit renamed to IsIgnored. - DiagnosticCodes.NoEmitReferencedByTranspiledCode renamed to IgnoreReferencedByTranspiledCode (the MS0013 code itself is unchanged). Tests: - New IgnoreDotNetOnlyTests pin the MS0013 contract on every reference position (parameter, return, field type, body, generic argument, per-target gating). - Former NoEmitTranspileTests renamed to ExternalAmbientTranspileTests; the ambient cases all reference [External] now, matching the new semantics. - Test methods disambiguated (Ignore_ExcludesTypeFromAssemblyWideTranspile, Ignore_OverridesExplicitTranspileAttribute, IgnorePerTarget_*). ### β¨ Features * **annotations:** collapse [NoEmit]/[NoTranspile]/[Ignore] into single [Ignore] ([06b5e43](06b5e43)) ### π Bug Fixes * **ts:** align import-type form with Biome's expectation ([5714185](5714185))
PreviousNext