feat: session manager

This commit is contained in:
adamdottv
2025-05-08 07:43:31 -05:00
parent 051d7d7936
commit bab17d7520
4 changed files with 101 additions and 4 deletions

View File

@@ -91,8 +91,11 @@ func (s *sessionDialogCmp) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
return s, nil
case key.Matches(msg, sessionKeys.Enter):
if len(s.sessions) > 0 {
selectedSession := s.sessions[s.selectedIdx]
// Update the session manager with the selected session
session.SetCurrentSession(selectedSession.ID)
return s, util.CmdHandler(SessionSelectedMsg{
Session: s.sessions[s.selectedIdx],
Session: selectedSession,
})
}
case key.Matches(msg, sessionKeys.Escape):

View File

@@ -128,17 +128,20 @@ func (p *chatPage) clearSidebar() tea.Cmd {
func (p *chatPage) sendMessage(text string, attachments []message.Attachment) tea.Cmd {
var cmds []tea.Cmd
if p.session.ID == "" {
session, err := p.app.Sessions.Create(context.Background(), "New Session")
newSession, err := p.app.Sessions.Create(context.Background(), "New Session")
if err != nil {
return util.ReportError(err)
}
p.session = session
p.session = newSession
// Update the current session in the session manager
session.SetCurrentSession(newSession.ID)
cmd := p.setSidebar()
if cmd != nil {
cmds = append(cmds, cmd)
}
cmds = append(cmds, util.CmdHandler(chat.SessionSelectedMsg(session)))
cmds = append(cmds, util.CmdHandler(chat.SessionSelectedMsg(newSession)))
}
_, err := p.app.CoderAgent.Run(context.Background(), p.session.ID, text, attachments...)