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.
This commit is contained in:
Lawrence Chen 2026-02-17 19:33:20 -08:00 committed by GitHub
parent be74e73b20
commit 4220c3808f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -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 })