From 67d6d02dff410e4348be8ca58f07376df7ede248 Mon Sep 17 00:00:00 2001 From: carmel <16carmel@gmail.com> Date: Wed, 8 Apr 2026 20:00:48 +0300 Subject: [PATCH] fix(ui): clean up temp file on bug report write failure Move defer os.Remove() before WriteString so the temp file is always cleaned up, even if the write fails and returns early. --- CHANGELOG.md | 1 + internal/ui/bugreport.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e7c248ce..c7326165 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Session stuck at "waiting" status after user interrupts/escapes a permission prompt - Agent team sessions showing idle/running instead of waiting when sub-agent needs approval - Status oscillating between idle and finished when stale waiting hook is present +- Temp file not cleaned up when bug report body write fails ## [1.1.0] - 2026-03-21 diff --git a/internal/ui/bugreport.go b/internal/ui/bugreport.go index 767d5743..95e7f95d 100644 --- a/internal/ui/bugreport.go +++ b/internal/ui/bugreport.go @@ -130,12 +130,12 @@ func (d *BugReportDialog) openGitHubIssue(description string) tea.Cmd { debuglog.Logger.Error("bug report: failed to create temp file", "err", err) return bugReportOpenErrMsg{err: err} } + defer os.Remove(tmpFile.Name()) if _, err := tmpFile.WriteString(body); err != nil { tmpFile.Close() return bugReportOpenErrMsg{err: err} } tmpFile.Close() - defer os.Remove(tmpFile.Name()) // Create issue via API (no URL length limit), then open in browser. cmd := exec.Command("gh", "issue", "create",