on main help sign in
fix(messages): truncate attachment paths by rune, not by byte
commita4ac72f06107002a4f3046d669a7a4569f0a4435 authorChristian Rocha <christian@rocha.is> dateSat 19 Jul 2025, 15:13 (1 year ago) parent16cf0bd
1 file changed+6−2
internal/tui/components/chat/messages/messages.go+6−2
internal/tui/components/chat/messages/messages.go+6−2
@@ -209,11 +209,15 @@ func (m *messageCmp) renderUserMessage() string {
209209 for _, attachment := range m.message.BinaryContent() {
210210 file := filepath.Base(attachment.Path)
211211 var filename string
212− if len(file) > 10 {
213− filename = fmt.Sprintf(" %s %s... ", styles.DocumentIcon, file[0:7])
212+ runes := []rune(file)
213+
214+ const truncatePathAt = 7
215+ if len(runes) > truncatePathAt {
216+ filename = fmt.Sprintf(" %s %s... ", styles.DocumentIcon, string(runes[0:truncatePathAt]))
214217 } else {
215218 filename = fmt.Sprintf(" %s %s ", styles.DocumentIcon, file)
216219 }
220+
217221 attachments = append(attachments, attachmentStyles.Render(filename))
218222 }
219223