From ce28bfeefe947c7ba2d679c008355ff997c9668e Mon Sep 17 00:00:00 2001 From: Simon Schulte Date: Fri, 5 Jun 2026 14:50:10 +0200 Subject: [PATCH 1/2] fix: resolve golangci-lint warnings in recoverStuckTickets MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove unnecessary leading newlines (whitespace) - Add blank lines before continue statements (nlreturn) - Rename rt→runtime, st→state for scope length (varnamelen) - Split inline if err := into plain assignment (noinlineerr) --- internal/server/jobs.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/internal/server/jobs.go b/internal/server/jobs.go index 57ee148..20821fb 100644 --- a/internal/server/jobs.go +++ b/internal/server/jobs.go @@ -145,32 +145,36 @@ func (s *server) getTicketLock(repoID, ticket string) *sync.Mutex { } func (s *server) recoverStuckTickets() { - repos := s.meta.ListRepos() for _, repo := range repos { tickets := s.meta.ListTickets(repo.ID) for _, ticket := range tickets { - if ticket.Status == string(workflowstate.FlowStatusDone) || ticket.Status == string(workflowstate.FlowStatusFailed) || ticket.Status == string(workflowstate.FlowStatusCancelled) || ticket.Status == "" { continue } + slog.Info("recoverStuckTickets: found stuck ticket, marking as failed", "repo", repo.Path, "ticket", ticket.TicketNumber, "status", ticket.Status) - rt, err := s.runtimeForRepo(repo.Path) + runtime, err := s.runtimeForRepo(repo.Path) if err != nil { slog.Warn("recoverStuckTickets: no runtime", "repo", repo.Path, "err", err) + continue } - st, err := rt.store.LoadState(ticket.TicketNumber) + + state, err := runtime.store.LoadState(ticket.TicketNumber) if err != nil { slog.Warn("recoverStuckTickets: load state failed", "ticket", ticket.TicketNumber, "err", err) + continue } - st.FlowStatus = workflowstate.FlowStatusFailed - st.LastError = "daemon restarted while ticket was running — rerun to continue" - if saveErr := rt.store.SaveState(ticket.TicketNumber, st); saveErr != nil { + + state.FlowStatus = workflowstate.FlowStatusFailed + state.LastError = "daemon restarted while ticket was running — rerun to continue" + saveErr := runtime.store.SaveState(ticket.TicketNumber, state) + if saveErr != nil { slog.Warn("recoverStuckTickets: save failed", "ticket", ticket.TicketNumber, "err", saveErr) } From 93f8d2475ca02731f0ab74d99f70a6e407a6a94d Mon Sep 17 00:00:00 2001 From: Simon Schulte Date: Fri, 5 Jun 2026 14:54:23 +0200 Subject: [PATCH 2/2] make pr run on every pr --- .github/workflows/ci.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b853558..7a51add 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,9 +2,8 @@ name: CI on: push: - branches: [ main ] + branches: [main] pull_request: - branches: [ main ] jobs: build: @@ -112,7 +111,7 @@ jobs: e2e: name: E2E Tests runs-on: ubuntu-latest - needs: [ lint-be, lint-fe, test-be, test-fe ] + needs: [lint-be, lint-fe, test-be, test-fe] steps: - uses: actions/checkout@v6