Skip to content

Releases: RibirX/Ribir

v0.4.0-alpha.58

17 Feb 14:46

Choose a tag to compare

v0.4.0-alpha.58 Pre-release
Pre-release

0.4.0-alpha.58 - 2026-02-17

🎨 Features

  • core: introduce ProviderCursor for lazy and incremental provider sync in events (#893 @M-Adoo)
  • macros: support automatic cloning of dollar-prefixed variables in async move blocks (#894 @wjian23)
  • widgets: add ButtonLabelVisibility to control label visibility (#886 @M-Adoo)
  • πŸ€– migrate ribir-bot AI backend from Gemini to Codex CLI (#890 @M-Adoo)

πŸ› Fixed

  • core: fix subscription timing for reactive parents and classes to ensure consistent updates (#884 @M-Adoo)
  • macros: ensure rdl! returns the object when using expression parent with no children (#891 @M-Adoo)
  • widgets: correct layout distribution for centered buttons and linear containers (#884 @M-Adoo)
  • widgets: fix icon child positioning and coordinate mapping by moving offset to place_children (#892 @M-Adoo)

πŸ”„ Changed

  • core: unify XSingleChild and XMultiChild into a generic XChild container (#884 @M-Adoo)

⚑ Performance

  • gpu: optimize BGRA to RGBA conversion in debug snapshots (#882 @wjian23)

πŸ’₯ Breaking

  • core: remove AppEvent::Hotkey and AppEvent::OpenUrl events and their macOS-specific implementations (#885 @M-Adoo)
  • core: replace implicit parent conversions with explicit IntoSingleChild and IntoMultiChild traits (#884 @M-Adoo)
πŸ”§ Internal
  • build: πŸ€– use cache-cargo-install-action for ribir-bot in all workflows (#883 @M-Adoo)
  • πŸ’‘ migrate CLI logging from env_logger to tracing (#889 @M-Adoo)

v0.4.0-alpha.57

11 Feb 02:43

Choose a tag to compare

v0.4.0-alpha.57 Pre-release
Pre-release

🎨 Features

  • macros: add eager mode support to #[declare] macro (#873 @M-Adoo)
  • tools: add attach_app tool and enhance start_app with absolute path support (#881 @M-Adoo)
  • tools: add start_app and stop_app MCP tools for remote lifecycle management (#880 @M-Adoo)
  • tools: enhance stop_app to manage adopted processes from the port registry (#881 @M-Adoo)
  • tools: implement dynamic port discovery and native Rust MCP server (#878 @M-Adoo)

πŸ› Fixed

  • core: fix global overlay position calculation for root widgets in debug tool (#879 @wjian23)

πŸ”„ Changed

  • core: improve widget ID resolution with colon shorthand (index:stamp) and better numeric matching (#881 @M-Adoo)
  • core: modernize debug tool UI and implement an interactive layout tree (#879 @wjian23)
  • core: prioritize local size attributes over class styles by reordering builtin widgets (#876 @M-Adoo)
  • core: update capture tools to wait for frame synchronization and return absolute file paths (#881 @M-Adoo)
  • core: use deterministic port range 2333-2432 for debug server (#880 @M-Adoo)
  • tools: enhance MCP port discovery with best-match path strategies (#880 @M-Adoo)
  • widgets: migrate Container usages to hint_size for improved layout consistency (#876 @M-Adoo)

πŸ“š Documentation

  • simplify checkbox two-way binding in todos example and tutorial using TwoWay (#875 @wjian23)
  • tools: update debug workflows and developer guides for MCP (#878 @M-Adoo)

πŸ’₯ Breaking

  • core: convert Void and Container to field-bearing structs and add hint_size field (#873 @M-Adoo)
  • tools: remove Node.js MCP adapter in favor of native CLI implementation (#878 @M-Adoo)
  • tools: start_app now requires an absolute project_path argument instead of binary/package names (#881 @M-Adoo)
πŸ”§ Internal
  • build(tools): πŸ€– use cache-cargo-install-action for ribir-bot in workflows (#877 @M-Adoo)
  • build(tools): πŸ€– use annotated tag for releases (#874 @M-Adoo)

v0.4.0-alpha.56

04 Feb 14:37

Choose a tag to compare

v0.4.0-alpha.56 Pre-release
Pre-release

🎨 Features

  • cli: add MCP support to Ribir CLI (#870 @wjian23)
  • core: add min/max size constraints to FatObj for more ergonomic layout control (#865 @M-Adoo)
  • core: add width, height and size as builtin properties for all widgets (#843 @wjian23)
  • core: introduce MCP debug server for remote inspection (#870 @wjian23)
  • core: introduce VariantSource for unified reactive composition and transformation (#862 @M-Adoo)
  • core: unify align and anchor positioning into AnchorX and AnchorY (#843 @wjian23)
  • widgets: add Center and End support for flex JustifyContent (#868 @wjian23)
  • widgets: add debug metadata support to builtin widgets (#870 @wjian23)
  • πŸ€– enhance changelog collection and release automation (#857 @M-Adoo)

πŸ› Fixed

  • macros: exclude $clone references from watch! and pipe! dependency tracking (#862 @M-Adoo)

πŸ”„ Changed

  • core: introduce ClassChain struct for combining multiple classes (#861 @M-Adoo)
  • core: replace self_positioned with adjust_position for more robust widget positioning (#867 @wjian23)
  • core: split Render::perform_layout into measure and place_children phases (#843 @wjian23)
  • core: update layout placement flow to consistently apply position adjustments to all widgets (#867 @wjian23)
  • macros: support automatic widget macro generation for simple declarers (#859 @M-Adoo)
  • widgets: remove SizedBox and FractionallySizedBox in favor of builtin size properties (#843 @wjian23)
  • widgets: rename JustifyContent::Compact to JustifyContent::Start (#868 @wjian23)
  • widgets: update internal widgets to use the new multi-class support (#869 @M-Adoo)

πŸ“š Documentation

  • add AI agent development guide (#861 @M-Adoo)
  • update interactive widget design documentation and validation examples (#862 @M-Adoo)

πŸ’₯ Breaking

  • core: remove ClassChain and support multiple classes via ClassList in the class field (#869 @M-Adoo)
  • core: remove HAlign, VAlign, and GlobalAnchor widgets and properties (#843 @wjian23)
  • core: rename class_multi_impl to class_chain_impl and remove class_array macro (#861 @M-Adoo)
  • core: rename Measure::Percent to Measure::Unit and update percent() to scale values by 1/100. (#866 @M-Adoo)
  • core: rename Variant::clone_value to snapshot and replace map_with_watcher with combine_with (#862 @M-Adoo)
πŸ”§ Internal
  • build(tools): πŸ€– fix GitHub token usage in release workflows (#872 @M-Adoo)
  • build(tools): πŸ€– skip fork repos and configure git auth in release workflows (#871 @M-Adoo)
  • build(tools): πŸ€– use CRATE_RELEASE_TOKEN for rc-bot (#863 @M-Adoo)
  • build(tools): πŸ€– migrate release tooling from cargo-workspaces to cargo-edit (#858 @M-Adoo)
  • πŸ’‘ replace DisabledRipple with DisableInteractiveLayer (#856 @M-Adoo)

v0.4.0-alpha.55

21 Jan 06:01

Choose a tag to compare

v0.4.0-alpha.55 Pre-release
Pre-release

🎨 Features

  • cli: overhaul bundle command with build/pack subcommands and auto-profile detection (#855 @M-Adoo)
  • core: introduce TwoWay binding for bi-directional data synchronization (#842 @M-Adoo)
  • macros: add event attribute to #[declare] for automated state write-back (#842 @M-Adoo)
  • macros: automate asset integration for bundling via build-time manifest recording (#855 @M-Adoo)
  • widgets: add on_action for unified tap, Enter, and Space handling (#844 @M-Adoo)
  • widgets: initialize gallery example project (#854 @M-Adoo)

πŸ› Fixed

  • macros: auto-bind self-event handlers for uncontrolled fields (#852 @M-Adoo)
  • tools: switch pr-bot to pull_request_target for secret access on forks (#844 @M-Adoo)
  • widgets: refactor Slider layout and support click-to-update interaction (#842 @M-Adoo)
  • πŸ› fix asset path resolution during cargo package (#836 @M-Adoo)
  • πŸ› switch to pull_request_target and support it in ribir-bot (#840 @M-Adoo)

πŸ”„ Changed

  • macros: deprecate #[simple_declare] in favor of #[declare(simple)] (#839 @M-Adoo)
  • macros: refactor Declare macro implementation and introduce #[declare] attribute macro (#839 @M-Adoo)
  • macros: replace #[derive(Declare)] with a more flexible #[declare] attribute macro (#844 @M-Adoo)
  • themes: update default neutral palette colors and refresh visual test snapshots (#850 @M-Adoo)
  • tools: migrate bundle configuration to [package.metadata.bundle] in Cargo.toml (#855 @M-Adoo)
  • tools: move cli package to tools/cli and update workspace structure (#844 @M-Adoo)
  • tools: switch to cargo-workspaces for release management (#850 @M-Adoo)
  • widgets: refactor Checkbox, Slider and RangeSlider to use event-driven state updates (#852 @M-Adoo)
  • widgets: use new event declaration for Checkbox to simplify implementation. (#851 @M-Adoo)

πŸ“š Documentation

  • add Interactive Widget Design standard document (#842 @M-Adoo)
  • update documentation for the new bundling system and asset integration (#855 @M-Adoo)
  • update documentation and examples to use the new #[declare] macro (#839 @M-Adoo)

πŸ’₯ Breaking

  • core: rename on_custom_concrete_event to on_custom and on_custom_event to on_raw_custom (#842 @M-Adoo)
  • macros: replace #[simple_declare] with #[declare(simple)] (#842 @M-Adoo)
  • widgets: CheckboxEvent and CheckState are removed in favor of CheckboxChanged. (#851 @M-Adoo)
πŸ”§ Internal
  • ci: optimize CI workflow speed and parallelism (#841 @M-Adoo)
  • test(core):πŸ’ improve new_test_frame to handle complex widget layout… (#835 @M-Adoo)
  • move cli to tools/cli and update toolchain checks (#838 @M-Adoo)
  • tools: optimize CI performance using nextest and parallelization (#850 @M-Adoo)
  • implement Ribir release automation system (#837 @M-Adoo)

ribir-v0.4.0-alpha.54

08 Jan 12:25

Choose a tag to compare

ribir-v0.4.0-alpha.54 Pre-release
Pre-release

Features

  • core: Add Image widget with lazy WebP decoding, caching, and animation support. (#823 @M-Adoo)
  • core: Add a tool to run CI tests locally via cargo +nightly ci. (#822 @M-Adoo)

Changed

  • core: Refactor the scheduler to improve async ecosystem compatibility. (#815 @M-Adoo)
  • gpu: Upgrade wgpu to 0.28.0 and adapt to API changes. (#820 @M-Adoo)
  • gpu: Limit max filter kernel size to avoid macOS Metal hangs. (#820 @M-Adoo)

Fixed

  • core: Fix abnormal CPU usage on macOS caused by the side effects of cloning EventLoopProxy (#816 @wjian23).

Documented

ribir-v0.4.0-alpha.53

17 Dec 00:57

Choose a tag to compare

ribir-v0.4.0-alpha.53 Pre-release
Pre-release

Features

ribir-v0.4.0-alpha.52

03 Dec 00:59

Choose a tag to compare

ribir-v0.4.0-alpha.52 Pre-release
Pre-release

Features

  • themes: Material theme now registers icons to svg_registry. (#806 @M-Adoo)

  • widgets: add Badge widget for showing notifications, counts, or status information on top of another widget.(#805 @wjian23)

Breaking

  • themes: Removed IconTheme, fill_svgs!, svgs and material_svgs. Use svg_registry to manage and access icons instead. (#806 @M-Adoo)

ribir-v0.4.0-alpha.51

26 Nov 00:58

Choose a tag to compare

ribir-v0.4.0-alpha.51 Pre-release
Pre-release

Features

  • macros: add asset! macros for asset management.(#798 @M-Adoo)

  • macros: add include_asset! macro for compile-time asset embedding. (#799 @M-Adoo)

  • widgets: add Switch widget for toggling boolean states with Material Design styling and animations.(#804 @wjian23)

Breaking

  • macros: replace include_crate_svg! with new asset! macro for general asset management.(#798 @M-Adoo)

ribir-v0.4.0-alpha.50

19 Nov 00:58

Choose a tag to compare

ribir-v0.4.0-alpha.50 Pre-release
Pre-release

Fixed

  • core: reduce the memory usage. (#797 @wjian23)

    • update wgpu from v24 to v27, create gpu backend with memory_hints of MemoryHints::MemoryUsage
  • core: fix overlay close panic when window been closed. (#796 @wjian23)

Features

  • widgets: add changed event to Slider and Checkbox.(#796 @wjian23)

  • core: add window positioning and level control APIs.(#796 @wjian23)

  • example: add example of a Pomodoro timer app.(#796 @wjian23)

ribir-v0.4.0-alpha.47

20 Aug 00:58

Choose a tag to compare

ribir-v0.4.0-alpha.47 Pre-release
Pre-release

Features

  • cli: add support for packaging Ribir projects, see README.md in cli for details. (#777 @wjian23)

Fixed

  • gpu: Fixed the missed submission of GPU commands for drawing mask triangles, which led to abnormal color filling. (#781 @wjian23)

BREAKING