Instrument gt commands to emit events to activity feed (gt-7aw1m)
Add events.LogFeed calls to the following gt commands: - nudge.go: Log TypeNudge events when nudging agents - unsling.go: Log TypeUnhook events when removing work from hooks - up.go: Log TypeBoot events when starting Gas Town services - down.go: Log TypeHalt events when stopping Gas Town services - stop.go: Log TypeKill events when stopping polecat sessions - polecat_spawn.go: Log TypeSpawn events when spawning polecats Also add helper functions to events package: - UnhookPayload: Creates payload for unhook events - KillPayload: Creates payload for kill events - HaltPayload: Creates payload for halt events 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/steveyegge/gastown/internal/daemon"
|
||||
"github.com/steveyegge/gastown/internal/events"
|
||||
"github.com/steveyegge/gastown/internal/style"
|
||||
"github.com/steveyegge/gastown/internal/tmux"
|
||||
"github.com/steveyegge/gastown/internal/workspace"
|
||||
@@ -112,6 +113,15 @@ func runDown(cmd *cobra.Command, args []string) error {
|
||||
fmt.Println()
|
||||
if allOK {
|
||||
fmt.Printf("%s All services stopped\n", style.Bold.Render("✓"))
|
||||
// Log halt event with stopped services
|
||||
stoppedServices := []string{"daemon", "deacon", "mayor"}
|
||||
for _, rigName := range rigs {
|
||||
stoppedServices = append(stoppedServices, fmt.Sprintf("%s/witness", rigName))
|
||||
}
|
||||
if downAll {
|
||||
stoppedServices = append(stoppedServices, "tmux-server")
|
||||
}
|
||||
_ = events.LogFeed(events.TypeHalt, "gt", events.HaltPayload(stoppedServices))
|
||||
} else {
|
||||
fmt.Printf("%s Some services failed to stop\n", style.Bold.Render("✗"))
|
||||
return fmt.Errorf("not all services stopped")
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/steveyegge/gastown/internal/events"
|
||||
"github.com/steveyegge/gastown/internal/style"
|
||||
"github.com/steveyegge/gastown/internal/tmux"
|
||||
"github.com/steveyegge/gastown/internal/workspace"
|
||||
@@ -92,6 +93,7 @@ func runNudge(cmd *cobra.Command, args []string) error {
|
||||
if townRoot, err := workspace.FindFromCwd(); err == nil && townRoot != "" {
|
||||
LogNudge(townRoot, "deacon", message)
|
||||
}
|
||||
_ = events.LogFeed(events.TypeNudge, sender, events.NudgePayload("", "deacon", message))
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -130,6 +132,7 @@ func runNudge(cmd *cobra.Command, args []string) error {
|
||||
if townRoot, err := workspace.FindFromCwd(); err == nil && townRoot != "" {
|
||||
LogNudge(townRoot, target, message)
|
||||
}
|
||||
_ = events.LogFeed(events.TypeNudge, sender, events.NudgePayload(rigName, target, message))
|
||||
} else {
|
||||
// Raw session name (legacy)
|
||||
exists, err := t.HasSession(target)
|
||||
@@ -150,6 +153,7 @@ func runNudge(cmd *cobra.Command, args []string) error {
|
||||
if townRoot, err := workspace.FindFromCwd(); err == nil && townRoot != "" {
|
||||
LogNudge(townRoot, target, message)
|
||||
}
|
||||
_ = events.LogFeed(events.TypeNudge, sender, events.NudgePayload("", target, message))
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
@@ -8,6 +8,7 @@ import (
|
||||
|
||||
"github.com/steveyegge/gastown/internal/config"
|
||||
"github.com/steveyegge/gastown/internal/constants"
|
||||
"github.com/steveyegge/gastown/internal/events"
|
||||
"github.com/steveyegge/gastown/internal/git"
|
||||
"github.com/steveyegge/gastown/internal/polecat"
|
||||
"github.com/steveyegge/gastown/internal/rig"
|
||||
@@ -161,6 +162,9 @@ func SpawnPolecatForSling(rigName string, opts SlingSpawnOptions) (*SpawnedPolec
|
||||
|
||||
fmt.Printf("%s Polecat %s spawned\n", style.Bold.Render("✓"), polecatName)
|
||||
|
||||
// Log spawn event to activity feed
|
||||
_ = events.LogFeed(events.TypeSpawn, "gt", events.SpawnPayload(rigName, polecatName))
|
||||
|
||||
return &SpawnedPolecatInfo{
|
||||
RigName: rigName,
|
||||
PolecatName: polecatName,
|
||||
|
||||
@@ -6,6 +6,7 @@ import (
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/steveyegge/gastown/internal/config"
|
||||
"github.com/steveyegge/gastown/internal/events"
|
||||
"github.com/steveyegge/gastown/internal/git"
|
||||
"github.com/steveyegge/gastown/internal/rig"
|
||||
"github.com/steveyegge/gastown/internal/session"
|
||||
@@ -147,6 +148,9 @@ func runStop(cmd *cobra.Command, args []string) error {
|
||||
logger := townlog.NewLogger(townRoot)
|
||||
logger.Log(townlog.EventKill, agent, "gt stop")
|
||||
|
||||
// Log kill event to activity feed
|
||||
_ = events.LogFeed(events.TypeKill, "gt", events.KillPayload(r.Name, info.Polecat, "gt stop"))
|
||||
|
||||
// Log captured output (truncated)
|
||||
if len(output) > 200 {
|
||||
output = output[len(output)-200:]
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/steveyegge/gastown/internal/beads"
|
||||
"github.com/steveyegge/gastown/internal/events"
|
||||
"github.com/steveyegge/gastown/internal/style"
|
||||
)
|
||||
|
||||
@@ -141,6 +142,9 @@ func runUnsling(cmd *cobra.Command, args []string) error {
|
||||
return fmt.Errorf("unpinning bead %s: %w", pinned.ID, err)
|
||||
}
|
||||
|
||||
// Log unhook event
|
||||
_ = events.LogFeed(events.TypeUnhook, agentID, events.UnhookPayload(pinned.ID))
|
||||
|
||||
fmt.Printf("%s Work removed from hook\n", style.Bold.Render("✓"))
|
||||
fmt.Printf(" Bead %s is now status=open\n", pinned.ID)
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import (
|
||||
"github.com/steveyegge/gastown/internal/beads"
|
||||
"github.com/steveyegge/gastown/internal/config"
|
||||
"github.com/steveyegge/gastown/internal/daemon"
|
||||
"github.com/steveyegge/gastown/internal/events"
|
||||
"github.com/steveyegge/gastown/internal/refinery"
|
||||
"github.com/steveyegge/gastown/internal/style"
|
||||
"github.com/steveyegge/gastown/internal/tmux"
|
||||
@@ -159,6 +160,13 @@ func runUp(cmd *cobra.Command, args []string) error {
|
||||
fmt.Println()
|
||||
if allOK {
|
||||
fmt.Printf("%s All services running\n", style.Bold.Render("✓"))
|
||||
// Log boot event with started services
|
||||
startedServices := []string{"daemon", "deacon", "mayor"}
|
||||
for _, rigName := range rigs {
|
||||
startedServices = append(startedServices, fmt.Sprintf("%s/witness", rigName))
|
||||
startedServices = append(startedServices, fmt.Sprintf("%s/refinery", rigName))
|
||||
}
|
||||
_ = events.LogFeed(events.TypeBoot, "gt", events.BootPayload("town", startedServices))
|
||||
} else {
|
||||
fmt.Printf("%s Some services failed to start\n", style.Bold.Render("✗"))
|
||||
return fmt.Errorf("not all services started")
|
||||
|
||||
Reference in New Issue
Block a user