新增: 会话分叉功能,优化增量扫描缓存
- 会话分叉: 按 c 键从历史会话分叉,支持带方向提示 - 启动自动加载历史记录 - 增量扫描: 缓存内存化、目录 modTime 跳过、已删除条目裁剪 - 刷新按钮复用 onTabSwitch 单一入口
This commit is contained in:
@@ -733,3 +733,51 @@ func recordFork(targetID, sourceID string) {
|
||||
os.MkdirAll(dir, 0o755)
|
||||
os.WriteFile(forksPath(home), data, 0o644)
|
||||
}
|
||||
|
||||
// --- AI 摘要与收藏操作 ---
|
||||
|
||||
func (m *Model) applySummary(sessionID, summary string, completed, pending []string) {
|
||||
if summary == "" {
|
||||
return
|
||||
}
|
||||
for _, pd := range m.history.Projects {
|
||||
for _, s := range pd.Sessions {
|
||||
if s.ID == sessionID {
|
||||
s.AISummary = summary
|
||||
s.Completed = completed
|
||||
s.Pending = pending
|
||||
updateSummaryInCache(m.history.Cache, sessionID, summary, completed, pending)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (m *Model) nextSummaryCmd() tea.Cmd {
|
||||
for _, pd := range m.history.Projects {
|
||||
for _, s := range pd.Sessions {
|
||||
needSummary := s.AISummary == "" && s.FirstMsg != ""
|
||||
needDetail := s.AISummary != "" && len(s.Completed) == 0 && len(s.Pending) == 0
|
||||
if (needSummary || needDetail) && s.FilePath != "" {
|
||||
return generateSummaryCmd(s.FilePath, s.ID)
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (m *Model) toggleFavorite() {
|
||||
if m.history.Favorites == nil {
|
||||
m.history.Favorites = loadFavorites()
|
||||
}
|
||||
s := m.currentSession()
|
||||
if s == nil {
|
||||
return
|
||||
}
|
||||
if m.history.Favorites[s.ID] {
|
||||
delete(m.history.Favorites, s.ID)
|
||||
} else {
|
||||
m.history.Favorites[s.ID] = true
|
||||
}
|
||||
saveFavorites(m.history.Favorites)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user