fix(witness): use town-level beads for role config lookup (#320)
The witness manager was using rig-level beads path to look up role configuration, but role beads use the hq- prefix and live in town-level beads. This caused "unexpected end of JSON input" errors when starting witnesses because the rig database (with gt- prefix) couldn't find hq-witness-role. Changed roleConfig() to use townRoot instead of rig.BeadsPath() to correctly resolve town-level role beads. Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -251,9 +251,9 @@ func (m *Manager) Start(foreground bool, agentOverride string, envOverrides []st
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *Manager) roleConfig() (*beads.RoleConfig, error) {
|
func (m *Manager) roleConfig() (*beads.RoleConfig, error) {
|
||||||
beadsPath := m.rig.BeadsPath()
|
// Role beads use hq- prefix and live in town-level beads, not rig beads
|
||||||
beadsDir := beads.ResolveBeadsDir(beadsPath)
|
townRoot := m.townRoot()
|
||||||
bd := beads.NewWithBeadsDir(beadsPath, beadsDir)
|
bd := beads.NewWithBeadsDir(townRoot, beads.ResolveBeadsDir(townRoot))
|
||||||
roleConfig, err := bd.GetRoleConfig(beads.RoleBeadIDTown("witness"))
|
roleConfig, err := bd.GetRoleConfig(beads.RoleBeadIDTown("witness"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("loading witness role config: %w", err)
|
return nil, fmt.Errorf("loading witness role config: %w", err)
|
||||||
|
|||||||
Reference in New Issue
Block a user