fix(sling): Use target's working directory for bd update commands
When slinging to an existing polecat, the bd update command was running from town root which doesn't support prefix-based routing for writes. Fix: Capture the target agent's working directory from resolveTargetAgent and use it as hookWorkDir. This ensures bd update runs from the polecat's worktree where the .beads/redirect file enables routing to the correct database. Also fixed the self-sling case to capture and use selfWorkDir.
This commit is contained in:
@@ -259,17 +259,27 @@ func runSling(cmd *cobra.Command, args []string) error {
|
||||
} else {
|
||||
// Slinging to an existing agent
|
||||
// Skip pane lookup if --naked (agent may be terminated)
|
||||
targetAgent, targetPane, _, err = resolveTargetAgent(target, slingNaked)
|
||||
var targetWorkDir string
|
||||
targetAgent, targetPane, targetWorkDir, err = resolveTargetAgent(target, slingNaked)
|
||||
if err != nil {
|
||||
return fmt.Errorf("resolving target: %w", err)
|
||||
}
|
||||
// Use target's working directory for bd commands (needed for redirect-based routing)
|
||||
if targetWorkDir != "" {
|
||||
hookWorkDir = targetWorkDir
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// Slinging to self
|
||||
targetAgent, targetPane, _, err = resolveSelfTarget()
|
||||
var selfWorkDir string
|
||||
targetAgent, targetPane, selfWorkDir, err = resolveSelfTarget()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
// Use self's working directory for bd commands
|
||||
if selfWorkDir != "" {
|
||||
hookWorkDir = selfWorkDir
|
||||
}
|
||||
}
|
||||
|
||||
// Display what we're doing
|
||||
@@ -738,17 +748,22 @@ func runSlingFormula(args []string) error {
|
||||
} else {
|
||||
// Slinging to an existing agent
|
||||
// Skip pane lookup if --naked (agent may be terminated)
|
||||
targetAgent, targetPane, _, err = resolveTargetAgent(target, slingNaked)
|
||||
var targetWorkDir string
|
||||
targetAgent, targetPane, targetWorkDir, err = resolveTargetAgent(target, slingNaked)
|
||||
if err != nil {
|
||||
return fmt.Errorf("resolving target: %w", err)
|
||||
}
|
||||
// Use target's working directory for bd commands (needed for redirect-based routing)
|
||||
_ = targetWorkDir // Formula sling doesn't need hookWorkDir
|
||||
}
|
||||
} else {
|
||||
// Slinging to self
|
||||
targetAgent, targetPane, _, err = resolveSelfTarget()
|
||||
var selfWorkDir string
|
||||
targetAgent, targetPane, selfWorkDir, err = resolveSelfTarget()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
_ = selfWorkDir // Formula sling doesn't need hookWorkDir
|
||||
}
|
||||
|
||||
fmt.Printf("%s Slinging formula %s to %s...\n", style.Bold.Render("🎯"), formulaName, targetAgent)
|
||||
|
||||
Reference in New Issue
Block a user