Skip to content

Tags: danfma/metano

Tags

v2.6.1

Toggle v2.6.1's commit message
chore(release): 2.6.1 [skip ci]

## 2.6.1

_2026-06-29_

### πŸ› Bug Fixes

* import symbols referenced only inside nested record variants ([02c224c](02c224c))

v2.6.0

Toggle v2.6.0's commit message
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))

v2.5.0

Toggle v2.5.0's commit message
chore(release): 2.5.0 [skip ci]

## 2.5.0

_2026-06-23_

### ✨ Features

* add configurable isolated subpath-import alias for generated packages ([a0856f2](a0856f2))

v2.4.0

Toggle v2.4.0's commit message
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))

v2.3.0

Toggle v2.3.0's commit message
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))

v2.2.0

Toggle v2.2.0's commit message
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))

v2.1.0

Toggle v2.1.0's commit message
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))

v2.0.0

Toggle v2.0.0's commit message
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))

v1.1.0

Toggle v1.1.0's commit message
chore(release): 1.1.0 [skip ci]

## 1.1.0

_2026-05-01_

### ✨ Features

* **compiler:** enhance type checking, import handling, and constructor extraction ([0ec6081](0ec6081))

v1.0.3

Toggle v1.0.3's commit message
chore(release): 1.0.3 [skip ci]

## 1.0.3

_2026-04-30_

### πŸ› Bug Fixes

* **release:** use RELEASE_TAG instead of GITHUB_REF_NAME for npm publish ([13db217](13db217))