Repository navigation
Conversation
Threads started with t3_thread_launch or create_threads had no link to the thread that started them, so the launcher's Lineage panel showed nothing while they ran. Launches now record the caller as the optional lineage.launchedByThreadId, and Lineage lists those threads like subagents, with running ones counted in its header. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
ApprovabilityVerdict: Approved at Macroscope's review found this PR approvable — This is a focused, backward-compatible fix that records which agent launched a top-level thread and displays that relationship in Lineage. It adds targeted coverage without changing thread execution, defaults, deployment behavior, or security-sensitive code. You can add or adjust custom eligibility rules. Learn more. |
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. 🧰 Additional context used📚 Code guidelines (1)No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (18)
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 0 remain after this review. 📝 WalkthroughWalkthroughThread creation paths now record the launching thread in lineage. Runtime relationship data derives launch edges, and the chat relationship control displays launched threads according to status. ChangesLauncher lineage
Priority: ➖ Normal Estimated code review effort: 3 (Moderate) | ~20 minutes Change: Bug fix Sequence Diagram(s)sequenceDiagram
participant Caller as Calling agent thread
participant ProjectHandler as Project handler
participant ThreadLaunchService
participant Orchestrator
participant RelationshipGraph as Thread relationship graph
participant ChatControl as Thread relationships control
Caller->>ProjectHandler: Call t3_thread_launch
ProjectHandler->>ThreadLaunchService: Pass launchedByThreadId
ThreadLaunchService->>Orchestrator: Dispatch thread.create
Orchestrator->>Orchestrator: Store launcher ID in lineage
RelationshipGraph->>RelationshipGraph: Derive launch edge and status
ChatControl->>RelationshipGraph: Read thread relationships
ChatControl->>ChatControl: Group and display launched thread
Suggested reviewers: Merge Risk: ⚪ Minimal · up to The launcher lineage change is mergeable after normal checks; no concrete issue remains that requires a fix before merge. 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
Full details: Description checkResolution Add the linked issue or maintainer approval and explain why the change qualifies for any scope exemption. Describe the focused tests or manual checks performed and their observed results. State anything that could not be checked; if tests were not run, say so. Full details: Docstring CoverageExplanation Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 8 functions across 15 files. (3 skipped: 3 unsupported.)
✨ Finishing Touches 💡 1📝 Generate docstrings 💡
🧪 Generate unit tests (beta)
Comment |
Client-dispatched thread.create commands already get their createdBy re-stamped at the WS boundary. Drop launchedByThreadId there too, so only the server's agent launch paths can name a launcher thread. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Baseline: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
|
i dont agree with this. this was a deliberate decision to not show. spawning new threads and delegating task should be differnet. i expect threads in the sidebar and subagents in the lineage panel... agents spawns top level threads as a more detached option to delegated tasks, and thus they should not be in the lineage panel. that's my 2 cents |
When an agent starts threads with
t3_thread_launchorcreate_threads, the thread that started them showed nothing in its Lineage panel. Six launched threads were running, but the launcher looked like no agents were active.The launched threads were fine. They just had no link back to the thread that started them.
Now a launch records the caller as
lineage.launchedByThreadId. Lineage lists those threads like subagents: running ones are expanded and counted in the header, and finished ones go under "Previous agents". The launched thread shows its launcher as "Parent thread". The field is optional, so older servers and clients still decode. The thread stays top-level: no parent, no merge-back, still in the sidebar. MCPt3_thread_listandt3_thread_readreturn the field too.Threads launched before this change are not backfilled.
Mobile has no Lineage view, so it is not affected.
Reviewed with sol-loop: 2 rounds with gpt-6.1-sol on xhigh.
Created with Claude Opus 5.5 in Claude Code.
🤖 Generated with Claude Code