From b92e79f98eb03792910f5973461eb372cd9da3fc Mon Sep 17 00:00:00 2001 From: Ben Lovell Date: Wed, 5 Nov 2025 07:10:56 +0100 Subject: [PATCH] Fix pointer dereferencing in Update RPC handler (#223) - Dereference Design, AcceptanceCriteria, Notes, and Assignee pointers in updatesFromArgs - Fixes EOF errors when using --notes, --design, --assignee, or --acceptance-criteria flags - Enhance TestUpdateIssue to verify all pointer-dereferenced fields are correctly stored --- internal/rpc/rpc_test.go | 25 +++++++++++++++++++++++-- internal/rpc/server_issues_epics.go | 8 ++++---- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/internal/rpc/rpc_test.go b/internal/rpc/rpc_test.go index 8dc9842b..2f9355a7 100644 --- a/internal/rpc/rpc_test.go +++ b/internal/rpc/rpc_test.go @@ -213,9 +213,18 @@ func TestUpdateIssue(t *testing.T) { json.Unmarshal(createResp.Data, &issue) newTitle := "Updated Title" + notes := "Some important notes" + design := "Design details" + assignee := "alice" + acceptance := "Acceptance criteria" + updateArgs := &UpdateArgs{ - ID: issue.ID, - Title: &newTitle, + ID: issue.ID, + Title: &newTitle, + Notes: ¬es, + Design: &design, + Assignee: &assignee, + AcceptanceCriteria: &acceptance, } updateResp, err := client.Update(updateArgs) @@ -229,6 +238,18 @@ func TestUpdateIssue(t *testing.T) { if updatedIssue.Title != newTitle { t.Errorf("Expected title %s, got %s", newTitle, updatedIssue.Title) } + if updatedIssue.Notes != notes { + t.Errorf("Expected notes %s, got %s", notes, updatedIssue.Notes) + } + if updatedIssue.Design != design { + t.Errorf("Expected design %s, got %s", design, updatedIssue.Design) + } + if updatedIssue.Assignee != assignee { + t.Errorf("Expected assignee %s, got %s", assignee, updatedIssue.Assignee) + } + if updatedIssue.AcceptanceCriteria != acceptance { + t.Errorf("Expected acceptance criteria %s, got %s", acceptance, updatedIssue.AcceptanceCriteria) + } } func TestCloseIssue(t *testing.T) { diff --git a/internal/rpc/server_issues_epics.go b/internal/rpc/server_issues_epics.go index bb2cec47..781ed3d2 100644 --- a/internal/rpc/server_issues_epics.go +++ b/internal/rpc/server_issues_epics.go @@ -50,16 +50,16 @@ func updatesFromArgs(a UpdateArgs) map[string]interface{} { u["priority"] = *a.Priority } if a.Design != nil { - u["design"] = a.Design + u["design"] = *a.Design } if a.AcceptanceCriteria != nil { - u["acceptance_criteria"] = a.AcceptanceCriteria + u["acceptance_criteria"] = *a.AcceptanceCriteria } if a.Notes != nil { - u["notes"] = a.Notes + u["notes"] = *a.Notes } if a.Assignee != nil { - u["assignee"] = a.Assignee + u["assignee"] = *a.Assignee } return u }