fix(slot): add cross-beads prefix routing to bd slot set (bd-hmeb)
When setting a slot to a bead from a different beads database (e.g., setting an hq-* role bead on a gt-* agent bead), the command now uses prefix-based routing via routes.jsonl to resolve the bead in the correct database. Previously, bd slot set only looked in the local database, failing to find cross-db references like hq-polecat-role from rig beads. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -118,9 +118,22 @@ func runSlotSet(cmd *cobra.Command, args []string) error {
|
||||
}
|
||||
}
|
||||
|
||||
// Resolve bead ID
|
||||
// Resolve bead ID - use routing for cross-beads references (e.g., hq-* from rig beads)
|
||||
var beadID string
|
||||
if daemonClient != nil {
|
||||
if needsRouting(beadArg) {
|
||||
// Cross-beads reference - resolve via routing
|
||||
result, err := resolveAndGetIssueWithRouting(ctx, store, beadArg)
|
||||
if result != nil {
|
||||
defer result.Close()
|
||||
}
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to resolve bead %s: %w", beadArg, err)
|
||||
}
|
||||
if result == nil || result.Issue == nil {
|
||||
return fmt.Errorf("failed to resolve bead %s: no issue found matching %q", beadArg, beadArg)
|
||||
}
|
||||
beadID = result.ResolvedID
|
||||
} else if daemonClient != nil {
|
||||
resp, err := daemonClient.ResolveID(&rpc.ResolveIDArgs{ID: beadArg})
|
||||
if err != nil {
|
||||
return fmt.Errorf("failed to resolve bead %s: %w", beadArg, err)
|
||||
|
||||
Reference in New Issue
Block a user