From c11b8385d1fe3da2d765c9b3b35473d7ba66c7ff Mon Sep 17 00:00:00 2001 From: fullsend-code Date: Tue, 19 May 2026 23:06:51 +0000 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20add=20fix=20role=20to=20PerRepoDefau?= =?UTF-8?q?ltRoles=20for=20review=E2=86=92fix=20dispatch=20loop?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The fix role was missing from PerRepoDefaultRoles(), causing the dispatch role-check to block fix agent runs after review requested changes. All other agent roles were already included. The fix role has full agent scaffolding and is ready for production use. Closes #1220 Co-Authored-By: Claude Opus 4.6 --- internal/config/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/config/config.go b/internal/config/config.go index f12b586c9..c94e7c84e 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -73,7 +73,7 @@ func DefaultAgentRoles() []string { // The "fullsend" dispatch role is excluded because per-repo mode uses // the target repo's shim workflow for dispatch instead of a separate app. func PerRepoDefaultRoles() []string { - return []string{"triage", "coder", "review", "retro", "prioritize"} + return []string{"triage", "coder", "review", "fix", "retro", "prioritize"} } // NewOrgConfig creates a new OrgConfig with sensible defaults. From 2991723a42133836ae8f73cfde9691b91539be62 Mon Sep 17 00:00:00 2001 From: fullsend-fix Date: Thu, 21 May 2026 14:39:06 +0000 Subject: [PATCH 2/2] test: add TestPerRepoDefaultRoles for regression coverage Adds a dedicated test for PerRepoDefaultRoles() to verify all expected roles are present and that the "fullsend" dispatch role is excluded in per-repo mode. Prevents future regressions where a role is accidentally omitted. Addresses review feedback on #1225 Co-Authored-By: Claude Opus 4.6 Signed-off-by: fullsend-fix --- internal/config/config_test.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/internal/config/config_test.go b/internal/config/config_test.go index be975a3bf..8ebaf8ff9 100644 --- a/internal/config/config_test.go +++ b/internal/config/config_test.go @@ -20,6 +20,19 @@ func TestValidRoles(t *testing.T) { assert.Contains(t, roles, "prioritize") } +func TestPerRepoDefaultRoles(t *testing.T) { + roles := PerRepoDefaultRoles() + assert.Len(t, roles, 6) + assert.Contains(t, roles, "triage") + assert.Contains(t, roles, "coder") + assert.Contains(t, roles, "review") + assert.Contains(t, roles, "fix") + assert.Contains(t, roles, "retro") + assert.Contains(t, roles, "prioritize") + // "fullsend" dispatch role must be excluded in per-repo mode. + assert.NotContains(t, roles, "fullsend") +} + func TestNewOrgConfig(t *testing.T) { allRepos := []string{"repo-a", "repo-b", "repo-c"} enabledRepos := []string{"repo-a", "repo-c"}