Releases: RibirX/Ribir
Releases Β· RibirX/Ribir
v0.4.0-alpha.58
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
β‘ Performance
π₯ Breaking
v0.4.0-alpha.57
π¨ 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
π 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
v0.4.0-alpha.56
π¨ 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
π 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
π¨ 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_frameto 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
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).