fix(web): Lineage follows a child session's current model#23838
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/mainpasses 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.
| Before | After |
|---|---|
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
- SuccessfulCodeRabbitGitHub
Review completed
- Successful
Skipped - Not affected
- SuccessfulCheckGitHub
- Skipped
- SkippedRustGitHub
- SkippedRelease SmokeGitHub
- Skipped
- SuccessfulTestGitHub
- SuccessfulTest WebGitHub
- SuccessfulBuild and TypecheckGitHub
- Skipped
- Skipped
- SuccessfulLabel PR sizeGitHub
- SuccessfulLabel PR 23838GitHub
- Successful
- Successful
- SkippedEAS PreviewGitHub
- SuccessfulCollect PR targetsGitHub
- SuccessfulPrepare PR size configGitHub
- SuccessfulTest Server 7GitHub
- SuccessfulTest Server 8GitHub
- SuccessfulTest Server 3GitHub
- SuccessfulTest Server 1GitHub
- SuccessfulTest Server 5GitHub
- SuccessfulTest Server 6GitHub
- SuccessfulLintGitHub
- SuccessfulTest Server 2GitHub
- SuccessfulTest Server 4GitHub
- SuccessfulChangesGitHub
- SuccessfulNative fingerprint diffGitHub
Added 1 commit
- fix(web): Lineage follows a child session’s current modelf966539
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.
No actionable comments were generated in the recent review. 🎉
ℹ️ Recent review info
⚙️ Run configuration
- Source mode: Auto
- Repository: pingdotgg/t3code
- Branch: main
- File: .coderabbit.config.ts
- Commit: ef92441
- Layers: Repository TS config
- Review profile: CHILL
- Plan: Advanced
- Run ID:
c3de6041-e809-40be-b5b3-e882ea3eee3c
📥 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.tsxapps/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.tsxApp-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 name Status Explanation Title check Passed The title clearly and concisely describes the main change: Lineage now follows a child session's current model. Description check Passed 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 change… Linked Issues check Passed The PR meets the coding requirements in [ #23837].ThreadRelationshipsPaneluses the app-owned child shell'smodelSelectionfor the model, provider instance, and options. Provider lookup uses the s…Out of Scope Changes check Passed 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 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].ThreadRelationshipsPaneluses the app-owned child shell'smodelSelectionfor 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.