fix: code review fixes from gt-2tp and gt-y0t

- Replace custom contains() with strings.Contains in init.go
- Make session stop --force flag actually work
- Update session.Manager.Stop() to accept force parameter

🤖 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-16 13:56:32 -08:00
parent eef28f3ee5
commit 29e4436891
5 changed files with 32 additions and 35 deletions

View File

@@ -134,7 +134,8 @@ func (m *Manager) Start(polecat string, opts StartOptions) error {
}
// Stop terminates a polecat session.
func (m *Manager) Stop(polecat string) error {
// If force is true, skips graceful shutdown and kills immediately.
func (m *Manager) Stop(polecat string, force bool) error {
sessionID := m.sessionName(polecat)
// Check if session exists
@@ -146,9 +147,11 @@ func (m *Manager) Stop(polecat string) error {
return ErrSessionNotFound
}
// Try graceful shutdown first
m.tmux.SendKeysRaw(sessionID, "C-c") // Ctrl+C
time.Sleep(100 * time.Millisecond)
// Try graceful shutdown first (unless forced)
if !force {
m.tmux.SendKeysRaw(sessionID, "C-c") // Ctrl+C
time.Sleep(100 * time.Millisecond)
}
// Kill the session
if err := m.tmux.KillSession(sessionID); err != nil {
@@ -237,7 +240,7 @@ func (m *Manager) Inject(polecat, message string) error {
}
// StopAll terminates all sessions for this rig.
func (m *Manager) StopAll() error {
func (m *Manager) StopAll(force bool) error {
infos, err := m.List()
if err != nil {
return err
@@ -245,7 +248,7 @@ func (m *Manager) StopAll() error {
var lastErr error
for _, info := range infos {
if err := m.Stop(info.Polecat); err != nil {
if err := m.Stop(info.Polecat, force); err != nil {
lastErr = err
}
}

View File

@@ -105,7 +105,7 @@ func TestStopNotFound(t *testing.T) {
}
m := NewManager(tmux.NewTmux(), r)
err := m.Stop("Toast")
err := m.Stop("Toast", false)
if err != ErrSessionNotFound {
t.Errorf("Stop = %v, want ErrSessionNotFound", err)
}