From f06cd887734965a4acd55eae2f7cb13633f8456c Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Sat, 19 Jul 2025 18:41:21 -0400 Subject: perf: more performance improvements --- packages/tui/internal/components/chat/messages.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'packages/tui/internal/components/chat') diff --git a/packages/tui/internal/components/chat/messages.go b/packages/tui/internal/components/chat/messages.go index 7d8b1b3a9..8cd0c1fde 100644 --- a/packages/tui/internal/components/chat/messages.go +++ b/packages/tui/internal/components/chat/messages.go @@ -53,6 +53,8 @@ func (m *messagesComponent) Init() tea.Cmd { } func (m *messagesComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) { + measure := util.Measure("messages.Update") + defer measure("from", fmt.Sprintf("%T", msg)) var cmds []tea.Cmd switch msg := msg.(type) { case tea.WindowSizeMsg: @@ -102,6 +104,7 @@ func (m *messagesComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) { m.loading = false m.tail = m.viewport.AtBottom() m.viewport = msg.viewport + m.header = msg.header if m.dirty { cmds = append(cmds, m.renderView()) } @@ -117,12 +120,12 @@ func (m *messagesComponent) Update(msg tea.Msg) (tea.Model, tea.Cmd) { type renderCompleteMsg struct { viewport viewport.Model + header string partCount int lineCount int } func (m *messagesComponent) renderView() tea.Cmd { - m.header = m.renderHeader() if m.rendering { slog.Debug("pending render, skipping") @@ -138,6 +141,7 @@ func (m *messagesComponent) renderView() tea.Cmd { tail := m.tail return func() tea.Msg { + header := m.renderHeader() measure := util.Measure("messages.renderView") defer measure() @@ -405,6 +409,7 @@ func (m *messagesComponent) renderView() tea.Cmd { } return renderCompleteMsg{ + header: header, viewport: viewport, partCount: partCount, lineCount: lineCount, -- cgit v1.2.3