Repository navigation
chore: Allow compatible gpui-fast dependency updates - #47
Merged
Merged
Conversation
Co-authored-by: Codex <codex@openai.com>
trancong12102
added a commit
to aislopware/gpui-fast
that referenced
this pull request
Oct 9, 2026
Takes longbridge#44 (chat transcript lists stay composited on their scroll layers), longbridge#46 (layout panics and stale rendering in view splices), longbridge#47 (caret sibling requirements in releases) and longbridge#49 (Taffy 0.14 with MeasuredTaffy). Leaves out longbridge#41, longbridge#42 and longbridge#43, upstream's window composition for X11 and wgpu, as the fork keeps its own composition (as in ed16b23). Conflicts: - Cargo.lock: ours, re-resolved for taffy 0.14 (no gtk/wry). - docs/upstream-sync.md: ours plus upstream's Taffy 0.14 entry; the composition entry stays out. - gpui_perf/Cargo.toml: ours (no linux_webview, no webview deps). - gpui_perf/src/runner.rs: both scroll scenario lists. - gpui_macos/src/fast/composition.rs, gpui_linux x11/window.rs and client.rs, the three composition.rs files, README, ci.yml: ours. - fast/dependencies.rs: ours (interned, sorted states, Checked) with longbridge#44's shared read logs and dependencies_so_far, its states interned as ours. - fast/layers/invalidate.rs: longbridge#44's OwnerChange and render_dependencies; with_own_rebuild keeps our rebuild ranges and note_rebuild guard and falls back on longbridge#44's rendering_since. - fast/layers/lists.rs: both row fields (fades, reads); our row scene insertion; drawn_alike over fast::scene::operations. - fast/layout.rs: both retention fields (root_phases; pending_replays, list_rows). - fast/layout_key.rs: longbridge#44's list row hooks with our fast_retention(). - fast/retained.rs: both state fields; note_rebuild and note_rendering both called; recording.rendered before our place_root. - fast/splice.rs: ours (splice_gaps, deferred_out_of_date, kept_layout, Checked) with longbridge#46's layout_reaches guard and offset-read checks for the view, its gaps and its deferred draws; render_dependencies copied. - fast/tests/retained.rs: both sides' tests. - fast/tests/layers_lists.rs: our outside-write test now checks the frame draws as without layers (under longbridge#44 the rows render again on a composited frame instead of demoting). - gpui_perf chat.rs: momentum_phase for our ScrollWheelEvent. cargo test -p gpui --features test-support --lib: 764 passed. gpui_perf --headless --verify: 72 checks identical. settings-toggle (retained): 61.75M -> 23.60M instructions per frame, 1735 -> 25 measure calls, layout 4.2 ms -> 1.5 ms. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
cargo update -p gpui-fastcurrently cannot advance the core while a locked platform package requires its exact old version. Generate caret sibling requirements (for example^0.1.6) instead, and make publication validation enforce those requirements. Support snapshot pins remain unchanged.Add release tests and run them in release CI. The Cargo regression starts with core/macros/platform at 0.1.5, introduces core/macros 0.1.6, updates only gpui-fast, and confirms platform stays at 0.1.5 with a single shared core type that compiles. Also cover version boundaries and rejection of exact pins.
Existing registry versions are immutable. Consumers must first update the full package set to a release containing this change; subsequent compatible core updates can use a single package selector. Breaking changes require a new compatibility series.
Test Plan
bun test script/release.test.ts: 3 tests passed (15 assertions); confirmed regression fails with the old generator.bun script/prepare-release.ts --tag v0.1.6andbun script/publish-release.ts: all nine generated packages passed package-content and dependency-order validation; no upload.python3 script/check-upstream: 0 violations.cargo fmt -p gpui -p gpui_perf -- --checkandgit diff --check: passed.