refactor: remove bd mail commands - mail moves to Gas Town
Mail is orchestration, not data plane. The bd mail commands were just sugar over bd create/list/show with type=message. Gas Town (gt) now owns mail routing and delivery. Removed: - cmd/bd/mail.go - all mail subcommands (send, inbox, read, ack, reply) - cmd/bd/mail_test.go - mail command tests - docs/messaging.md - dedicated mail documentation - EventMessage hook - no longer triggered Kept (data plane): - type=message as valid issue type - Sender, Ephemeral fields on issues - replies_to dependency type for threading Coordination: gt-9xg implements native mail in Gas Town. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -12,18 +12,16 @@ import (
|
||||
|
||||
// Event types
|
||||
const (
|
||||
EventCreate = "create"
|
||||
EventUpdate = "update"
|
||||
EventClose = "close"
|
||||
EventMessage = "message"
|
||||
EventCreate = "create"
|
||||
EventUpdate = "update"
|
||||
EventClose = "close"
|
||||
)
|
||||
|
||||
// Hook file names
|
||||
const (
|
||||
HookOnCreate = "on_create"
|
||||
HookOnUpdate = "on_update"
|
||||
HookOnClose = "on_close"
|
||||
HookOnMessage = "on_message"
|
||||
HookOnCreate = "on_create"
|
||||
HookOnUpdate = "on_update"
|
||||
HookOnClose = "on_close"
|
||||
)
|
||||
|
||||
// Runner handles hook execution
|
||||
@@ -120,8 +118,6 @@ func eventToHook(event string) string {
|
||||
return HookOnUpdate
|
||||
case EventClose:
|
||||
return HookOnClose
|
||||
case EventMessage:
|
||||
return HookOnMessage
|
||||
default:
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -44,7 +44,6 @@ func TestEventToHook(t *testing.T) {
|
||||
{EventCreate, HookOnCreate},
|
||||
{EventUpdate, HookOnUpdate},
|
||||
{EventClose, HookOnClose},
|
||||
{EventMessage, HookOnMessage},
|
||||
{"unknown", ""},
|
||||
{"", ""},
|
||||
}
|
||||
@@ -182,7 +181,7 @@ echo "$1 $2" > ` + outputFile
|
||||
|
||||
func TestRunSync_ReceivesJSON(t *testing.T) {
|
||||
tmpDir := t.TempDir()
|
||||
hookPath := filepath.Join(tmpDir, HookOnMessage)
|
||||
hookPath := filepath.Join(tmpDir, HookOnCreate)
|
||||
outputFile := filepath.Join(tmpDir, "stdin.txt")
|
||||
|
||||
// Create a hook that captures stdin
|
||||
@@ -194,13 +193,12 @@ cat > ` + outputFile
|
||||
|
||||
runner := NewRunner(tmpDir)
|
||||
issue := &types.Issue{
|
||||
ID: "bd-msg",
|
||||
Title: "Test Message",
|
||||
Sender: "alice",
|
||||
ID: "bd-test",
|
||||
Title: "Test Issue",
|
||||
Assignee: "bob",
|
||||
}
|
||||
|
||||
err := runner.RunSync(EventMessage, issue)
|
||||
err := runner.RunSync(EventCreate, issue)
|
||||
if err != nil {
|
||||
t.Errorf("RunSync returned error: %v", err)
|
||||
}
|
||||
@@ -380,7 +378,6 @@ func TestAllHookEvents(t *testing.T) {
|
||||
{EventCreate, HookOnCreate},
|
||||
{EventUpdate, HookOnUpdate},
|
||||
{EventClose, HookOnClose},
|
||||
{EventMessage, HookOnMessage},
|
||||
}
|
||||
|
||||
for _, e := range events {
|
||||
|
||||
Reference in New Issue
Block a user