fix(web): Lineage follows a child session's current model#23838

open1
main
GitHub fork: fix-child-session-model-label
opened1d agobyAAksharP5
View on GitHubTwo-way sync enabledPR last imported 1d ago

Problem

After a delegated child switches from Astra to Sol, its parent's Lineage hover card still reports Astra and the original effort. Users cannot tell whether the switch took effect.

Fixes #23837.

Change

Use the app-owned child thread's current selection for the Lineage model, provider account, and options. A missing catalog entry after a provider switch gets a generic icon rather than the original provider's icon.

Native children retain provider-reported metadata. Historical timeline cards retain their task settings.

Scope and approval

This is a small, focused fix for an existing display bug under the focused bug-fix exception. It changes only the web/desktop Lineage view and its regression coverage.

Verification

  • Browser regression on main: both delegated model-change cases fail; both native reported/unknown-model controls pass. With the patch: all four pass, including a completed original task with a running follow-up and a cross-provider switch.
  • vp run check:changed upstream/main passes on the rebased branch: format, lint, knip, affected-package typechecks, and browser tests.
  • GPT-6-Astra at High effort completed a final static review with no findings. Its earlier provider-icon fallback finding is addressed.

Matched client captures use synthetic persisted parent/child projections, Chromium 154, dark theme, 1440 × 900 CSS viewport, and DPR 1. The child view shows Sol / Extra High in both captures. Screenshots were captured on 22840ab943 before and after applying this patch; the branch is rebased onto ef92441313.

BeforeAfter
Before: Lineage still shows Astra and high effortAfter: Lineage shows Sol and xhigh effort

The fixture does not execute provider calls. Native mobile and remote/relay/tunnel modes were not exercised.

Model: GPT-6.1-Sol. Reviewer: GPT-6-Astra at High effort. Harness: Codex in T3 Code.

Checks

All checks passed

Added 1 commit

  • fix(web): Lineage follows a child session’s current modelf966539
Synced from GitHub

Approvability

Verdict: Approved at f966539

Macroscope's review found this PR approvable — This is a small, localized web bug fix that makes Lineage tooltips reflect an app-owned child session’s current model, provider, and options while preserving native-child behavior. The added browser coverage exercises model changes and cross-provider switches without changing provider execution or product defaults.

You can add or adjust custom eligibility rules. Learn more.

Synced from GitHub

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
📥 Commits

Reviewing files that changed from the base of the PR and between ef92441313da327139df75daa8f723c0f42348f6 and f96653935e41fba6169566a9cc31470c5820d0eb.

📒 Files selected for processing: 2
  • apps/web/src/components/chat/ThreadRelationshipsControl.browser.test.tsx
  • apps/web/src/components/chat/ThreadRelationshipsControl.tsx

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.

📝 Walkthrough

Lineage tooltips for app-owned delegated children now prefer the child thread’s current model selection, with provider and driver fallbacks. Browser tests cover updated Codex and Claude selections, plus reported and missing model values for provider-native children.

Changes: Lineage child model details

Layer / File(s)Summary
Resolve and display child model selection
apps/web/src/components/chat/ThreadRelationshipsControl.tsx, apps/web/src/components/chat/ThreadRelationshipsControl.browser.test.tsx
App-owned child tooltips now prefer the child thread’s model and provider selection, with fallback behavior for provider and driver details. Browser tests check selection updates and provider-native model reporting.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix · Severity of issue fixed: Low

Suggested reviewers: juliusmarminge

Merge Risk: ⚪ Minimal · up to f9665

No blocking Lineage issue was identified; the change is ready to merge after normal checks.

Pre-merge checks: Passed 4
Check nameStatusExplanation
Title checkPassedThe title clearly and concisely describes the main change: Lineage now follows a child session's current model.
Description checkPassedThe description covers the problem, change, scope and approval rationale, verification results, screenshots, limitations, and agent attribution. It is specific and aligned with the pull request change…
Linked Issues checkPassedThe PR meets the coding requirements in [#23837]. ThreadRelationshipsPanel uses the app-owned child shell's modelSelection for the model, provider instance, and options. Provider lookup uses the s…
Out of Scope Changes checkPassedThe changes stay within the issue scope. The PR changes only the web Lineage component and its focused browser regression test. The test fixtures support the required app-owned and provider-native cas…
Full details: Description check

Explanation

The description covers the problem, change, scope and approval rationale, verification results, screenshots, limitations, and agent attribution. It is specific and aligned with the pull request changes.

Full details: Linked Issues check

Explanation

The PR meets the coding requirements in [#23837]. ThreadRelationshipsPanel uses the app-owned child shell's modelSelection for the model, provider instance, and options. Provider lookup uses the selected instance and does not reuse the original driver when a switched provider is unavailable. Native children continue to use projected provider metadata. The browser tests cover Astra-to-Sol, cross-provider switching, native reported models, and native unknown models.

Full details: Out of Scope Changes check

Explanation

The changes stay within the issue scope. The PR changes only the web Lineage component and its focused browser regression test. The test fixtures support the required app-owned and provider-native cases. No unrelated product behavior or repository area is changed.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR

Comment @coderabbitai help to get the list of available commands.