From 0795a577e0ee43cf7aefb13f4d152fed7c0d3d5b Mon Sep 17 00:00:00 2001 From: Yihui Khuu Date: Sat, 26 Jul 2025 00:32:06 +1000 Subject: [PATCH] fix: header width to display header in one line when sharing disabled (#1310) --- packages/tui/internal/components/chat/messages.go | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/tui/internal/components/chat/messages.go b/packages/tui/internal/components/chat/messages.go index 635d12b6..d2da2c60 100644 --- a/packages/tui/internal/components/chat/messages.go +++ b/packages/tui/internal/components/chat/messages.go @@ -670,15 +670,21 @@ func (m *messagesComponent) renderHeader() string { isSubscriptionModel := m.app.Model != nil && m.app.Model.Cost.Input == 0 && m.app.Model.Cost.Output == 0 + sessionInfoText := formatTokensAndCost(tokens, contextWindow, cost, isSubscriptionModel) sessionInfo = styles.NewStyle(). Foreground(t.TextMuted()). Background(t.Background()). - Render(formatTokensAndCost(tokens, contextWindow, cost, isSubscriptionModel)) + Render(sessionInfoText) shareEnabled := m.app.Config.Share != opencode.ConfigShareDisabled + headerTextWidth := headerWidth + if !shareEnabled { + // +1 is to ensure there is always at least one space between header and session info + headerTextWidth -= len(sessionInfoText) + 1 + } headerText := util.ToMarkdown( "# "+m.app.Session.Title, - headerWidth, + headerTextWidth, t.Background(), ) @@ -705,11 +711,9 @@ func (m *messagesComponent) renderHeader() string { items..., ) - var headerLines []string + headerLines := []string{headerRow} if shareEnabled { headerLines = []string{headerText, headerRow} - } else { - headerLines = []string{headerRow} } header := strings.Join(headerLines, "\n")