[0.5.0] - 2026-07-30
Features
- (Breeze.Theme) Add commander built in theme (de7cd80)
- (Breeze.Implicit.Dropdown) Add mouse support (e7080a2)
- (Breeze.Storybook) Show keybindings bar and allow details toggle (9bb5b91)
- (Breeze.Style) Support responsive breakpoint (b709f7d)
- (Breeze.RemoteInspector) Add custom pages (b905fba)
- (Breeze.Runtime) Add state transfer and lifecycle hooks (069adb0)
- (Breeze.Implicit) Make key batching opt-in (fe4ed94)
- (Breeze.Server.Error) Support hard restarts with "R" (74f5ac1)
- (Breeze.ChildServer) Pass focus target on click events (0ad953f)
- [breaking] Standardize mouse event payloads (b1b948d)
- (Breeze.Style) Support tailwind style classes (80e10ba)
- (Breeze.Style) Support max-height utilities (a179c48)
- (Breeze.Storybook) Add mix task for running storybook (4eaa052)
- (Breeze.Theme) Add a greenscreen theme which only uses 2-colors (00efa02)
- (Breeze.Blocks) Add opt-out indicator to panel (9c7640c)
- (Breeze.Blocks) Add a checkbox function component (1711ebf)
- (Breeze.Blocks) Lazily render virtual list rows (c7c993d)
- (Breeze.InputRouter) Clean up terminal on mix run (31d67d0)
Bug Fixes
- (Breeze.InputRouter) Harden IEx shell proxy and palette probes (b04815e)
- (Breeze.Implicit.Dropdown) Prevent open menus from expanding panels (5e40f7d)
- (Breeze.Implicit) Don't emit change events on internal changes (07c0ca0)
- (Breeze.Server) Ensure live viewports position nests correctly (68078f2)
- (Breeze.Server) Ensure server struct has less than 32 keys (ac9612e)
- (Breeze.Markdown) Use TextSpans to ensure background color on code (7b539b7)
- (Breeze.Renderer) Ensure screen dimming works on system theme (9296cd8)
- (Breeze.Implicit.Tree) Scroll to externally controlled selection (950cb47)
- (Breeze.Implicit.List) Scroll to externally controlled selection (d4d8220)
- (Breeze.Server) Revent stale overlay state in child patches (c983541)
- (Breeze.CodeReloader) Only watch paths that exist (226bb2e)
- (Breeze.ChildServer) Ensure mouse clicks work on overlapping boxes (84e2e56)
- (Breeze.Template) Require static implicit modules (bbfe139)
- (Breeze.Style) Ignore unresolved class colors (0f156db)
- (Breeze.Server) Ensure focused live child input is sync (fac9231)
- (Breeze.Server) Ensure focus move rerenders patches base view (4c72fe6)
- (Breeze.Implicit.List) Preserve visible rows on controlled list selection (940bca2)
- (Breeze.Inspector) Disable inspector reload without a watcher (27429b9)
- (Breeze.InputRouter) Restore terminal state on terminate (fb4d791)
Refactor
- (Breeze.Theme) Move all of the theme probe functions out (8088d14)
- (Breeze.Implicit) [breaking] Require tagged init results (274844f)
- (Breeze.Telemetry) Wrap :telemetry to allow disabling (4ccf506)
- (Breeze.View) Separate components from views (152e92f)
Documentation
- (Breeze.Implicit) Improve typespecs for implicit dogs (a203847)
- Add SSH and Fly.io deployment guides (5afe9fe)
- (guides) Remove some unnecessary guide content (8f8e7c5)
Performance
- (Breeze.ChildServer) Only perform implicit bootstrap once (6d51846)
- (Breeze.RemoteInspector) Collapse snapshots on interval (e26c951)
- (Breeze.Renderer) Skip unused live viewport prepass (bdff1ba)
- (Breeze.Template) Precompile elixir expressions (f94f001)
- (Breeze.Server.Frame) Compare frame rows in linear time (8eb36b0)
- (Breeze.Renderer) Prepend focusables (0f15fa5)
- (Breeze.Logger.Collector) Store entries in a bounded queue (2c7a7e8)
- (Breeze.RemoteInspector) Store logs in bounded queues (0d41790)
- (Breeze.Implicit.Textarea) Optimize multiline wrapping (faac95b)
- (Breeze.Server) Benchmark input CPU across all examples (015d007)
- (Breeze.ChildServer) Detect deferred input routing changes (fe7232c)
- (Breeze.Server) Pace input renders at 60 fps (68b1bb0)
Testing
- (Breeze.InputRouterThemeSyncTest) Fix aliases (6ef0714)
- Improve test suite robustness on slower machines (69856d2)
- (Breeze.LiveView.CrashTest) Increase assert timeout (1679d33)
- Fix flaky tests on process shutdown (66d58d7)
- (ExampleSnapshotTest) Add animated progress snapshot tests (0a1418b)
- (Breeze.ChildServer) Supervise processes and speed up test runs (ccae31f)
[0.4.0] - 2026-07-10
Features
- (Breeze.Server) Support alt_screen option (dd01684)
- (Breeze.ErrorView) Add crash detail clipboard export (b450cd4)
- (Breeze.Blocks) Add textarea input and enhanced keyboard support (1289183)
- (Breeze.View) Add switch_theme and cycle_theme functions (21ca652)
- (Breeze.Storybook) Add theme switching shortcuts (f9b7ac5)
- (Breeze.Server) Support running apps from IEx (e4ac814)
- (Breeze.Blocks) Add table component (bf34487)
- (input) Support focused implicit key capture (520024d)
- (Breeze.Server) Support deferred renders from event replies (1aea00b)
- (Breeze.Blocks) Add navigable tree component (885a303)
- (Breeze.Blocks) Add virtual tree rendering support (f651545)
- (Breeze.Inspector) Adds render tree inspection (9842fb6)
- (Breeze.Inspector) Try to start distributed erlang on launch (f2dba56)
- (Breeze.Server) Allow passing
render_errorsmodule (790f66b) - (Breeze.Style) Add a square border variant (57beec9)
- (Breeze.Flash) Add stackable flash messages (b0dbc54)
- (Breeze.Markdown) Support custom reset sequences (526bff4)
- (Breeze.Server) Keep focus on focusable live roots (6fedca4)
- (Breeze.View) Add put_implicit function for setting state (dd0c9f2)
- (Breeze.Server) Add live child snapshot and input APIs (8357b3a)
- (Breeze.Blocks) Virtualize list and table rendering (63cd22e)
- (Breeze.Implicit) [breaking] Require init/3 callback (dc9bdc0)
- (Breeze.Server) Supervise live views per Breeze session (6715665)
- (Breeze.Logger) Add supervised capture and inspector logs (ee40315)
- (Breeze.IO) Naive alias of IO to allow IO.inspect, etc. (10323c7)
Bug Fixes
- (Breeze.Theme) Ensure theme probe runs if system theme is used (1ca5265)
- (Breeze.Server) Pass root metadata to reload option refresh (1b4db32)
- (Breezer.Server) Animation flicker in frame composer (73bbce2)
- (Breeze.Server) Preserve inspector row repair for overlays (62f5880)
- (Breeze.Server) Render decorations in viewport (a526e27)
- Handle ctrl-c and shift-tab input sequences (7021d9f)
- (Breeze.ErrorView) Ensure "q" quits inside of crash handler (454aa7c)
- (Breeze.Server) Preserve private-use glyphs in server output (d4c0520)
- (input) Honor F10 global stop keybindings (4827108)
- (Breeze.Template) Apply declared component defaults and local helpers (ed08f66)
- (Breeze.Input) Handle multi-grapheme printable paste input (b58d205)
- (Breeze.Template) Preserve root caller assigns for nested components (e418988)
- (Breeze.ChildServer) Route preview mouse events through live children (7ce68c9)
- (Breeze.Renderer) Preserve live child patch origins (993cf99)
- (Breeze.LoggerHandler) Normalize Unicode logger chardata (a05a69d)
- (Breeze.KeyDecoder) Support Escape keybind (0878883)
- (Breeze.Renderer) Keep screen dim default fills compact (742610e)
- (Breeze.Renderer) Ensure compatibility with back_breeze 0.4.1 (953f55a)
- (Breeze.Renderer) Preserve live child and overlay dimensions (8ed3d68)
- (Breeze.Input) Centralize printable key handling (af68dcd)
- (Breeze.Renderer) Stabilize overlays and animation scheduling (e2e5b04)
- (Breeze.Style) Normalize invalid border values (9c25c4c)
- (Breeze.Server.RenderTracking) Bind ETS state to server lifetime (f587dc1)
- (Breeze.RemoteInspector) Fix tab width and palette viewport (975d5f2)
- (Breeze) Replace first argument of handle_event with :input (e40fc0d)
Refactor
- (Breeze.Server) Split runtime state helpers (317c7b9)
- (Breeze.Storybook) Remove missing story inventory (6f3d85d)
- (Breeze.Router) [breaking] Remove routing helpers (40646c0)
- (Breeze.Theme) [breaking] Internalize built-in theme constructors (a654832)
- (Breeze.Storybook) [breaking] Promote the browser to the public entrypoint (2d3ad9c)
Documentation
- (README.md) Update for v0.3.0 (87b1206)
- (README.md) Fix example (9ea136e)
- (Breeze.Docs.Assets) Use Cascadia mono for consistent docs (d82af06)
- Restructure documentation to be more user friendly (780fcf7)
- (guides) Add some guides for building a breeze todo list (84e54d7)
Performance
- (Breeze.Template) Streamline slot evaluation (d4a284d)
Testing
- Fix intermittent test failures in CI (9a59ebd)
- (Breeze.Storybook) Fix race condition in tests (b6bd4e1)
- (Breeze.Storybook) Explicitly start each story under test (939c420)
- (RemoteInspector) Fix remove inspector and debug test races (b82383f)
- (posting) Update test for CI (6e62577)
- (examples/docs) Hide functions (2277473)
[0.3.0] - 2026-04-17
Features
- (Breeze.Template) Add internal ~H template runtime (ff0feec)
- (Breeze.HTMLFormatter) Add mix format plugin for ~H (d839908)
- (viewport) Add structured scroll modifiers and viewport metrics (a2aebd0)
- (listview) Add built-in implicit for keyboard list navigation (5fd1071)
- (Breeze.Implicit) Move List and Scroll into implicit namespace (373c798)
- (Breeze.Blocks) Implement predefined components using implicits (6f1fb97)
- (Breeze.Renderer) Support grid with apply_style (fbc3d7f)
- (Breeze.Renderer) Support rounded borders (19b9b74)
- (Breeze.Markdown) Support rendering markdown text (0a34d45)
- (Breeze.ChildServer) Support nested views (5a595d8)
- (Breeze.Server) Allow child servers to update async (e271c28)
- (Breeze.Router) Add a helper module to support routing (b9f276a)
- (Breeze.Logger) Add a Breeze.View for logging (0055d05)
- (Breeze.Implicit.Tab) Add a tabs implicit (de8b2d9)
- (Breeze.Server) Support global keybindings (c370667)
- (Breeze.Implicit.Modal) Add a modal component (005fe4e)
- (Breeze.Server) Split rendering from lifecycle (117a36d)
- (Breeze.Test) Module for snapshot testing (82f0d64)
- (Breeze.Implicit.Dropdown) Add dropdown menu implicit (c276563)
- (Breeze.Implicit.Input) Add input implicit and overlays (18267d6)
- (Breeze.Mouse) Add mouse support for views (1073239)
- (Breeze.Server) Route terminal input through InputRouter (bbc026e)
- (Breeze.Renderer) Support fixed positioning (e12aff5)
- (Breeze.Debug) Emit render profiling through telemetry (ad2a175)
- (Breeze.Blocks) Update modal to use fixed positioning (631140b)
- (Breeze.Server) Render a crash screen on view failures (7c2ee09)
- (Breeze.InputRouter) Support hup signal for SSH support (a6314d6)
- (Breeze.Server) Add live reload support (85c3fdd)
- (Breeze.Style) Support both inline text styles and map overrides (51594d7)
- (Breeze.Theme) Add semantic theme support (10b5092)
- (Breeze.Theme) Add runtime system palette probing (43e7f51)
- (Breeze.Style) Add semantic input styling and placeholders (ac31c09)
- (Breeze.Blocks) Add public input block (c1d5903)
- (Breeze.Blocks) Make dropdown use semantic styling (de0d4f3)
- (examples) Update all examples to use border-box sizing (a78864a)
- (Breeze.Inspector) Add inspector overlay and coverage (1b727ba)
- (Breeze.RemoteInspector) Add remote inspector app and task (6fe6d80)
- (Breeze.Blocks) Add underline tab variant (82eba0c)
- (Breeze.Renderer) Add screen-dim backdrops for modals (d9f9ffa)
- (Breeze.Style) Support gaps on grid (d956707)
- (Breeze.Storybook) Add a storybook style widget viewer (5f3ae7e)
- (Breeze.Block) Add a button component (56ceb8a)
- (Breeze.Renderer) Support focus-within for panels (9727244)
- (Breeze.Blocks.List) Switch to faded out variant with indicator (3cfb1b5)
- (Breeze.Storybook) Support variants on stories (f25d20e)
- (Breeze.KeyDecoder) Decode structured ctrl key events (044039b)
- (Breeze.Storybook) Add modal variants (6c38828)
- (Breeze.Keybindings) Add footer keybinding support (0e0b257)
- (Breeze.Renderer) Support rich and virtual text content surfaces (4216c58)
- (Breeze.View) Support component attr and slot docs (e36adad)
Bug Fixes
- Tighten formatter whitespace handling and slot API docs (14514b8)
- (examples) Fix focus example (65f0203)
- (Breeze.Server) Prevent screen flickering on re-renders (71560b0)
- (Breeze.Server) Don't schedule input flush with no input (10e92db)
- (Breeze.Implicit.Input) Fix ctrl + w inserting gibberish (e269eb3)
- (Breeze.Debug) Stop debug stats from repainting themselves (8a8dd91)
- (Breeze.Server) Write patched rows before clearing the remainder (b6de765)
- (Breeze.Server) Clear patched row remainder after content (e7260a3)
- (Breeze.Blocks) Use background color for modal surfaces (282c637)
- (Breeze.Theme) Retry system probes and preserve probed surfaces (fdedf62)
- (Breeze.Implicit.Input) Ensure implicit keys handled first (1634f35)
- (Breeze.Server) Batch printable input bursts safely (0a06c58)
- (Breeze.Server) Patch live children from their root viewport (ee5e7bd)
- (Breeze.Keybindings) Match ctrl bindings against decoded key events (b8774eb)
- (Breeze.Storybook) Stabilize preview and support file loading (89b0a8d)
Other
- (Breeze.Implicit.Input) Render wide characters by cell width (f3b33cf)
Refactor
- (Breeze.Renderer) Remove NimbleParsec and render tree directly (9bf5f67)
- (Breeze.ChildServer) Extract common functionality with Server (db55c7a)
- (Breeze.Input) Make input styling class-driven (e4f3064)
Documentation
Performance
- (Breeze.Renderer) Remove implicit reconcile callbacks (eb5ed89)
- (Breeze.Server) Reduce redraw flicker (4687806)
- (Breeze.Server) Patch fixed live child invalidations (c905b40)
- (Breeze.Server) Patch frame rows and resync on sigwinch (e9f83cc)
- (Breeze.ChildServer) Retain hidden implicit state across remounts (5497de4)
Testing
- (Breeze.Template) Expand template and formatter coverage (81e0a41)
- (docs) Update snapshots for the docs test (ba21f6d)
- (Breeze.Server) Fix snake example (7a9eda0)
- (posting) Add a snapshot test for the open modal (95e16b9)
[0.2.0] - 2024-08-09
Features
- (Breeze.Server) Add focusable elements (47b475c)
- (Breeze.Server) Allow passing change events from implicit (a9b7ad0)
- (Breeze.Server) Add handle_modfiers for implicits (cc00bba)