Keep parent tab highlighted when focus is on a sub-agent
The top tab bar compared against focusedID, so stepping into a sub-agent dropped the parent tab's highlight even though the user was still inside that thread. activeAgentID already walks the parent chain to the top-level root for the sidebar's agent tree — reuse it for the tab strip too.
This commit is contained in:
@@ -6,6 +6,13 @@ loosely follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
|
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Top tab bar now keeps the top-level agent's tab highlighted
|
||||||
|
when focus is on one of its sub-agents (or on a Processes pane
|
||||||
|
entry, matching the existing agent-tree behavior). Previously
|
||||||
|
the tab would lose its highlight as soon as you stepped into a
|
||||||
|
child agent, even though you were still within that thread.
|
||||||
|
|
||||||
## [0.0.2] - 2026-05-15
|
## [0.0.2] - 2026-05-15
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
@@ -24,7 +24,11 @@ func (st *uiState) drawTabBar() {
|
|||||||
}
|
}
|
||||||
st.mu.Lock()
|
st.mu.Lock()
|
||||||
palOpen := st.palette != nil
|
palOpen := st.palette != nil
|
||||||
focus := st.focusedID
|
// Highlight the top-level agent tab even when focus has stepped
|
||||||
|
// into a sub-agent (or a Processes pane entry). activeAgentID walks
|
||||||
|
// the parent chain to the root, so the user always sees which tab
|
||||||
|
// their current thread belongs to.
|
||||||
|
focus := st.activeAgentID
|
||||||
st.mu.Unlock()
|
st.mu.Unlock()
|
||||||
if palOpen {
|
if palOpen {
|
||||||
return
|
return
|
||||||
|
|||||||
Reference in New Issue
Block a user