@@ -28,6 +28,7 @@ import (
2828 "github.com/charmbracelet/crush/internal/agent/notify"
2929 agenttools "github.com/charmbracelet/crush/internal/agent/tools"
3030 "github.com/charmbracelet/crush/internal/agent/tools/mcp"
31+ "github.com/charmbracelet/crush/internal/app"
3132 "github.com/charmbracelet/crush/internal/commands"
3233 "github.com/charmbracelet/crush/internal/config"
3334 "github.com/charmbracelet/crush/internal/fsext"
@@ -213,7 +214,7 @@ type UI struct {
213214 }
214215
215216 // lsp
216− lspStates map[string]workspace.LSPClientInfo
217+ lspStates map[string]app.LSPClientInfo
217218
218219 // mcp
219220 mcpStates map[string]mcp.ClientInfo
@@ -315,7 +316,7 @@ func New(com *common.Common, initialSessionID string, continueLast bool) *UI {
315316 completions: comp,
316317 attachments: attachments,
317318 todoSpinner: todoSpinner,
318− lspStates: make(map[string]workspace.LSPClientInfo),
319+ lspStates: make(map[string]app.LSPClientInfo),
319320 mcpStates: make(map[string]mcp.ClientInfo),
320321 notifyBackend: notification.NoopBackend{},
321322 notifyWindowFocused: true,
@@ -615,8 +616,8 @@ func (m *UI) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
615616 m.renderPills()
616617 case pubsub.Event[history.File]:
617618 cmds = append(cmds, m.handleFileEvent(msg.Payload))
618− case pubsub.Event[workspace.LSPEvent]:
619− m.lspStates = m.com.Workspace.LSPGetStates()
619+ case pubsub.Event[app.LSPEvent]:
620+ m.lspStates = app.GetLSPStates()
620621 case pubsub.Event[mcp.Event]:
621622 switch msg.Payload.Type {
622623 case mcp.EventStateChanged: