Implement town activity logging (gt-ewzon)
Add centralized logging for Gas Town agent lifecycle events: - spawn: new agent created - wake: agent resumed - nudge: message injected - handoff: agent handed off - done: agent finished work - crash: agent exited unexpectedly - kill: agent killed intentionally Implementation: - Add internal/townlog package with LogEvent() function - Log to ~/gt/logs/town.log with human-readable format - Add gt log command to view/tail/filter logs - Integrate logging into spawn, nudge, handoff, done, stop, session commands 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -11,6 +11,7 @@ import (
|
||||
"github.com/steveyegge/gastown/internal/style"
|
||||
"github.com/steveyegge/gastown/internal/tmux"
|
||||
"github.com/steveyegge/gastown/internal/wisp"
|
||||
"github.com/steveyegge/gastown/internal/workspace"
|
||||
)
|
||||
|
||||
var handoffCmd = &cobra.Command{
|
||||
@@ -126,6 +127,15 @@ func runHandoff(cmd *cobra.Command, args []string) error {
|
||||
// Handing off ourselves - print feedback then respawn
|
||||
fmt.Printf("%s Handing off %s...\n", style.Bold.Render("🤝"), currentSession)
|
||||
|
||||
// Log handoff event
|
||||
if townRoot, err := workspace.FindFromCwd(); err == nil && townRoot != "" {
|
||||
agent := sessionToGTRole(currentSession)
|
||||
if agent == "" {
|
||||
agent = currentSession
|
||||
}
|
||||
LogHandoff(townRoot, agent, handoffSubject)
|
||||
}
|
||||
|
||||
// Dry run mode - show what would happen (BEFORE any side effects)
|
||||
if handoffDryRun {
|
||||
if handoffSubject != "" || handoffMessage != "" {
|
||||
|
||||
Reference in New Issue
Block a user