feat(tui): retain cache when cycling between subagent/parent sessions for perf (#1981)

This commit is contained in:
Yihui Khuu
2025-08-16 23:58:13 +10:00
committed by GitHub
parent ca3769b7fa
commit b3885d1614
2 changed files with 26 additions and 2 deletions

View File

@@ -171,7 +171,11 @@ func (m *messagesComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
m.showThinkingBlocks = !m.showThinkingBlocks
m.app.State.ShowThinkingBlocks = &m.showThinkingBlocks
return m, tea.Batch(m.renderView(), m.app.SaveState())
case app.SessionLoadedMsg, app.SessionClearedMsg:
case app.SessionLoadedMsg:
m.tail = true
m.loading = true
return m, m.renderView()
case app.SessionClearedMsg:
m.cache.Clear()
m.tail = true
m.loading = true
@@ -183,6 +187,21 @@ func (m *messagesComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
return m, m.renderView()
}
case app.SessionSelectedMsg:
currentParent := m.app.Session.ParentID
if currentParent == "" {
currentParent = m.app.Session.ID
}
targetParent := msg.ParentID
if targetParent == "" {
targetParent = msg.ID
}
// Clear cache only if switching between different session families
if currentParent != targetParent {
m.cache.Clear()
}
m.viewport.GotoBottom()
case app.MessageRevertedMsg:
if msg.Session.ID == m.app.Session.ID {