fix(refinery): use rig's default_branch instead of hardcoded 'main'

- Add DefaultBranch field to RoleData struct
- Update refinery.md.tmpl to use {{ .DefaultBranch }} template variable
- Populate DefaultBranch from rig config in prime.go and rig/manager.go
- Default to 'main' if not configured
- Add test verifying DefaultBranch rendering in refinery template

Fixes issue where refinery agents merged to master instead of the
configured default branch (e.g., 'develop' or 'develop-cstar').
This commit is contained in:
mayor
2026-01-05 20:24:47 +01:00
committed by Eric Cestari
parent 7ae08ed219
commit eb6fb3c73b
6 changed files with 79 additions and 6 deletions

View File

@@ -271,6 +271,7 @@ func createMayorCLAUDEmd(hqRoot, townRoot string) error {
TownRoot: townRoot,
TownName: townName,
WorkDir: hqRoot,
DefaultBranch: "main", // Mayor doesn't merge, but field required
MayorSession: session.MayorSessionName(),
DeaconSession: session.DeaconSessionName(),
}

View File

@@ -19,6 +19,7 @@ import (
"github.com/steveyegge/gastown/internal/constants"
"github.com/steveyegge/gastown/internal/events"
"github.com/steveyegge/gastown/internal/lock"
"github.com/steveyegge/gastown/internal/rig"
"github.com/steveyegge/gastown/internal/session"
"github.com/steveyegge/gastown/internal/style"
"github.com/steveyegge/gastown/internal/templates"
@@ -308,12 +309,22 @@ func outputPrimeContext(ctx RoleContext) error {
// Get town name for session names
townName, _ := workspace.GetTownName(ctx.TownRoot)
// Get default branch from rig config (default to "main" if not set)
defaultBranch := "main"
if ctx.Rig != "" && ctx.TownRoot != "" {
rigPath := filepath.Join(ctx.TownRoot, ctx.Rig)
if rigCfg, err := rig.LoadRigConfig(rigPath); err == nil && rigCfg.DefaultBranch != "" {
defaultBranch = rigCfg.DefaultBranch
}
}
data := templates.RoleData{
Role: roleName,
RigName: ctx.Rig,
TownRoot: ctx.TownRoot,
TownName: townName,
WorkDir: ctx.WorkDir,
DefaultBranch: defaultBranch,
Polecat: ctx.Polecat,
MayorSession: session.MayorSessionName(),
DeaconSession: session.DeaconSessionName(),