From 4e66b9c985cfa478dd7d75dcc8eb9bf65077f7d1 Mon Sep 17 00:00:00 2001 From: Kujtim Hoxha Date: Thu, 22 Jan 2026 11:51:53 +0100 Subject: [PATCH] refactor(ui): enable initialize --- internal/ui/model/onboarding.go | 25 +++++++++++++++++++------ internal/ui/model/ui.go | 1 + 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/internal/ui/model/onboarding.go b/internal/ui/model/onboarding.go index 1b922282ae78bf0a89004abfff6098ec3240ff94..d18469ee822460e60544a304afebb37dac7fa0d9 100644 --- a/internal/ui/model/onboarding.go +++ b/internal/ui/model/onboarding.go @@ -8,9 +8,12 @@ import ( "charm.land/bubbles/v2/key" tea "charm.land/bubbletea/v2" "charm.land/lipgloss/v2" + + "github.com/charmbracelet/crush/internal/agent" "github.com/charmbracelet/crush/internal/config" "github.com/charmbracelet/crush/internal/home" "github.com/charmbracelet/crush/internal/ui/common" + "github.com/charmbracelet/crush/internal/uiutil" ) // markProjectInitialized marks the current project as initialized in the config. @@ -44,12 +47,22 @@ func (m *UI) updateInitializeView(msg tea.KeyPressMsg) (cmds []tea.Cmd) { // initializeProject starts project initialization and transitions to the landing view. func (m *UI) initializeProject() tea.Cmd { - // TODO: initialize the project - // for now we just go to the landing page - m.state = uiLanding - m.focus = uiFocusEditor - // TODO: actually send a message to the agent - return m.markProjectInitialized + // clear the session + m.newSession() + cfg := m.com.Config() + var cmds []tea.Cmd + + initialize := func() tea.Msg { + initPrompt, err := agent.InitializePrompt(*cfg) + if err != nil { + return uiutil.InfoMsg{Type: uiutil.InfoTypeError, Msg: err.Error()} + } + return sendMessageMsg{Content: initPrompt} + } + // Mark the project as initialized + cmds = append(cmds, initialize, m.markProjectInitialized) + + return tea.Sequence(cmds...) } // skipInitializeProject skips project initialization and transitions to the landing view. diff --git a/internal/ui/model/ui.go b/internal/ui/model/ui.go index 1c3320225b190d028a83c902f60c99c614023f3d..0290ab3d44734b1eacc8ab31b244866086ae1f85 100644 --- a/internal/ui/model/ui.go +++ b/internal/ui/model/ui.go @@ -1106,6 +1106,7 @@ func (m *UI) handleDialogMsg(msg tea.Msg) tea.Cmd { break } cmds = append(cmds, m.initializeProject()) + m.dialog.CloseDialog(dialog.CommandsID) case dialog.ActionSelectModel: if m.isAgentBusy() {