Skip to content

v3.2.0

Choose a tag to compare

@github-actions github-actions released this 30 Sep 22:11
· 320 commits to main since this release

What's Changed

  • build(deps): bump hono from 4.13.0 to 4.13.7 by @dependabot[bot] in #1140
  • build(deps-dev): bump the majors group across 1 directory with 3 updates by @dependabot[bot] in #1137
  • fix: unblock Vite 8 / vitest 5 / happy-dom 20.14 (Dependabot #1142 #1143 #1145) by @codetalcott in #1146
  • build(deps): bump the minor-and-patch group across 1 directory with 28 updates by @dependabot[bot] in #1145
  • build(deps-dev): bump the majors group across 1 directory with 5 updates by @dependabot[bot] in #1147
  • fix(deps): patch transitive js-yaml and smol-toml DoS advisories by @codetalcott in #1148
  • build(deps-dev): bump the minor-and-patch group in /protocol/typescript with 2 updates by @dependabot[bot] in #1151
  • feat(htmx-vocab): Contact.app coverage in ja/es/pt/ko, vocab aliases, gated regeneration by @codetalcott in #1150
  • build(deps-dev): bump vitest from 5.0.0 to 5.0.1 by @dependabot[bot] in #1154
  • build(deps-dev): bump vitepress from 2.0.0-alpha.18 to 2.0.0-alpha.20 by @dependabot[bot] in #1153
  • build(deps-dev): bump prettier from 3.9.6 to 3.9.8 by @dependabot[bot] in #1157
  • build(deps): bump the minor-and-patch group across 1 directory with 8 updates by @dependabot[bot] in #1161
  • feat(htmx-vocab): ja/es names for every attribute the book's listings use by @codetalcott in #1160
  • feat(semantic): render and score event-handler modifiers in every language by @codetalcott in #1162
  • fix(mcp): validators report what the parsers actually did by @codetalcott in #1163
  • feat(semantic): of-paths and pseudo-commands survive every language (hxi18n Arc 3) by @codetalcott in #1164
  • fix(core): three upstream-valid handler forms from Hypermedia Systems (hxi18n Arc 4) by @codetalcott in #1165
  • fix(htmx): camelCase event names survive an attribute name (hxi18n Arc 5) by @codetalcott in #1166
  • fix(patterns): verify every corpus entry against both engines — and gate it by @codetalcott in #1167
  • feat(testing-framework): gate the English reference parse (en-reference-preservation) by @codetalcott in #1168
  • fix(semantic): capture a parenthesized group as a role value by @codetalcott in #1169
  • fix(core): four upstream-valid forms that compiled clean and failed at run time by @codetalcott in #1170
  • fix(core): blocks close at end of input, morph … to, and condition loops that never evaluated by @codetalcott in #1171
  • fix(core): render … with name: value, and beep! as an expression (gaps 3 and 4) by @codetalcott in #1172
  • fix(core): transition takes upstream's owners, several properties, from and using (gap 5) by @codetalcott in #1173
  • fix(patterns-reference): search options, MCP search, LLM examples and corpus hygiene (PR 5) by @codetalcott in #1174
  • fix(semantic): English parses that changed a program's meaning (en-reference burn-down, PR 6) by @codetalcott in #1175
  • fix(semantic): the parser builds a loop node — loops keep their extent, and non-English loops run (en-reference burn-down, PR 7) by @codetalcott in #1176
  • fix(aot-compiler): every AOT-compiled loop was while (true) — the converters read core's loop slots (PR 7b) by @codetalcott in #1177
  • fix: loops and ifs through toCoreAST / evalLSE run on core (PR 7c) by @codetalcott in #1178
  • fix(semantic): a handler head's or-events and filters survive translation and run (PR 8a) by @codetalcott in #1179
  • fix(semantic): a handler head keeps its event parameters; a behavior's init ends at the next handler (PR 8b) by @codetalcott in #1180
  • fix(semantic): a translated wait for waits instead of throwing (PR 8c) by @codetalcott in #1181
  • fix(semantic): a wait for keeps its params, alternatives and source (PR 8d) by @codetalcott in #1182
  • fix(semantic): native event names in a head's params and a wait (PR 8e) by @codetalcott in #1183
  • fix(semantic): a behavior keeps its handlers past a block head of several words (PR 8f) by @codetalcott in #1184
  • fix(semantic): an else-if chain shares one end, as upstream reads it (PR 8g) by @codetalcott in #1185
  • fix(semantic): a behavior renders its init block before its handlers (PR 9) by @codetalcott in #1186
  • fix(semantic): hide and show keep their with-strategy (PR 10) by @codetalcott in #1187
  • fix(semantic): a query keeps its in-scope (PR 11) by @codetalcott in #1188
  • test(testing-framework): the before target is an article (PR 12) by @codetalcott in #1189
  • fix(semantic): an eventsource/socket header keeps its URL (PR 13) by @codetalcott in #1190
  • fix(semantic): fetch keeps its do-not-throw (PR 14) by @codetalcott in #1191
  • fix: event-once is on first click, the one form both engines run once (PR 15) by @codetalcott in #1192
  • fix(semantic): tell keeps to show, and a translated tell runs its body (PR 16) by @codetalcott in #1193
  • fix(semantic): a loop keeps its index variable (PR 17) by @codetalcott in #1194
  • fix(semantic): a naked ${…} URL keeps interpolating (PR 18) by @codetalcott in #1195
  • fix(semantic): put's destination takes a variable (PR 19) by @codetalcott in #1196
  • fix(semantic): a fetch's response type renders as written (PR 20) by @codetalcott in #1197
  • fix(semantic): a loop that holds an if keeps its tail and its literal-first condition (PR 21) by @codetalcott in #1198
  • fix(semantic): a command acts on a variable's element, and a command's own on stays in its handler (PR 22) by @codetalcott in #1199
  • fix(semantic): an element or an array as a value — set el to #panel, set x to [1, 2], and arrays on the direct path (PR 23) by @codetalcott in #1200
  • fix(aot-compiler): a command acts on the target it names (PR 24) by @codetalcott in #1201
  • fix(semantic,aot-compiler): a translated go runs, go to an element, and in new window (PR 25) by @codetalcott in #1202
  • fix(semantic,aot-compiler): go and scroll keep a position and smoothly/instantly (PR 26) by @codetalcott in #1203
  • fix(semantic): a possessive as a value — put #d1's value into #b — in every language (PR 27) by @codetalcott in #1204
  • fix(aot-compiler): a property access compiles to the property (PR 28) by @codetalcott in #1205
  • fix(aot-compiler,interchange): a variable keeps its scope — set :x, $x, x, and increment (PR 29) by @codetalcott in #1206
  • fix(interchange): an array, @attr and the X of Y reach the AOT compiler (PR 30) by @codetalcott in #1207
  • fix(aot-compiler): a class or query target reaches every match (PR 31) by @codetalcott in #1208
  • fix(semantic): a property chain on an element — #d1.value.length — in every language (PR 32) by @codetalcott in #1209
  • fix(aot-compiler): a scoped query —
  • in #list — compiles to its matches (PR 33) by @codetalcott in #1210
  • fix(aot-compiler): empty removes its targets' children (PR 34) by @codetalcott in #1211
  • fix(core,semantic): a class query keeps its in scope — .item in #list (PR 35) by @codetalcott in #1212
  • fix(semantic): true, false and null keep their meaning in every language (PR 36) by @codetalcott in #1213
  • fix(aot-compiler): class batching keeps each command's target and order; no undeclared selector cache (PR 37) by @codetalcott in #1214
  • fix(semantic): a translated condition reads core's comparison phrases (PR 38) by @codetalcott in #1215
  • fix(semantic): a translated condition reads its or, not and and back (PR 39) by @codetalcott in #1216
  • fix(semantic): a translated not reads back where it was split or cut (PR 40) by @codetalcott in #1217
  • fix(semantic): a translated copula reads as is between two operands (PR 41) by @codetalcott in #1218
  • fix(semantic): a translated condition reads an owner-first possessive back (PR 42) by @codetalcott in #1219
  • fix(semantic): a value keeps its comparison or mod in every language (PR 43) by @codetalcott in #1220
  • fix(semantic): a value keeps its and, or and not in every language (PR 44) by @codetalcott in #1221
  • fix(semantic): ja and ko read their and back inside a handler body (PR 45) by @codetalcott in #1222
  • fix(semantic): a translated repeat until loop stops (PR 46) by @codetalcott in #1223
  • fix(semantic): a value keeps its comparison phrase in every language (PR 47) by @codetalcott in #1224
  • fix(semantic): a translated contains, includes or equals reads back (PR 48) by @codetalcott in #1225
  • fix(aot): core's comparison phrases compile to JavaScript that runs (PR 49) by @codetalcott in #1226
  • fix(aot): a type check compiles, through a typeCheck interchange node (PR 49b) by @codetalcott in #1227
  • fix(core): X of Y binds as property access, as upstream reads it (PR 50) by @codetalcott in #1228
  • fix(semantic): a value whose operand is a property path keeps its whole expression (PR 51) by @codetalcott in #1229
  • test(testing-framework): a generated value matrix, run on both engines in 24 languages (PR 52) by @codetalcott in #1230
  • fix(semantic): the expression parser says where a value ends (PR 53) by @codetalcott in #1231
  • fix(core): English values follow upstream's — put, of, the X of Y, is empty, increment (PR 54) by @codetalcott in #1232
  • fix(semantic): an increment's amount is any value (PR 55) by @codetalcott in #1233
  • fix(semantic): the expression parser reads as and @attr of (PR 56) by @codetalcott in #1234
  • fix(semantic): contains reads back in ja, ko, qu and zh (PR 57) by @codetalcott in #1235
  • fix(semantic): a property word before of reads back — localized, and chained (PR 58) by @codetalcott in #1236
  • fix(semantic): a variable spelled like the language's conjunction is the variable (PR 59) by @codetalcott in #1237
  • fix(semantic): piped conversions, Fixed:2, and every type core converts to (PR 60) by @codetalcott in #1238
  • fix(semantic): sw and vi read their word for null as null (PR 61) by @codetalcott in #1239
  • fix(semantic): pl reads English equal to (PR 62) by @codetalcott in #1240
  • fix(core): an increment reads its amount and counter as upstream does (PR 63) by @codetalcott in #1241
  • fix(semantic): tr's variable i, spelled like its accusative marker (PR 64) by @codetalcott in #1242
  • fix(semantic): a role reads a whole possessive chain (PR 65) by @codetalcott in #1243
  • fix(semantic): a bare bracket run is an array (PR 66) by @codetalcott in #1244
  • fix(semantic): tr reads is in, and a variable i before an operator (PR 67) by @codetalcott in #1245
  • fix(core): the X of a null target reads null, as upstream does (PR 68) by @codetalcott in #1246
  • fix(semantic): the in after a copula is the operator, in de and it too (PR 69) by @codetalcott in #1247
  • fix(semantic): my id reads back as the renderer writes it (PR 70) by @codetalcott in #1248
  • fix(semantic): sw's and and ms's empty read back as written (PR 71) by @codetalcott in #1249
  • fix(semantic): a language's not reads back as written (PR 72) by @codetalcott in #1250
  • fix(semantic): an object literal is an object in a put or set (PR 73) by @codetalcott in #1251
  • fix(semantic): four operand readings (PR 74) by @codetalcott in #1252
  • fix(semantic): a bracketed attribute and an article-named variable on the direct path (PR 75) by @codetalcott in #1253
  • test(value-matrix): colliding names, written targets and is null (PR 76) by @codetalcott in #1254
  • fix(i18n,semantic): qu writes and as hinallataq (PR 77) by @codetalcott in #1255
  • fix(i18n,semantic): write null as null where it shared empty's word (PR 78) by @codetalcott in #1256
  • fix(i18n,semantic): hi writes no as कोई नहीं (PR 79) by @codetalcott in #1257
  • test(value-matrix): mark the failures the owner accepted (PR 80) by @codetalcott in #1258
  • fix(semantic): a variable spelled like a structure word reads back (PR 81) by @codetalcott in #1259
  • fix(core): write a property of an object, the of operator's, and a counted attribute (PR 82) by @codetalcott in #1260
  • fix(semantic): a possessive target before a role with no marker reads whole (PR 83) by @codetalcott in #1261
  • fix(semantic): the colliding names left read back (PR 84) by @codetalcott in #1262
  • fix(semantic): equals/includes words and registered conversion types read back (PR 85) by @codetalcott in #1263
  • docs: inventory the value-reading rules; move the matrix changelog out of CLAUDE.md (PR 86) by @codetalcott in #1264
  • ci: the docsources filter never matched; give it its own step by @codetalcott in #1265
  • refactor(semantic): value-reading.ts — where a slot stands, and a particle's reading (PR 87) by @codetalcott in #1266
  • refactor(semantic): the keyword cluster, one classifier for a lone keyword (PR 88) by @codetalcott in #1267
  • refactor(semantic): one operator vocabulary for the value readers (PR 89) by @codetalcott in #1268
  • refactor(semantic): the verb guards in value-reading.ts (PR 90) by @codetalcott in #1269
  • refactor(semantic): the value extent, in value-extent.ts (PR 91) by @codetalcott in #1270
  • build(deps-dev): Bump the minor-and-patch group in /protocol/typescript with 2 updates by @dependabot[bot] in #1271
  • build(deps-dev): Bump ip-address from 10.4.0 to 10.7.2 by @dependabot[bot] in #1272
  • build(deps-dev): Bump @vitest/ui from 5.0.1 to 5.0.2 by @dependabot[bot] in #1280
  • build(deps-dev): Bump vitest from 5.0.1 to 5.0.2 by @dependabot[bot] in #1277
  • build(deps-dev): Bump prettier from 3.9.8 to 3.9.9 by @dependabot[bot] in #1276
  • build(deps): Bump the minor-and-patch group across 1 directory with 13 updates by @dependabot[bot] in #1273
  • refactor(semantic): the condition scan's copula guard, in value-reading.ts (PR 92) by @codetalcott in #1281
  • test(testing-framework): the value matrix meets core's operator phrases (PR 93) by @codetalcott in #1282
  • fix(semantic): the to of equal to continues a value (PR 94) by @codetalcott in #1283
  • fix(semantic): a type name stays English in every rendering (PR 95) by @codetalcott in #1284
  • fix(semantic): the verb of does not include stays English (PR 96) by @codetalcott in #1285
  • docs(claude): the retired transformer's references, pointed at what replaced it (PR 98) by @codetalcott in #1286
  • feat: warn about a variable spelled like a word of its language (PR 97) by @codetalcott in #1287
  • fix(semantic): a particle before a run operator is its marker (PR 99) by @codetalcott in #1288
  • fix(i18n,semantic): tl and tr write includes with contains' word (PR 100) by @codetalcott in #1289
  • fix(semantic): a selector follows every comparison phrase (PR 101) by @codetalcott in #1290
  • fix(semantic): the article of a type check continues a value (PR 102) by @codetalcott in #1291
  • feat(semantic): a colliding variable in parentheses where the plain render is misread (PR 103) by @codetalcott in #1292
  • fix(semantic): three hand-written readings the consolidation filed (PR 104) by @codetalcott in #1293
  • fix(semantic): a reference after a possessive is the property (PR 105) by @codetalcott in #1294
  • fix(semantic): core's has reads back in every language (PR 106) by @codetalcott in #1295
  • fix(semantic): two qu readings the consolidation filed (PR 107) by @codetalcott in #1296
  • test(value-matrix): reference operands, a chained set, names inside expressions (PR 108) by @codetalcott in #1297
  • fix(semantic,framework): a reference's property reads back (PR 109) by @codetalcott in #1298
  • fix(semantic): a marker the command still owes is not a new handler (PR 110) by @codetalcott in #1299
  • fix(semantic): the reader reads every name the verified render writes (PR 111) by @codetalcott in #1300
  • fix(semantic): an end word before an operator is a value (PR 112) by @codetalcott in #1301
  • refactor(semantic): the fallbacks read a lone token as the role capture does (PR 113) by @codetalcott in #1302
  • fix(semantic): an end word where a value stands is a value (PR 114) by @codetalcott in #1303
  • fix(semantic): a fallback run the expression parser reads whole is an expression (PR 115) by @codetalcott in #1304
  • feat(semantic,compilation-service): a translation reports a variable the target reads as a value word (PR 116) by @codetalcott in #1305
  • fix(semantic): an end word in a loop head is a value where one stands (PR 117) by @codetalcott in #1306
  • fix(semantic): a number where a loop's form goes is its count (PR 118) by @codetalcott in #1307
  • fix(semantic): a count beside a repeat verb no loop pattern matches (PR 119) by @codetalcott in #1308
  • fix(semantic): an SOV loop verb ends its head (PR 120) by @codetalcott in #1309
  • fix(semantic): an end word after a loop's own word is a value (PR 121) by @codetalcott in #1310
  • fix(semantic): the until-condition head is a head-only repeat head (PR 123) by @codetalcott in #1311
  • fix(semantic): an end word after an unmarked role's value is a value (PR 122) by @codetalcott in #1312
  • test(value-matrix): a loop's count, and a sigil variable (PR 124) by @codetalcott in #1313
  • fix(semantic,core): the loop-count queue — a count's types, and core's count (PR 125) by @codetalcott in #1314
  • fix(semantic): an empty loop its own end closes keeps the command after it (PR 126) by @codetalcott in #1315
  • fix(semantic): each language's own word for times is read (PR 127) by @codetalcott in #1316
  • fix(semantic): a qu word keeps a marker-shaped end before a marker (PR 128) by @codetalcott in #1317
  • fix(core): the hybrid bundles read a loop's count as upstream does (PR 129) by @codetalcott in #1318
  • fix(semantic): what a get reads is any value (PR 130) by @codetalcott in #1319
  • fix(i18n,semantic): a counted loop is written in the language's own words (PR 131) by @codetalcott in #1320
  • docs: a fresh multilingual roadmap; the 8,740-line queue goes to a tag by @codetalcott in #1321
  • docs: archive 165 docs-internal files under a tag; an index and authoring rules by @codetalcott in #1322
  • chore(release): prepare 3.2.0 by @codetalcott in #1323
  • build(deps-dev): Bump undici from 6.28.0 to 6.29.0 by @dependabot[bot] in #1324
  • ci(release): the release workflows' tests get CI's 5-minute budget by @codetalcott in #1325

Full Changelog: v3.1.1...v3.2.0