$ cat elixir/week/2026-08-24.log
the week in review · Aug 24 – Aug 30, 2026
Phoenix and LiveView tighten resume and task lifecycle, Elixir culls map lookup waste
Phoenix and LiveView shored up two failure paths users hit in the wild, while Elixir cut repeated map and charlist work that showed up in lookups and tests.
The week's most substantial work landed in Elixir's map handling. Lookup no longer rebuilds map domains on every access, and the compiler reuses the top non-empty list descriptor, which trims allocation during traversal. Map domain type lookup was also unified, so the same path serves both compile-time and runtime checks. These changes are internal to the VM and compiler, so code that uses maps should see less garbage and faster repeated access without API changes. [1][2][3]
LiveView shipped a pair of fixes that close real user-visible gaps. On route change, live components removed from the tree now cancel their async tasks, preventing work from continuing after the component is gone; and the framework tags pending diffs so it can discard outdated ones, which keeps stale patches from being applied after a new render. Relatedly, formatter logic was corrected so it doesn't migrate expressions that close early, and live stream option lookup was optimized. Together these make 1.2.11 a release to take before the next deploy if you're on the current line. [4][5][6][7][8]
Phoenix's emergency patch is the one to act on now if you saw the symptom. The project released v1.8.13 to "handle chrome page resume" after Chrome's tab-restore path left a page in a broken state. The fix is in the framework's resume handling, so upgrading to v1.8.13 is the whole mitigation; the pull request that duplicates the fix landed separately for code review. The same release also slims the generated release path: phx.gen.release now uses Bob API structured filters and sorting for Docker tags, and the Bob Web UI links accept filter and sort query parameters, which makes release-generated scripts more precise about which image tags they pick up. [9][10][11][12][13]
On the correctness side, Elixir fixed Greek casing (final sigma handling in :greek) so Unicode casing behaves correctly for that script. The other recurring theme was warnings: both Elixir and Ecto fixed warnings that had been breaking test runs, including a typo in Ecto's warnings-as-errors flag that made the option fail rather than enforce. These are small, but if CI was red on warnings, this week's fixes are why. [14][15][16][17]
Docs closed the week by clarifying Mix formatter plugin file-type behavior, so the documentation now explains which file types a plugin's formatter actually runs on.
References
- [1] Avoid rebuilding map domains during lookup ↗ elixir-lang/elixir
- [2] Reuse the top non-empty list descriptor ↗ elixir-lang/elixir
- [3] Unify map domain type lookup (#15789) ↗ elixir-lang/elixir
- [4] Tag pending diffs and discard outdated ones ↗ phoenixframework/phoenix_live_view
- [5] Cancel async tasks of components removed from the tree ↗ phoenixframework/phoenix_live_view
- [6] v1.2.11 ↗ phoenixframework/phoenix_live_view
- [7] Ensure formatter does not migrate expressions that close early ↗ phoenixframework/phoenix_live_view
- [8] Optimize live stream option lookup ↗ phoenixframework/phoenix_live_view
- [9] v1.8.13 ↗ phoenixframework/phoenix
- [10] handle chrome page resume ↗ phoenixframework/phoenix
- [11] handle chrome page resume (#6803) ↗ phoenixframework/phoenix
- [12] phx.gen.release: use Bob API structured filters and sorting for Docker tags ↗ phoenixframework/phoenix
- [13] Add filter and sort query parameters to Bob Web UI links (#6805) ↗ phoenixframework/phoenix
- [14] Fix final sigma handling in :greek ↗ elixir-lang/elixir
- [15] Fix warnings when running tests ↗ elixir-lang/elixir
- [16] Fix more warnings during test suite runs ↗ elixir-lang/elixir
- [17] Fix warnings-as-errors typo (#4787) ↗ elixir-ecto/ecto
$ ls elixir/week/ # the briefings behind this review