Repository navigation
Conversation
Nested provider tool calls were rendered as unrelated top-level work on web and mobile, obscuring their outer execution. Derive same-turn tool ancestry once in client-runtime, reject cycles and invalid parents, and preserve ordered child rows under each outer tool. Reuse existing disclosures and detail renderers, propagate live child status, preserve request access and search reveal, and invalidate mobile cached prefixes when late ancestry can change them. Implemented with GPT-6.1 Sol through Factory Droid. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
Reuse unchanged mobile parent activities and safe feed prefixes while invalidating affected ancestry. Render expanded children through the existing bounded lists with stable disclosure and scroll state. Allow explicit same-thread parent links for runless tools so Droid child-thread Scripts group without weakening thread or turn isolation. Cover identity, cache boundaries, virtualization, restoration, and runless scope. Implemented with GPT-6.1 Sol through Factory Droid. Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
…uped-nested-tools
…eat/grouped-nested-tools
…feat/grouped-nested-tools
…eat/grouped-nested-tools
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
This branch has not been deployed
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.
Droid in Script mode runs several tools inside one
Scriptcall. T3 shows the Script and each of its steps as separate top-level rows, so you can't tell which commands and edits belonged to which Script.This groups nested tool calls under their parent tool. A tool item whose
parentItemIdpoints to another tool item in the same thread and turn becomes a child row. The parent shows as one collapsible row, and each child keeps its normal row, with output, diff, approval and status. The Droid adapter in #3 setsparentItemIdfor Script steps. Any provider that sets it gets the same grouping.groupNestedToolItemsinpackages/client-runtime/src/work-log/nestedTools.ts, builds the tree for web and mobile.Stacked on #3.
Before and after
Web, the same Droid turn: one Script that ran three commands and created a file.
Narrow width:
Mobile has the same change but no captures yet.
Testing
nestedTools.test.ts: nesting, ordering, missing, foreign and non-tool parents, cycles, concurrent Scripts, interleaved top-level items, and child-thread tools.MessagesTimeline.logic.test.tsandthreadActivity.test.ts: grouping in each client, plus mobile identity reuse.MessagesTimeline.browser.test.tsx: 1,002 children stay virtualized and scroll correctly.Implemented with GPT-6.1 Sol through Factory Droid.