Skip to content

Fix StoredView missing child_view_ids delegation (build break)#12877

Merged
alokedesai merged 2 commits into
masterfrom
oz-agent/fix-stored-view-child-view-ids
Jun 21, 2026
Merged

Fix StoredView missing child_view_ids delegation (build break)#12877
alokedesai merged 2 commits into
masterfrom
oz-agent/fix-stored-view-child-view-ids

Conversation

@alokedesai

@alokedesai alokedesai commented Jun 21, 2026

Copy link
Copy Markdown
Member

Description

Fixes a build break caused by a semantic merge conflict between #12633 and #12746, and makes the fix properly extensible for TUI views.

Root cause: #12633 ("Add TUI API surface to AppContext under tui") introduced StoredView — a Gui/Tui enum replacing Box<dyn AnyView> as the value type of Window.views. It forwarded every neutral hook to the inner view except child_view_ids. #12746 ("Cross Window Tab Dragging Bug Fixes") had already added a call to view.child_view_ids(self) in collect_transferable_subtree (app.rs:3306), which compiled fine against Box<dyn AnyView> but broke once the map type changed. Because #12633 was not rebased on #12746, its CI was green; the breakage only surfaced on the dev release branch after both landed.

Changes:

  1. StoredView (window.rs): delegates child_view_ids to the inner view for both Gui and Tui arms, mirroring every other hook already present.

  2. TuiView / AnyTuiView (view/tui.rs): threads child_view_ids through the full TUI trait stack — added to TuiView (defaulting to Vec::new()), to the AnyTuiView object-safe interface, and to the impl<T: TuiView> AnyTuiView for T blanket impl. TUI views participate in the same structural parent/child graph as GUI views and could in principle hold out-of-graph child ViewHandles; any TuiView that does so can now override child_view_ids and have those children picked up correctly by collect_transferable_subtree during window transfer.

Linked Issue

N/A — this is a build-break hotfix.

  • The linked issue is labeled ready-to-spec or ready-to-implement.
  • Where appropriate, screenshots or a short video of the implementation are included below (especially for user-visible or UI changes).

Testing

  • I have manually tested my changes locally with ./script/run

cargo check -p warpui_core and cargo clippy -p warpui_core --lib --all-features -- -D warnings both pass.

Agent Mode

  • Warp Agent Mode - This PR was created via Warp's AI Agent Mode

Conversation: https://staging.warp.dev/conversation/edb30580-4cd8-4ca3-a230-a93f61bbc1f8
Run: https://oz.staging.warp.dev/runs/019eeaba-5589-7288-9a8f-4176d7a90cf2
This PR was generated with Oz.

#12633 introduced StoredView (a Gui/Tui enum wrapping Box<dyn AnyView>)
and added inherent delegating methods for every neutral hook, but omitted
child_view_ids. #12746 had already added a call to view.child_view_ids()
in collect_transferable_subtree (app.rs:3306), which compiled fine against
Box<dyn AnyView> but broke once the window.views map became
HashMap<EntityId, StoredView>.

Add the missing delegation so the build is green again.

Co-Authored-By: Oz <oz-agent@warp.dev>
@cla-bot cla-bot Bot added the cla-signed label Jun 21, 2026
TUI views participate in the same structural parent/child graph as GUI
views and could in principle hold out-of-graph child ViewHandles just like
GUI views can. Add child_view_ids to the TuiView trait (defaulting to
Vec::new()), surface it through AnyTuiView, and delegate from StoredView::Tui
instead of hard-coding Vec::new().

Any TuiView that holds child handles outside the structural graph can now
override the method and have those children picked up correctly by
collect_transferable_subtree during window transfer.

Co-Authored-By: Oz <oz-agent@warp.dev>
@alokedesai alokedesai marked this pull request as ready for review June 21, 2026 15:38
@oz-for-oss

oz-for-oss Bot commented Jun 21, 2026

Copy link
Copy Markdown
Contributor

@alokedesai

I'm starting a first review of this pull request.

You can view the conversation on Warp.

I completed the review and no human review was requested for this pull request.

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

@alokedesai alokedesai requested a review from vorporeal June 21, 2026 15:40

@oz-for-oss oz-for-oss Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overview

This PR restores child_view_ids delegation across the TUI view abstraction and StoredView, matching the existing GUI ownership traversal hook used during view tree transfer.

Concerns

  • No blocking correctness, security, or spec concerns found in the changed lines.

Verdict

Found: 0 critical, 0 important, 0 suggestions

Approve

Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).

Powered by Oz

@alokedesai alokedesai enabled auto-merge (squash) June 21, 2026 15:42
@alokedesai alokedesai merged commit f84c6ca into master Jun 21, 2026
71 of 75 checks passed
@alokedesai alokedesai deleted the oz-agent/fix-stored-view-child-view-ids branch June 21, 2026 16:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants