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:
Steve Yegge
2025-12-20 17:56:46 -08:00
parent 79191bf7d1
commit 4fa0866fcf
8 changed files with 31 additions and 1447 deletions

View File

@@ -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 ""
}

View File

@@ -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 {