Repository navigation
[v3-4-test] Add Map Index search to dag breadcrumb (#74763) - #74893
Merged
vatsrahul1001 merged 1 commit intoOct 17, 2026
Merged
Conversation
* UI: Search Dag names anywhere, and switch map index from the breadcrumb The Dag search only ever matched the start of a name, which is the wrong default for anyone who names Dags by team or domain and remembers the end of the name rather than its beginning. The Dags list already offers the choice, so the breadcrumb now offers the same one, on its own key: turning it on here is not a reason to change what that page does. An expanded task's instances were the one level of the breadcrumb that named where you were without letting you go anywhere else from it, even though a task with hundreds of instances is exactly where moving between them by hand is worst. * UI: Keep the map index level on an expanded task's summary The level only appeared once an instance was picked, so the one page listing every instance of a task was the one page with no way to jump to one. It now stands on "all map indexes" there, the way the run level stands on "all runs". * UI: Re-run a breadcrumb search when the match changes, not only the text Turning match-anywhere on left the results from the prefix search on screen until the text was edited, which read as the option doing nothing. react-select's async mode only reloads from its own input handler, so nothing outside the text could ask it for a new answer. The caller now owns the input and what is listed for it, which is also what lets a search in flight leave the previous answer up rather than emptying the panel, and makes the "no results" case say so. The panel width that was added here in passing is now upstream, so this uses that instead. * UI: Bound the map index search to the expansion set the page is in A looped task is expanded once per iteration, so the same map indexes exist several times over in a run. Listing them unscoped offered the user two rows called "0" and two called "1", and picking one led to a path that could not say which of them was meant. A task's expansions share one region and a loop mints one per iteration, so the region alone bounds the list to the instances the page is actually among — pinning the index as well would narrow it to the single instance already on screen. Each option carries its own coordinate so the link names an instance rather than a map index. * UI: Offer every map index once, and seat the match toggle in the input The map index level had been bounded to one pass, which the iteration level already decides; all this level owes the user is each index once, whichever pass expanded it. The row kept for an index is the one from the pass on screen, so moving between indexes stays where the user is rather than quietly moving them. The match-anywhere control also sat as a loose button beside the text instead of filling the end of the input, which is where the Dags list puts the same control. * UI: Stop the map index level navigating, and offer the whole expansion in its panel Clicking the level led to the page it was already on, and got there without the region the url carries, so a looped task arrived unable to say which pass it meant. Nothing was gained for it to cost that, so the naming half no longer navigates. Leaving the expansion was the one trip that click was good for, so the panel now offers it: it keeps the pass and lets go only of the instance within it. Backport notes: v3-4-test has no iteration level in the breadcrumb, so the loop pass crumb is left out and only the map index level is backported. The panel width prop the original relied on came from a later main-only change to CrumbSwitcher and is carried along here, since the map index panel sizes itself to a map index rather than a run id. (cherry picked from commit 028a4da) Co-Authored-By: Claude <noreply@anthropic.com>
bbovenzi
requested review from
choo121600,
guan404ming,
pierrejeambrun,
ryanahamilton,
shubhamraj-git and
vatsrahul1001
as code owners
October 16, 2026 20:11
shahar1
approved these changes
Oct 17, 2026
vatsrahul1001
approved these changes
Oct 17, 2026
vatsrahul1001
pushed a commit
that referenced
this pull request
Oct 20, 2026
* UI: Search Dag names anywhere, and switch map index from the breadcrumb The Dag search only ever matched the start of a name, which is the wrong default for anyone who names Dags by team or domain and remembers the end of the name rather than its beginning. The Dags list already offers the choice, so the breadcrumb now offers the same one, on its own key: turning it on here is not a reason to change what that page does. An expanded task's instances were the one level of the breadcrumb that named where you were without letting you go anywhere else from it, even though a task with hundreds of instances is exactly where moving between them by hand is worst. * UI: Keep the map index level on an expanded task's summary The level only appeared once an instance was picked, so the one page listing every instance of a task was the one page with no way to jump to one. It now stands on "all map indexes" there, the way the run level stands on "all runs". * UI: Re-run a breadcrumb search when the match changes, not only the text Turning match-anywhere on left the results from the prefix search on screen until the text was edited, which read as the option doing nothing. react-select's async mode only reloads from its own input handler, so nothing outside the text could ask it for a new answer. The caller now owns the input and what is listed for it, which is also what lets a search in flight leave the previous answer up rather than emptying the panel, and makes the "no results" case say so. The panel width that was added here in passing is now upstream, so this uses that instead. * UI: Bound the map index search to the expansion set the page is in A looped task is expanded once per iteration, so the same map indexes exist several times over in a run. Listing them unscoped offered the user two rows called "0" and two called "1", and picking one led to a path that could not say which of them was meant. A task's expansions share one region and a loop mints one per iteration, so the region alone bounds the list to the instances the page is actually among — pinning the index as well would narrow it to the single instance already on screen. Each option carries its own coordinate so the link names an instance rather than a map index. * UI: Offer every map index once, and seat the match toggle in the input The map index level had been bounded to one pass, which the iteration level already decides; all this level owes the user is each index once, whichever pass expanded it. The row kept for an index is the one from the pass on screen, so moving between indexes stays where the user is rather than quietly moving them. The match-anywhere control also sat as a loose button beside the text instead of filling the end of the input, which is where the Dags list puts the same control. * UI: Stop the map index level navigating, and offer the whole expansion in its panel Clicking the level led to the page it was already on, and got there without the region the url carries, so a looped task arrived unable to say which pass it meant. Nothing was gained for it to cost that, so the naming half no longer navigates. Leaving the expansion was the one trip that click was good for, so the panel now offers it: it keeps the pass and lets go only of the instance within it. Backport notes: v3-4-test has no iteration level in the breadcrumb, so the loop pass crumb is left out and only the map index level is backported. The panel width prop the original relied on came from a later main-only change to CrumbSwitcher and is carried along here, since the map index panel sizes itself to a map index rather than a run id. (cherry picked from commit 028a4da) Co-authored-by: Claude <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.
Backport of #74763 to
v3-4-test.The breadcrumb's iteration (loop pass) level does not exist on
v3-4-test, so only the map index level is backported. The optional panel-width prop that level relies on comes from a later change toCrumbSwitcheronmainand is carried along here, since a map index needs a narrower panel than a run id.Was generative AI tooling used to co-author this PR?
Generated-by: Claude Code (Opus 5) following the guidelines
🤖 Generated with Claude Code