Rackled version history

Now playing 0.39.4. Back to the game

  1. 0.39.3Oct 6, 2026 · 303dfebchore(release): 0.39.3 [skip ci]
  2. 0.39.2Sep 27, 2026 · bbf79ecchore(release): 0.39.2 [skip ci]
  3. 0.39.1Sep 27, 2026 · bca4ddbchore(release): 0.39.1 [skip ci]
  4. 0.39.0Sep 27, 2026 · b8d4e7bchore(release): 0.39.0 [skip ci]
  5. 0.38.1Sep 27, 2026 · e6e723bfix(layout): give 360px-wide phones the narrow-screen gutter (#856)
  6. 0.38.0Sep 27, 2026 · d6c43a1feat(achievements): Alphabet Soup, every letter laid across one day's fresh rounds (#123) (#854)
  7. 0.37.0Sep 27, 2026 · e845c61fix(layout): narrow the column gutter below 356px so 320px phones get larger drag targets (#558) (#852)
  8. 0.36.5Sep 27, 2026 · 97271edchore(cdn): record HTTP/3 as enabled and verified on the distribution (#851)
  9. 0.36.4Sep 26, 2026 · 13bba19perf(engine): screen crossing words per cell and skip repeated digraph-choice walks, with identical move output (#848) (#850)
  10. 0.36.3Sep 26, 2026 · a72a664test(engine): brute-force move-generation completeness on small boards (#832) (#849)
  11. 0.36.2Sep 26, 2026 · e8b27ebtest: replace fixture solver searches with checked-in lines replayed against the engine (#843) (#847)
  12. 0.36.1Sep 26, 2026 · d4e2900test: pin validate.spec's agreement cases on hand-built boards, and slim round_cache.spec (#844, #845) (#846)
  13. 0.36.0Sep 26, 2026 · 4ee2a9ftest(stoch): make stochastic files safe to share workers, and stop a fake legal-word success (#840)
  14. 0.35.0Sep 26, 2026 · 8dae560feat(engine): the owner's scoring rulings for golden, either, leftovers and placed-tile records (#838)
  15. 0.34.1Sep 26, 2026 · c6fea3fchore(release): 0.34.1 [skip ci]
  16. 0.34.0Sep 26, 2026 · 8c5844achore(release): 0.34.0 [skip ci]
  17. 0.33.0Sep 24, 2026 · e2f0fe1fix(ci): run one vitest worker per core, and give the main build room for the stochastic tier (#827)
  18. 0.32.0Sep 24, 2026 · 7d54454chore(release): 0.32.0 [skip ci]
  19. 0.31.0Sep 24, 2026 · e1f217cfeat(edge): serve the security headers from a viewer-response CloudFront Function (#804)
  20. 0.30.2Sep 24, 2026 · b9fd88bfix(ui): back closes the open sheet, the result sheet included, instead of leaving the site (#793)
  21. 0.30.1Sep 24, 2026 · dcfbbc0fix(solver): Reveal waits for a Worker that is still searching instead of freezing the page (#800)
  22. 0.30.0Sep 24, 2026 · 0e79365feat(achievements): 73 achievements across seven bundles (#801)
  23. 0.29.0Sep 24, 2026 · 49e5246fix(a11y): one hidden h1 over h2 sheets, and named landmarks with main holding the whole game (#526) (#788)
  24. 0.28.2Sep 24, 2026 · fd63ba1perf(solver): measure the synchronous fallback solve, and benchmark Brutal's worst case (#786)
  25. 0.28.1Sep 24, 2026 · 4502170fix(ui): confirm End round, say Show results after, disable spent and empty rack slots, announce plays left (#778)
  26. 0.28.0Sep 24, 2026 · f6f1373feat(achievements): a roundDurationMs metric and the six speed achievements (#89-#92, #95, #96) (#780)
  27. 0.27.5Sep 24, 2026 · d39f0d7fix(page): stop machine translation, explain a scriptless page, preload the fonts, and allow pinch-zoom (#776)
  28. 0.27.4Sep 24, 2026 · c7407e4chore(release): 0.27.4 [skip ci]
  29. 0.27.3Sep 24, 2026 · b2eea7echore(release): 0.27.3 [skip ci]
  30. 0.27.2Sep 24, 2026 · 0b9c72cdocs: resolve every TypeDoc link and fail the docs stage on warnings (#774)
  31. 0.27.1Sep 24, 2026 · 707ae82test(domain): say why Bridge stays unpaid under #762's two-distinct-words rule (#773)
  32. 0.27.0Sep 24, 2026 · 5a97f7eci: deploy through the OIDC role only, with the static-key fallback removed (#544) (#766)
  33. 0.26.0Sep 24, 2026 · 49b5690fix(cdn): answer unknown routes with a real 404 page, and mark every page but / noindex (#443, #463) (#767)
  34. 0.25.1Sep 24, 2026 · 59a08c4ci: run PR CI for every file main lints, and give the build jobs 25 minutes (#772)
  35. 0.25.0Sep 24, 2026 · 090cd87chore(release): 0.25.0 [skip ci]
  36. 0.24.0Sep 23, 2026 · 392785dchore(site): stop publishing.nojekyll and the empty docs/dist (#528) (#758)
  37. 0.23.1Sep 23, 2026 · 2bc78bdfix(csp): move the shell's inline styles into index.css and allow the inline boot scripts by hash (#743)
  38. 0.23.0Sep 23, 2026 · 82e2985feat(player): distinctPlayScores and zeroScorePlays round metrics for Metronome (#746)
  39. 0.22.0Sep 23, 2026 · 320e07ffix(achievements): stop rounds with no plays earning Games Played, Habit Forming, Hoarder and Deja Vu (#747)
  40. 0.21.0Sep 23, 2026 · aa329c1ci(publish): gate the publish payload's size and inventory, version 0.14.6 (#691)
  41. 0.20.0Sep 23, 2026 · 92db05efeat(achievements): the rack bundle, All Vowels, All Consonants, Treasure Chest and Untouched (#345-#348) (#711)
  42. 0.19.1Sep 23, 2026 · fb5f925fix(a11y): name board squares and tiles in words, hide decoration, stop draft mode leaking the bag (#703)
  43. 0.19.0Sep 23, 2026 · ea26c47feat(achievements): the word-shape bundle, ten hidden "play a word that..." achievements (#706)
  44. 0.18.1Sep 23, 2026 · ae3133cperf(publish): serve a 1.5 KB favicon generated from the master art, and stop publishing README.md (#715)
  45. 0.18.0Sep 23, 2026 · a51adc3test: quiet jsdom canvas noise, and assert the storage-unavailable warning instead of printing it (#739)
  46. 0.17.5Sep 23, 2026 · 8452d86ci: write the released version back to package.json on main (#736)
  47. 0.17.4Sep 23, 2026 · c22d0defix(result): word Reveal's percentage as search progress, and say what the score percentage is of (#720)
  48. 0.17.3Sep 23, 2026 · 743ea60ci: compute the release version from commit types; drop the per-PR bump gate (#734)
  49. 0.17.2Sep 23, 2026 · 1363a4cfix(page): defer the bundles, pre-boot theme, color-scheme, theme-color, touch and overscroll, version 0.17.2 (#700)
  50. 0.17.1Sep 23, 2026 · f0174b3fix(site): keep the owner's username and email off the public changelog page (#709)
  51. 0.17.0Sep 23, 2026 · 2140bb5feat(achievements): premium-square plays — Reverberation, Paid the Toll, Down the Drain (#333, #334, #335) (#708)
  52. 0.16.0Sep 23, 2026 · 696e75afeat(achievements): the board-geometry bundle - Cornered, Donut, Chandelier, Sealed In, Full Set (#707)
  53. 0.15.16Sep 23, 2026 · 79d9e12build: retire the single-file build and stop publishing rackled.html, version 0.15.16 (#713)
  54. 0.15.15Sep 23, 2026 · b20438dci(deploy): assume an OIDC role once AWS_DEPLOY_ROLE_ARN is set (no-op until then) (#693)
  55. 0.15.14Sep 23, 2026 · cbd0cb1fix(router): keep a seed's case below /puzzle, and audit every route family for case folding (#599) (#694)
  56. 0.15.13Sep 23, 2026 · f5e7dfcperf(publish): stop publishing source maps and set every Content-Type explicitly, version 0.15.13 (#698)
  57. 0.15.12Sep 23, 2026 · 0e1b7d0test(coverage): measure which premiums, tile kinds, digraphs and word shapes the tests exercise (#366) (#692)
  58. 0.15.11Sep 23, 2026 · a022639fix(a11y): one polite announcer, live #msg and #rcap, stable button names, and a labelled result sheet (#702)
  59. 0.15.10Sep 23, 2026 · c28e04ffix(a11y): make the sheets modal dialogs, with focus carried in and back (#701)
  60. 0.15.9Sep 23, 2026 · 81817c6fix(ui): show a failure message instead of an inert Start when the game fails to load (#579) (#690)
  61. 0.15.8Sep 23, 2026 · 953d2aabuild(single-file): inline assets by explicit splice regions, not exact tag bytes (#572) (#688)
  62. 0.15.7Sep 23, 2026 · d671c6fchore: drop servehere and ignore.playwright-mcp, version 0.15.7 (#687)
  63. 0.15.6Sep 23, 2026 · 5a5f127perf(build): cap local test runs at 4 workers by default, version 0.15.6 (#704)
  64. 0.15.5Sep 23, 2026 · f31b059test(e2e): run Playwright on WebKit and phone viewports, with a cheap layout suite (#696)
  65. 0.15.4Sep 23, 2026 · 924f1fctest(e2e): assert behaviour through language-free state, not English copy (#682) (#686)
  66. 0.15.3Sep 23, 2026 · 6ecac05fix(solver): retry a failed engine fetch with backoff instead of latching the main-thread solve (#437) (#685)
  67. 0.15.2Sep 23, 2026 · ce9bf52perf(test): let RACKLED_TEST_MAX_WORKERS cap the test stage's worker pool (#684)
  68. 0.15.1Sep 23, 2026 · 0c24977fix(ui): fold a seed's case where text becomes a seed, so every spelling of a shared address deals one bag (#578) (#683)
  69. 0.15.0Sep 23, 2026 · ad3896cfeat(edge): hold the response headers policy in the repo and check the live edge against it (#697)
  70. 0.14.7Sep 23, 2026 · bb6ac02perf(ci): invalidate only what changed on the CDN, and nothing when nothing did (#695)
  71. 0.14.6Sep 23, 2026 · 087cf6eci(e2e): run the Playwright suite on every PR, against the site the build job uploaded (#689)
  72. 0.14.5Sep 23, 2026 · 7a7b1b5test(e2e): serve the e2e site through the deployed SPA router, and smoke-check every deploy (#681)
  73. 0.14.4Sep 23, 2026 · f3d9468perf(publish): keep the TypeDoc reference off the game's CDN, version 0.14.4 (#678)
  74. 0.14.3Sep 22, 2026 · d04aab3build: stop committing build output, and make the committed README deterministic (#371) (#680)
  75. 0.14.2Sep 22, 2026 · 4d807abtest(share): stop the solver-score property from tripping on a seed of 999 (#677) (#679)
  76. 0.14.0Sep 22, 2026 · baad777Achievement toasts: a viewport-anchored stack, deferred around drags, with a timer-free exit (#673)
  77. 0.13.12Sep 22, 2026 · a27132dGerman as the model language, and a case-convention survey of all 61 targets (#672)
  78. 0.13.11Sep 21, 2026 · 1ec1ce2chore: retire Stryker, version 0.13.11 (#667)
  79. 0.13.10Sep 20, 2026 · 8134f9fdocs(spec): puzzle addresses, one id names one board and the address is the id (#665)
  80. 0.13.9Sep 19, 2026 · 968a530build(deps-dev): bump the minor-and-patch group, seven updates, version 0.13.9 (#664)
  81. 0.13.8Sep 18, 2026 · 3102aa6fix(build): generate the changelog from HEAD's history, not all refs (#663)
  82. 0.13.7Sep 16, 2026 · aef2812fix(ci): give the changelog jobs the tags they read, and build PRs the way main builds (#661)
  83. 0.13.1Sep 12, 2026 · 6db8a0bfeat(ui): hover describes a premium square, the key can show every square, and four small tints (#642)
  84. 0.13.0Sep 12, 2026 · 9981782feat: special tiles foundation — tile records, LETTER_MULT_CAP, four zero-gated tiles, reintegrated with achievement storage (#607)
  85. 0.12.3Sep 12, 2026 · 9e19e06build(deps-dev): vitest 5, @vitest/coverage-v8 5, @eslint/css 2, and the minor-and-patch group, version 0.12.3 (#639)
  86. 0.12.2Sep 12, 2026 · 0eca35cfeat(ui): the 2026-09-12 interface pass: one-row header, colour patches, bag strip, window scaling, pending-tile drag (#638)
  87. 0.12.1Sep 12, 2026 · 51bdbcbfix(ui): premium squares as colour and label, and a board that fits the viewport (#637)
  88. 0.12.0Sep 11, 2026 · eaef99afeat(ui): haptic feedback on mobile, as an additive channel only (#613)
  89. 0.11.3Sep 11, 2026 · bae3babfix(ui): give premium squares a non-colour channel — corner geometry, rank ring, hazard hatch (#614)
  90. 0.11.2Sep 10, 2026 · 42ac572build(deps): combined dependency updates from #627, #629, #620, #622 (#630)
  91. 0.11.1Sep 10, 2026 · 97d31d1fix(build): make three silent build failures loud, with a proven-red guard test for each (#617)
  92. 0.11.0Sep 9, 2026 · 31152a2feat(cheev): achievement ticket schema r2 (#603)
  93. 0.10.1Sep 9, 2026 · de40341chore: stop tracking the per-machine Claude settings file (#628)
  94. 0.10.0Sep 5, 2026 · 4678f9afeat(player): achievement storage — round journal, derived metrics, generic evaluator (#623)
  95. 0.9.7Aug 31, 2026 · 37804eafix(router): serve /.well-known/ without redirect and with explicit Content-Type (#611)
  96. 0.9.6Aug 31, 2026 · 1c81c78fix(build): finish a failing stage before exiting and lock out concurrent builds (#610)
  97. 0.9.5Aug 28, 2026 · 71163abbuild(deps-dev): bump @stryker-mutator/core and vitest-runner from 9.6.1 to 10.0.0, version 0.9.5 (#609)
  98. 0.9.4Aug 28, 2026 · b2432bebuild(deps-dev): bump the minor-and-patch group across 1 directory with 2 updates (#608)
  99. 0.9.3Aug 28, 2026 · 18d5bbdbuild(deps-dev): bump typescript-language-server from 5.3.0 to 6.0.0 (#376)
  100. 0.9.2Aug 28, 2026 · deb316abuild(deps): bump aws-actions/configure-aws-credentials from 4 to 6 (#374)
  101. 0.9.1Aug 26, 2026 · 6fedb13refactor(engine): load the dictionary as a fetched asset, not a linked-in import (#601)
  102. 0.9.0Aug 25, 2026 · a1e1555feat(ui): light Play word only when the placement would be accepted (#21)
  103. 0.8.2Aug 25, 2026 · ba49cc9build(deps-dev): bump the minor-and-patch group across 1 directory with 13 updates (#18)
  104. 0.8.1Aug 25, 2026 · 2f0cbb5ci: gate publishing and release on e2e (#362)
  105. 0.8.0Aug 25, 2026 · 15f8f15fix(engine): the solver reads a lone tile both ways, as the validator does (#361)
  106. 0.7.0Aug 25, 2026 · 3d6ad89feat(engine): derive tile values from this dictionary, not a printed one (#358)
  107. 0.6.1Aug 25, 2026 · ef6f913chore: retire gh-pages, track coverage-mutat, prune a stale permission
  108. 0.6.0Aug 25, 2026 · f92d65afix(engine): the premium key understated every bonus fourfold
  109. 0.5.0Aug 25, 2026 · 6ceede9feat(cloudfront): add the SPA router and ship it from CI
  110. 0.4.1Aug 24, 2026 · c4373dbci: publish the built site to S3 alongside gh-pages
  111. 0.4.0Aug 24, 2026 · 5d56871feat(engine): add the brutal difficulty tier and guarantee board variety
  112. 0.3.0Aug 21, 2026 · 26a3ef8feat: adapt the Rackled prototype into the repo's build system