Skip to content

Commit 331c4d1

Browse files
committed
fix(desktop): scope task tree to primary threads
1 parent 3bde832 commit 331c4d1

3 files changed

Lines changed: 19 additions & 0 deletions

File tree

desktop/garyx-desktop/src/renderer/src/app-shell/components/ThreadPage.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -589,6 +589,7 @@ export function ThreadPage({
589589
>
590590
{shouldShowThreadTaskTreePopover({
591591
inspectorOpen,
592+
isSideChatSurface,
592593
selectedThreadId,
593594
threadLogsOpen,
594595
}) && selectedThreadId ? (

desktop/garyx-desktop/src/renderer/src/app-shell/components/thread-task-tree-popover-model.test.mjs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ test("task tree popover yields to inspector panel", () => {
223223
assert.equal(
224224
shouldShowThreadTaskTreePopover({
225225
inspectorOpen: false,
226+
isSideChatSurface: false,
226227
selectedThreadId: "thread::current",
227228
threadLogsOpen: false,
228229
}),
@@ -231,6 +232,7 @@ test("task tree popover yields to inspector panel", () => {
231232
assert.equal(
232233
shouldShowThreadTaskTreePopover({
233234
inspectorOpen: true,
235+
isSideChatSurface: false,
234236
selectedThreadId: "thread::current",
235237
threadLogsOpen: false,
236238
}),
@@ -239,6 +241,7 @@ test("task tree popover yields to inspector panel", () => {
239241
assert.equal(
240242
shouldShowThreadTaskTreePopover({
241243
inspectorOpen: false,
244+
isSideChatSurface: false,
242245
selectedThreadId: "thread::current",
243246
threadLogsOpen: true,
244247
}),
@@ -247,13 +250,26 @@ test("task tree popover yields to inspector panel", () => {
247250
assert.equal(
248251
shouldShowThreadTaskTreePopover({
249252
inspectorOpen: false,
253+
isSideChatSurface: false,
250254
selectedThreadId: null,
251255
threadLogsOpen: false,
252256
}),
253257
false,
254258
);
255259
});
256260

261+
test("task tree popover stays on the primary thread surface", () => {
262+
assert.equal(
263+
shouldShowThreadTaskTreePopover({
264+
inspectorOpen: false,
265+
isSideChatSurface: true,
266+
selectedThreadId: "thread::side-chat",
267+
threadLogsOpen: false,
268+
}),
269+
false,
270+
);
271+
});
272+
257273
test("fallback rows preserve original parent edges for done ancestors", () => {
258274
const doneAncestor = task({ number: 1, status: "done" });
259275
const activeChild = task({

desktop/garyx-desktop/src/renderer/src/app-shell/components/thread-task-tree-popover-model.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,12 +49,14 @@ export function isCurrentTaskTreeNode(
4949

5050
export function shouldShowThreadTaskTreePopover(input: {
5151
inspectorOpen: boolean;
52+
isSideChatSurface: boolean;
5253
selectedThreadId: string | null;
5354
threadLogsOpen: boolean;
5455
}): boolean {
5556
return Boolean(
5657
input.selectedThreadId &&
5758
!input.inspectorOpen &&
59+
!input.isSideChatSurface &&
5860
!input.threadLogsOpen,
5961
);
6062
}

0 commit comments

Comments
 (0)