Migrate startup paths from SessionBeacon to StartupNudge (gt-7pp3l)

All 12 startup paths now use session.StartupNudge instead of the
older SessionBeacon pattern. The key difference is that StartupNudge
includes sender information, enabling better predecessor discovery
via gt seance.

Files updated:
- crew_lifecycle.go: 3 locations (refresh, restart)
- start.go: 2 locations (crew start)
- deacon.go: 1 location (deacon start)
- witness.go: 1 location (witness start)
- up.go: 4 locations (mayor, witness, crew, polecat)
- mayor.go: 1 location (mayor start)
- session/manager.go: 1 location (polecat spawn)

Format change:
Old: [GAS TOWN] address • molID • timestamp
New: [GAS TOWN] recipient <- sender • timestamp • topic[:mol-id]

This completes the Agent Startup Consolidation epic (gt-85whr).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
gastown/crew/gus
2025-12-31 11:52:34 -08:00
committed by Steve Yegge
parent 6f1b6269b1
commit b7c26d52e1
7 changed files with 79 additions and 46 deletions

View File

@@ -197,14 +197,15 @@ func (m *Manager) Start(polecat string, opts StartOptions) error {
// 10 second delay is conservative but reliable.
time.Sleep(10 * time.Second)
// Inject session beacon for predecessor discovery via /resume
// Inject startup nudge for predecessor discovery via /resume
// This becomes the session title in Claude Code's session picker
address := fmt.Sprintf("%s/polecats/%s", m.rig.Name, polecat)
molID := opts.Issue // Use issue ID if provided
beacon := SessionBeacon(address, molID)
if err := m.tmux.NudgeSession(sessionID, beacon); err != nil {
// Non-fatal: session works without beacon
}
_ = StartupNudge(m.tmux, sessionID, StartupNudgeConfig{
Recipient: address,
Sender: "witness",
Topic: "assigned",
MolID: opts.Issue,
}) // Non-fatal: session works without nudge
// GUPP: Gas Town Universal Propulsion Principle
// Send the propulsion nudge to trigger autonomous work execution.