# cli: share the stop-sessions confirmation prompt

`c798db8`·

Soph·2w ago·1 file·+27 added/-28 removed

runStopAll and runStopMultiSelect repeated the confirm-form/cancel/
decline handling; extract confirmStopSessions. Covered by the existing
session stop tests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

## Sessions

5c2527f62f77View transcript

## Changes

1

- cmd/entire/cli

- Msessions.go+27/-28

```go
758 unmodified lines

if !force {
	var confirmed bool
	form := NewAccessibleForm(
		huh.NewGroup(
			huh.NewConfirm().
				Title(fmt.Sprintf("Stop %d session(s)?", len(activeSessions))).
				Value(&confirmed),
			),
		)
	if err := form.Run(); err != nil {
		return handleFormCancellation(cmd.OutOrStdout(), "Stop", err)
	}
	if !confirmed {
		fmt.Fprintln(cmd.OutOrStdout(), "Stop cancelled.")
		return nil
	}
	confirmed, err := confirmStopSessions(cmd, len(activeSessions))
	if err != nil || !confirmed {
		return err
	}
}

return stopSelectedSessions(ctx, cmd, activeSessions)

// confirmStopSessions asks the user to confirm stopping count sessions.
// When declined or cancelled it prints the outcome and returns confirmed=false.
func confirmStopSessions(cmd *cobra.Command, count int) (bool, error) {
	var confirmed bool
	form := NewAccessibleForm(
		huh.NewGroup(
			huh.NewConfirm().
				Title(fmt.Sprintf("Stop %d session(s)?", count)).
				Value(&confirmed),
			),
		)
	if err := form.Run(); err != nil {
		return false, handleFormCancellation(cmd.OutOrStdout(), "Stop", err)
	}
	if !confirmed {
		fmt.Fprintln(cmd.OutOrStdout(), "Stop cancelled.")
		return false, nil
	}
	return true, nil
}

// runStopMultiSelect shows a TUI multi-select for multiple active sessions.
func runStopMultiSelect(ctx context.Context, cmd *cobra.Command, activeSessions []*strategy.SessionState, force bool) error {
	options := make([]huh.Option[string], len(activeSessions))
	
	// Confirm only if not forcing
	if !force {
		var confirmed bool
		form := NewAccessibleForm(
			huh.NewGroup(
				huh.NewConfirm().
					Title(fmt.Sprintf("Stop %d session(s)?", len(selectedIDs))).
					Value(&confirmed),
				),
			)
		if err := form.Run(); err != nil {
			return handleFormCancellation(cmd.OutOrStdout(), "Stop", err)
		}
		if !confirmed {
			fmt.Fprintln(cmd.OutOrStdout(), "Stop cancelled.")
			return nil
		}
		confirmed, err := confirmStopSessions(cmd, len(selectedIDs))
		if err != nil || !confirmed {
			return err
		}
	}
```
