Compare commits
1 Commits
nux/poleca
...
johno/fix-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9e3eb094c5 |
@@ -456,7 +456,7 @@ notifyWitness:
|
|||||||
|
|
||||||
// Notify dispatcher if work was dispatched by another agent
|
// Notify dispatcher if work was dispatched by another agent
|
||||||
if issueID != "" {
|
if issueID != "" {
|
||||||
if dispatcher := getDispatcherFromBead(cwd, issueID); dispatcher != "" && dispatcher != sender {
|
if dispatcher := getDispatcherFromBead(townRoot, cwd, issueID); dispatcher != "" && dispatcher != sender {
|
||||||
dispatcherNotification := &mail.Message{
|
dispatcherNotification := &mail.Message{
|
||||||
To: dispatcher,
|
To: dispatcher,
|
||||||
From: sender,
|
From: sender,
|
||||||
@@ -678,12 +678,19 @@ func getIssueFromAgentHook(bd *beads.Beads, agentBeadID string) string {
|
|||||||
|
|
||||||
// getDispatcherFromBead retrieves the dispatcher agent ID from the bead's attachment fields.
|
// getDispatcherFromBead retrieves the dispatcher agent ID from the bead's attachment fields.
|
||||||
// Returns empty string if no dispatcher is recorded.
|
// Returns empty string if no dispatcher is recorded.
|
||||||
func getDispatcherFromBead(cwd, issueID string) string {
|
//
|
||||||
|
// BUG FIX (sc-g7bl3): Use townRoot and ResolveHookDir for bead lookup instead of
|
||||||
|
// ResolveBeadsDir(cwd). When the polecat's worktree is deleted before gt done finishes,
|
||||||
|
// ResolveBeadsDir(cwd) fails because the redirect file is gone. ResolveHookDir uses
|
||||||
|
// prefix-based routing via routes.jsonl which works regardless of worktree state.
|
||||||
|
func getDispatcherFromBead(townRoot, cwd, issueID string) string {
|
||||||
if issueID == "" {
|
if issueID == "" {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
bd := beads.New(beads.ResolveBeadsDir(cwd))
|
// Use ResolveHookDir for resilient bead lookup - works even if worktree is deleted
|
||||||
|
beadsDir := beads.ResolveHookDir(townRoot, issueID, cwd)
|
||||||
|
bd := beads.New(beadsDir)
|
||||||
issue, err := bd.Show(issueID)
|
issue, err := bd.Show(issueID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ""
|
return ""
|
||||||
|
|||||||
Reference in New Issue
Block a user