Skip to content

Commit c2b284d

Browse files
fix CI lint and release workflow
1 parent 4342752 commit c2b284d

2 files changed

Lines changed: 33 additions & 31 deletions

File tree

‎.github/workflows/release.yml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,14 @@ jobs:
2828
- name: Run tests (with FTS5 for hybrid search)
2929
env:
3030
CGO_CFLAGS: "-DSQLITE_ENABLE_FTS5"
31+
CGO_LDFLAGS: "-lm"
3132
run: go test -tags=sqlite_vec -short -v ./...
3233

3334
- name: Build Linux binary (with hybrid search)
3435
env:
3536
CGO_ENABLED: 1
3637
CGO_CFLAGS: "-DSQLITE_ENABLE_FTS5"
38+
CGO_LDFLAGS: "-lm"
3739
GOOS: linux
3840
GOARCH: amd64
3941
run: |

‎pkg/conv/actions.go‎

Lines changed: 31 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -343,46 +343,46 @@ func formatContextOutput(result *ContextResult, format string) string {
343343
if len(result.KeyPoints) > 0 {
344344
sb.WriteString("### Key Decisions\n")
345345
for _, point := range result.KeyPoints {
346-
sb.WriteString(fmt.Sprintf("- %s\n", point))
346+
fmt.Fprintf(&sb, "- %s\n", point)
347347
}
348348
sb.WriteString("\n")
349349
}
350350

351351
for i, turn := range result.LastTurns {
352-
sb.WriteString(fmt.Sprintf("### Turn %d\n", i+1))
353-
sb.WriteString(fmt.Sprintf("**USER:** %s\n\n", turn.UserContent))
354-
sb.WriteString(fmt.Sprintf("**ASSISTANT:** %s\n\n", turn.AssistContent))
352+
fmt.Fprintf(&sb, "### Turn %d\n", i+1)
353+
fmt.Fprintf(&sb, "**USER:** %s\n\n", turn.UserContent)
354+
fmt.Fprintf(&sb, "**ASSISTANT:** %s\n\n", turn.AssistContent)
355355
}
356356

357357
sb.WriteString("---\n")
358-
sb.WriteString(fmt.Sprintf("*Resume: %s*\n", result.ResumeCommand))
358+
fmt.Fprintf(&sb, "*Resume: %s*\n", result.ResumeCommand)
359359

360360
case "prompt":
361361
sb.WriteString("## Previous Session Context\n\n")
362-
sb.WriteString(fmt.Sprintf("**Project:** %s\n", result.Project))
363-
sb.WriteString(fmt.Sprintf("**Date:** %s (%s)\n", result.Date.Format("2006-01-02"), relativeTime(result.Date)))
364-
sb.WriteString(fmt.Sprintf("**Agent:** %s\n", result.Agent))
362+
fmt.Fprintf(&sb, "**Project:** %s\n", result.Project)
363+
fmt.Fprintf(&sb, "**Date:** %s (%s)\n", result.Date.Format("2006-01-02"), relativeTime(result.Date))
364+
fmt.Fprintf(&sb, "**Agent:** %s\n", result.Agent)
365365
if result.Topic != "" {
366-
sb.WriteString(fmt.Sprintf("**Topic:** %s\n\n", result.Topic))
366+
fmt.Fprintf(&sb, "**Topic:** %s\n\n", result.Topic)
367367
}
368368

369369
// Show last turns in condensed format
370370
for i, turn := range result.LastTurns {
371-
sb.WriteString(fmt.Sprintf("### Exchange %d\n", i+1))
372-
sb.WriteString(fmt.Sprintf("USER: %s\n\n", turn.UserContent))
371+
fmt.Fprintf(&sb, "### Exchange %d\n", i+1)
372+
fmt.Fprintf(&sb, "USER: %s\n\n", turn.UserContent)
373373
// Truncate long assistant responses
374374
assistContent := turn.AssistContent
375375
if len(assistContent) > 500 {
376376
assistContent = assistContent[:497] + "..."
377377
}
378-
sb.WriteString(fmt.Sprintf("ASSISTANT: %s\n\n", assistContent))
378+
fmt.Fprintf(&sb, "ASSISTANT: %s\n\n", assistContent)
379379
}
380380

381381
sb.WriteString("---\n")
382-
sb.WriteString(fmt.Sprintf("*Continue from this context. Session: %s*\n", result.SessionID))
382+
fmt.Fprintf(&sb, "*Continue from this context. Session: %s*\n", result.SessionID)
383383

384384
default: // json is handled elsewhere
385-
sb.WriteString(fmt.Sprintf("Session: %s\nProject: %s\n", result.SessionID, result.Project))
385+
fmt.Fprintf(&sb, "Session: %s\nProject: %s\n", result.SessionID, result.Project)
386386
}
387387

388388
return sb.String()
@@ -391,19 +391,19 @@ func formatContextOutput(result *ContextResult, format string) string {
391391
func exportMarkdown(session *Session) string {
392392
var sb strings.Builder
393393

394-
sb.WriteString(fmt.Sprintf("# Conversation: %s\n\n", session.ProjectName))
395-
sb.WriteString(fmt.Sprintf("**Agent:** %s\n", session.Agent))
396-
sb.WriteString(fmt.Sprintf("**Project:** %s\n", session.ProjectPath))
397-
sb.WriteString(fmt.Sprintf("**Date:** %s\n", session.StartedAt.Format("2006-01-02 15:04:05")))
394+
fmt.Fprintf(&sb, "# Conversation: %s\n\n", session.ProjectName)
395+
fmt.Fprintf(&sb, "**Agent:** %s\n", session.Agent)
396+
fmt.Fprintf(&sb, "**Project:** %s\n", session.ProjectPath)
397+
fmt.Fprintf(&sb, "**Date:** %s\n", session.StartedAt.Format("2006-01-02 15:04:05"))
398398
if session.GitBranch != "" {
399-
sb.WriteString(fmt.Sprintf("**Branch:** %s\n", session.GitBranch))
399+
fmt.Fprintf(&sb, "**Branch:** %s\n", session.GitBranch)
400400
}
401401
sb.WriteString("\n---\n\n")
402402

403403
for i, turn := range session.Turns {
404-
sb.WriteString(fmt.Sprintf("## Turn %d\n\n", i+1))
405-
sb.WriteString(fmt.Sprintf("### User\n\n%s\n\n", turn.UserContent))
406-
sb.WriteString(fmt.Sprintf("### Assistant\n\n%s\n\n", turn.AssistContent))
404+
fmt.Fprintf(&sb, "## Turn %d\n\n", i+1)
405+
fmt.Fprintf(&sb, "### User\n\n%s\n\n", turn.UserContent)
406+
fmt.Fprintf(&sb, "### Assistant\n\n%s\n\n", turn.AssistContent)
407407
sb.WriteString("---\n\n")
408408
}
409409

@@ -424,7 +424,7 @@ func exportHTML(session *Session) string {
424424

425425
sb.WriteString("<!DOCTYPE html>\n<html>\n<head>\n")
426426
sb.WriteString("<meta charset=\"UTF-8\">\n")
427-
sb.WriteString(fmt.Sprintf("<title>Conversation: %s</title>\n", session.ProjectName))
427+
fmt.Fprintf(&sb, "<title>Conversation: %s</title>\n", session.ProjectName)
428428
sb.WriteString("<style>\n")
429429
sb.WriteString("body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; max-width: 800px; margin: 0 auto; padding: 20px; }\n")
430430
sb.WriteString(".turn { margin-bottom: 20px; }\n")
@@ -433,18 +433,18 @@ func exportHTML(session *Session) string {
433433
sb.WriteString("pre { background: #263238; color: #fff; padding: 10px; border-radius: 4px; overflow-x: auto; }\n")
434434
sb.WriteString("</style>\n</head>\n<body>\n")
435435

436-
sb.WriteString(fmt.Sprintf("<h1>%s</h1>\n", session.ProjectName))
437-
sb.WriteString(fmt.Sprintf("<p><strong>Agent:</strong> %s | <strong>Date:</strong> %s</p>\n",
438-
session.Agent, session.StartedAt.Format("2006-01-02")))
436+
fmt.Fprintf(&sb, "<h1>%s</h1>\n", session.ProjectName)
437+
fmt.Fprintf(&sb, "<p><strong>Agent:</strong> %s | <strong>Date:</strong> %s</p>\n",
438+
session.Agent, session.StartedAt.Format("2006-01-02"))
439439
sb.WriteString("<hr>\n")
440440

441441
for i, turn := range session.Turns {
442442
sb.WriteString("<div class=\"turn\">\n")
443-
sb.WriteString(fmt.Sprintf("<h3>Turn %d</h3>\n", i+1))
444-
sb.WriteString(fmt.Sprintf("<div class=\"user\"><strong>User:</strong><br>%s</div>\n",
445-
escapeHTML(turn.UserContent)))
446-
sb.WriteString(fmt.Sprintf("<div class=\"assistant\"><strong>Assistant:</strong><br>%s</div>\n",
447-
formatHTMLContent(turn.AssistContent)))
443+
fmt.Fprintf(&sb, "<h3>Turn %d</h3>\n", i+1)
444+
fmt.Fprintf(&sb, "<div class=\"user\"><strong>User:</strong><br>%s</div>\n",
445+
escapeHTML(turn.UserContent))
446+
fmt.Fprintf(&sb, "<div class=\"assistant\"><strong>Assistant:</strong><br>%s</div>\n",
447+
formatHTMLContent(turn.AssistContent))
448448
sb.WriteString("</div>\n")
449449
}
450450

0 commit comments

Comments
 (0)