Skip to content

Update Rust crate gpui-kit to 0.9.1 - #97

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/gpui-kit-0.x
Open

renovate[bot] wants to merge 1 commit into
masterfrom
renovate/gpui-kit-0.x

Conversation

@renovate

@renovate renovate Bot commented Nov 9, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
gpui-kit (source) dependencies minor 0.8.1 → 0.9.1

Release Notes

longbridge/gpui-kit (gpui-kit)

v0.9.1

Compare Source

GPUI Kit v0.9.1

GPUI Kit 0.9.1 is a backward-compatible patch release. It adds a draggable GridLayout, right-pinned table columns, Markdown task checkboxes, link tooltips and motion transitions that outlive their element, along with a large batch of input, text, slider, accessibility and gpui-shell hardening fixes. The default backend moves to gpui-pre 0.3.12 and the optional GPUI Fast backend to 0.1.14.

New APIs

  • GridLayout: a grid whose items the user drags and resizes, also registered in the gpui-shell component catalog. (#​3770, #​3789)
  • Table: ColumnFixed::Right pins columns to the right edge. (#​3833)
  • Text: on_task_toggle makes Markdown task checkboxes clickable; block surfaces in TextView; pointer-following link tooltips. (#​3811, #​3830, #​3793)
  • Motion: TransitionState for transitions that outlive their element. (#​3841)
  • Components: Button::selected_accent, Slider::track_focus, Dialog::accessibility_label, TimeField::separator, Toolbar::axis for vertical toolbars, and a ratio-sized PieChart hole. (#​3775, #​3824, #​3826, #​3829, #​3821, #​3784)
  • WindowBorder: the frame colour comes from the window.border theme token, and window corners can be rounded on request. (#​3849, #​3848)

Editor and text input

  • Keep the first typed character in the editor search panel, compose decoration styles deterministically, draw a placeholder for a folded line, and show the arrow over the gutter. (#​3772, #​3777, #​3791, #​3806)
  • Tell the platform when the caret moves, publish layout at the end of prepaint, notify a moved input only while focused, and wait for the first layout before shaping an early value. (#​3827, #​3831, #​3828, #​3864)
  • Keep the caret's visual line at soft wraps. (#​3842)

Markdown and text rendering

  • Supply editor foreground ranges through the render context and give span-less HTML paragraphs unique ids. (#​3754, #​3771)
  • Tables: highlight the hovered body row, select aligned cell text where it is drawn, and size columns to their images. (#​3812, #​3813, #​3787)
  • Limit selection highlights to selected glyphs, draw unsized inline images at their own size, and avoid quadratic paragraph highlight merging. (#​3799, #​3786, #​3846)

Components

  • Table / DataTable: name rows after their cells, centre default header names, Tab and Shift+Tab leave a focused DataTable, and a selected cell gets a border distinct from hover. (#​3773, #​3731, #​3800, #​3866)
  • Slider: allow min above the default max while building, snap dragged values to steps from min, and step one thumb from assistive technology. (#​3823, #​3822, #​3840)
  • Menu: size items and default max width in rems, and open a scrollable menu on its checked item. (#​3809, #​3814)
  • Settings: follow locale changes in the search placeholder, clear search on Escape, show an empty state for unmatched searches. (#​3815, #​3816, #​3692)
  • Motion: reverse an interrupted transition as CSS does, and keep value-transition timing under reduced motion. (#​3820, #​3839)
  • Scrolling: stop smooth-scrolling wheels at the edge on macOS, let the parent scroll a swipe over a fitting horizontal area, and keep the overscroll stream alive through sideways packets. (#​3781, #​3779, #​3790)
  • List, Tab, WindowBorder: accent rows use accent_foreground, icon-only tabs keep their width, the element id path stays stable across decoration changes. (#​3774, #​3792, #​3783)
  • Diff: reject invalid hunk prefixes before slicing UTF-8. (#​3473)
  • WebView: fix an X11 abort when a WebView is dropped on Linux. (#​3862)

Accessibility

  • Report a disabled SliderThumb to assistive technology. (#​3825)

gpui-shell security and robustness

  • Require a network grant for WebViewState pages, accept only "*" as the unrestricted execute grant, and check Link.href against the URL scheme rule. (#​3782, #​3802, #​3804)
  • Refuse bundle values that would break generated scripts, bound script-supplied counts, nesting depth and self-nesting views, and leave proxy URLs out of the default process.env. (#​3803, #​3805, #​3808, #​3817, #​3810)
  • Stop a Git dependency selector being read as a git fetch option, honor the manifest entry when bundling, expose group hover to scripts, and shrink materialize_node frames. (#​3778, #​3682, #​3796, #​3807)

Dependencies

  • Update rustls-webpki and webpki-root-certs for CVE-2026-111943. (#​3801)
  • gpui-pre 0.3.12 and gpui-fast 0.1.14. Under GPUI Fast 0.1.14, views that were not notified reuse the previous frame instead of rebuilding. (#​3867)

Contributors

Thank you to everyone who contributed to this release

@​huacnlee, @​wangdiandao, @​yuluod, @​ganeshmshetty, @​Elitelord, @​AprilNEA, @​vinhnx, @​madcodelife, @​bhavishyasharma, @​obito-t, @​dedalqq, @​insd47, @​ylinwind, @​LuckyBulgur, @​alex-vas, @​ohdarling, @​mizorewww, @​Calvin-Yi, @​transilluminate, @​lurenjia534, @​bjornharrtell, @​NONPLAYT, @​iam4x.

What's Changed
New Contributors

Full Changelog: longbridge/gpui-kit@v0.9.0...v0.9.1

🤖 Noop (release-manager) · AI agent acting for @​huacnlee

v0.9.0

Compare Source

GPUI Kit v0.9.0

GPUI Kit 0.9.0 adds editor and Diff decorations, an application-level icon resolver, theme-configurable cursor blinking and an input edits event, along with many accessibility, menu, table and text-rendering fixes. The default backend moves to gpui-pre 0.3.11 and the optional GPUI Fast backend to 0.1.13.

This is a minor release because public theme structs are now #[non_exhaustive], which breaks struct literals outside the crate. See Breaking changes below for migration.

Editor and text input

  • Gutter and overview ruler decorations: GutterDecorationCollection marks lines in a strip before the line numbers, and OverviewRulerDecorationCollection marks them on the vertical scrollbar track, e.g. for lines added, modified or deleted by version control. Highlight themes now read the created, modified and deleted status colors. (#​3704)
  • Edit events: InputEditsEvent is emitted with each InputEvent::Change and carries the batch of InputEdits, each with the document after it, for Input, Textarea and Editor. (#​3751)
  • Cursor blinking: Theme::cursor_blink with CursorBlink::steady(), CursorBlink::blinking(interval) and with_idle_timeout configures the caret for every input. The default stays at 500 ms with no idle timeout. (#​3713)
  • Native touch selection: set_native_touch_selection leaves selection handles and the edit menu to the platform; set_selected_text_range is now implemented so the platform or IME can move the selection. (#​3723)
  • Restore backward selections through set_selected_range, reuse measured wraps during live resize, keep hover working across the whole visible editor after scrolling, and paint editor popups above dialogs. (#​3756, #​3691, #​3734, #​3700)

Diff

  • Line decorations and gutter markers: Diff::decorations paints backgrounds on line ranges with DiffDecoration, and Diff::gutter_markers with render_gutter_marker places interactive markers beside lines without changing the selection. (#​3703)
  • Keep the vertical scrollbar at the viewport edge when soft_wrap is off. (#​3739)

Markdown and text rendering

  • Render reference-style Markdown images, continue alphabetic ordered-list numbering after Z, and preserve list body width in fitted containers. (#​3683, #​3722, #​3759)
  • Draw marked text in a color that reads on its background. (#​3746)
  • Fix an application shutdown deadlock during layout cleanup, and avoid resolving the window selection during paint in selectable text. (#​3697, #​3699)

Components

  • Icon: set_icon_resolver lets the application choose the path every icon is drawn from, including icons drawn inside components, for runtime icon themes. resolve_icon_path serves custom components that draw with svg(). (#​3633)
  • Menu: submenu rows are activatable, and a submenu opens on the left only when the right side has no room. (#​3714, #​3736)
  • Table: column resize follows the point where the drag started. (#​3732)
  • Combobox: correct filtered selection events and confirmation. (#​3449)
  • VirtualList: rebuild cached geometry when the axis or gap changes, and use the height constraint when a horizontal list infers its height. (#​3719, #​3720)
  • MessageScroller: the scrollbar reaches the end of padded content. Popover clears focus on close when nothing had focus at open. Toolbar ends its wrap search at the first repeated stop. (#​3615, #​3718, #​3716)
  • Settings: show an empty state for unmatched searches; the sidebar follows scrolling. (#​3701)
  • Motion: directly built easing curves with nothing to sample behave as linear. (#​3721)
  • Speech: SpeechWaveform gains a liquid appearance, SpeechButton shows the voice while capturing, and macOS privacy access no longer falls on the terminal. (#​3725, #​3726, #​3730)

Accessibility

  • Tables give the focused element the grid role and move assistive-technology focus with the selected row or cell. (#​3727, #​3758)
  • Menus report checked and unchecked items correctly; command palette rows are named after their item; icon-only close buttons have names. (#​3729, #​3761, #​3728, #​3741)

Localization and testing

  • Add Russian (ru) translations. (#​3745)
  • Test support can observe painted text and alternative text, and Toolbar is registered for snapshot queries. (#​3724, #​3717)

Breaking changes

Theme structs are #[non_exhaustive] (#​3713, #​3704). Struct literals, including ..Default::default(), no longer compile outside the defining crate. Later field additions will not break callers again.

  • gpui-base: Theme, SemanticThemeTokens, ColorTokens, RadiusTokens, SpacingTokens, TypographyTokens, TextStyleToken, ShadowTokens, ResizableTheme, ListSettings
  • gpui-component: Theme, ThemeColor, ThemeToken, ThemeSet, ThemeConfig, ThemeConfigColors, Semantic*Config, MotionTokens, HighlightTheme, HighlightThemeStyle, SyntaxColors, SheetSettings, NotificationSettings

Start from Default::default() or the existing constructor (ColorTokens::light, ShadowTokens::elevations, …) and assign fields:

-let theme = Theme { radius: px(4.), ..Default::default() };
+let mut theme = Theme::default();
+theme.radius = px(4.);

DisplayMap is no longer UnwindSafe / RefUnwindSafe.

Upstream GPUI compatibility

gpui-pre 0.3.11 / gpui-fast 0.1.13 (#​3766):

  • Window::text_system() returns &Rc<WindowTextSystem> instead of &Arc, and WindowTextSystem is no longer Send/Sync.
  • Animation reads the executor clock instead of Instant::now(), so it follows the test clock. Tests that slept on the wall clock should use advance_clock.

Thank you to everyone who contributed code, documentation, testing, and feedback!

What's Changed

New Contributors

Full Changelog: longbridge/gpui-kit@v0.8.1...v0.9.0


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "before 6am on monday"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/gpui-kit-0.x branch from 4995d70 to 24585cc Compare November 9, 2026 19:26
@renovate renovate Bot changed the title Update Rust crate gpui-kit to 0.9.0 Update Rust crate gpui-kit to 0.9.1 Nov 9, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants