Skip to content

v0.246.0

Choose a tag to compare

@github-actions github-actions released this 06 Jul 08:25
e52c2cc

0.246.0 (2026-07-06)

Features

  • emit-cs: adoptable application-layer handlers, Mapperly mapping & an ASP.NET api layer (#1036) (fd9b705)
  • emit-java: add a dependency-free Java 17 emitter target (#858) (#1069) (c30d837)
  • emit-kt: add a Kotlin emitter target (#1066) (#1092) (014c412)
  • emit-kt: defensively copy collection members in value objects (#1110) (#1114) (e3a3cc3)
  • emit-rust: demand-driven value-object add/subtract for plain value +/- value (#887) (#1062) (991b24e)
  • emit-ts: truncate Int fields toward zero on scalar multiply/divide (#938) (#1032) (ab1d8f4)
  • studio: add a syntax-tree visualizer panel to the right rail (#890) (#1085) (b32612c)
  • studio: add an ESLint gate enforcing frontend safety conventions (#978) (#993) (f676bc8)
  • studio: clarify + recover the empty (non-Koine) clone outcome (#1017) (#1058) (f714939)
  • studio: preserve syntax-tree roving focus across panel refetch (#1097) (#1100) (ec33ba6)
  • studio: recreate the full-bleed Home with resume card, dense recents & Clone (#1005) (#1006) (aca2b5d)
  • studio: sticky ancestors band for the virtualized syntax-tree panel (#1106) (#1108) (424ba5d)
  • studio: type-check the koine-ui⇄koine-studio DOM-id contract via shared constants (#979) (#999) (83bd203)
  • studio: virtualize the syntax-tree panel + raise serializer MaxDepth (#1098) (#1101) (ad2c262)

Bug Fixes

  • deps: update dependency @anthropic-ai/sdk to ^0.110.0 (#1013) (1593d89)
  • emit-kt: backtick-escape keyword package segments in Kotlin output (#1109) (#1111) (39b70a9)
  • emit-php: emit computed Decimal defaults as valid PHP in const-required positions (#971) (#1025) (e999d64)
  • emit-php: re-box a bare Int-literal default on a Decimal member (#1030) (#1035) (78fe2d6)
  • emit-rust: lift impl Add over Option for optional numeric fields in sum-folded value objects (#970) (#1021) (16441dc)
  • emit-rust: route a quantity's plain +/- through unit-checked add/sub (#1068) (#1080) (9a3e02c)
  • semantics: catch division by zero nested in conditional/coalesce/let member defaults (#1048) (#1049) (09e1083)
  • semantics: fire KOI0217 for narrowing on stored constant defaults, not just derived members (#974) (#1020) (6145507)
  • semantics: infer a conditional as its branches' common numeric type so KOI0217 catches a narrowing else (#975) (#1033) (3360648)
  • semantics: rebuild KOI1606's zero-divisor walker on ExprWalker for exhaustive Expr coverage (#1056) (#1070) (b1e742b)
  • semantics: reject division by zero in a constant-foldable default expression (#1031) (#1045) (cea5948)
  • studio: bail in-flight surface loaders after inspectorController dispose (#1002) (#1029) (a7217e3)
  • studio: bail refreshContextList() after inspectorController dispose() so a resolving glossary fetch can't write a torn-down controller's state (#1037) (#1047) (c6af3ae)
  • studio: guard applyFileEdit dirty-clear against a mid-write keystroke (#1008) (#1050) (619eafc)
  • studio: guard applyFileEdit's didSave against a stale write (#1081) (#1087) (8da8b61)
  • studio: guard saveActive/saveAllDirty didSave against a mid-write buffer switch (#1009) (#1052) (d1916a3)
  • studio: guard saveAllDirty's didSave against a write failure on the active buffer (#1055) (#1078) (cfe04e4)
  • studio: guard shared-workspace import against a concurrent Home workspace swap (#1046) (#1083) (7b3f710)
  • studio: re-dispatch the queued Home start-intent when the desktop LSP fails to start (#973) (#1038) (7ed2e04)
  • studio: release leaked store subscriptions and timers on shell teardown (#980) (#1000) (ecce6d2)
  • studio: select the clicked syntax-tree node on the first click (#1116) (#1118) (5d776d7)
  • studio: tag recents with the folder's effective emit language, not the stale store value (#1015) (#1067) (34142ff)
  • studio: tag the clone flow's recent entry with its own effective emit language (#1072) (#1074) (8b9388d)
  • tests: drain TestSupport siblings' stdout/stderr concurrently (#1053) (#1054) (546bdc3)
  • tests: read RunProcess stdout/stderr concurrently to avoid a pipe-buffer deadlock (#1034) (#1051) (6639bd4)