From e50eae105476c7177a2d36f97f1271d4fe39f222 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Mon, 29 Dec 2025 14:58:41 +0100 Subject: [PATCH] fix(coding-agent): display multiple roots at indent 0, keep child logic intact --- .../src/modes/interactive/components/tree-selector.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/coding-agent/src/modes/interactive/components/tree-selector.ts b/packages/coding-agent/src/modes/interactive/components/tree-selector.ts index 1b3cd280..438e66b5 100644 --- a/packages/coding-agent/src/modes/interactive/components/tree-selector.ts +++ b/packages/coding-agent/src/modes/interactive/components/tree-selector.ts @@ -46,6 +46,7 @@ class TreeList implements Component { private filterMode: FilterMode = "default"; private searchQuery = ""; private toolCallMap: Map = new Map(); + private multipleRoots = false; public onSelect?: (entryId: string) => void; public onCancel?: () => void; @@ -54,6 +55,7 @@ class TreeList implements Component { constructor(tree: SessionTreeNode[], currentLeafId: string | null, maxVisibleLines: number) { this.currentLeafId = currentLeafId; this.maxVisibleLines = maxVisibleLines; + this.multipleRoots = tree.length > 1; this.flatNodes = this.flattenTree(tree); this.applyFilter(); @@ -305,7 +307,9 @@ class TreeList implements Component { // Build line: cursor + indent + label + content + suffix const cursor = isSelected ? theme.fg("accent", "› ") : " "; - const indentStr = " ".repeat(flatNode.indent); + // If multiple roots, shift indent down by 1 for display (roots at 0, not 1) + const displayIndent = this.multipleRoots ? Math.max(0, flatNode.indent - 1) : flatNode.indent; + const indentStr = " ".repeat(displayIndent); const label = flatNode.node.label ? theme.fg("warning", `[${flatNode.node.label}] `) : ""; const content = this.getEntryDisplayText(flatNode.node, isSelected); const suffix = isCurrentLeaf ? theme.fg("accent", " *") : "";