From 4220c3808fd958b0b6796749322bdb42cf5a6c72 Mon Sep 17 00:00:00 2001 From: Lawrence Chen <54008264+lawrencecchen@users.noreply.github.com> Date: Tue, 17 Feb 2026 19:33:20 -0800 Subject: [PATCH] Fix sidebar metadata commands failing in multi-window setups (#54) resolveTabForReport only searched the active window's tab manager, so report_ports, report_git_branch, report_pwd, set_status etc. returned "Tab not found" when the shell's --tab UUID belonged to a different window. Fall back to AppDelegate.tabManagerFor(tabId:) to search all window contexts. --- Sources/TerminalController.swift | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Sources/TerminalController.swift b/Sources/TerminalController.swift index f1296cd7..c4487325 100644 --- a/Sources/TerminalController.swift +++ b/Sources/TerminalController.swift @@ -8661,7 +8661,15 @@ class TerminalController { guard let tabManager else { return nil } let parsed = parseOptions(args) if let tabArg = parsed.options["tab"], !tabArg.isEmpty { - return resolveTab(from: tabArg, tabManager: tabManager) + if let tab = resolveTab(from: tabArg, tabManager: tabManager) { + return tab + } + // The tab may belong to a different window — search all contexts. + if let uuid = UUID(uuidString: tabArg.trimmingCharacters(in: .whitespacesAndNewlines)), + let otherManager = AppDelegate.shared?.tabManagerFor(tabId: uuid) { + return otherManager.tabs.first(where: { $0.id == uuid }) + } + return nil } guard let selectedId = tabManager.selectedTabId else { return nil } return tabManager.tabs.first(where: { $0.id == selectedId })