feat: add witness start agent override

This commit is contained in:
joshuavial
2026-01-09 22:24:09 +13:00
committed by Steve Yegge
parent bfd3096b49
commit 369cf82b77
2 changed files with 18 additions and 3 deletions

View File

@@ -15,8 +15,8 @@ import (
// Witness command flags
var (
witnessForeground bool
witnessStatusJSON bool
witnessForeground bool
witnessStatusJSON bool
witnessAgentOverride string
)
@@ -42,6 +42,7 @@ states and takes action to keep work flowing.
Examples:
gt witness start greenplace
gt witness start greenplace --agent codex
gt witness start greenplace --foreground`,
Args: cobra.ExactArgs(1),
RunE: runWitnessStart,
@@ -103,6 +104,7 @@ Examples:
func init() {
// Start flags
witnessStartCmd.Flags().BoolVar(&witnessForeground, "foreground", false, "Run in foreground (default: background)")
witnessStartCmd.Flags().StringVar(&witnessAgentOverride, "agent", "", "Agent alias to run the Witness with (overrides town default)")
// Status flags
witnessStatusCmd.Flags().BoolVar(&witnessStatusJSON, "json", false, "Output as JSON")
@@ -141,7 +143,7 @@ func runWitnessStart(cmd *cobra.Command, args []string) error {
fmt.Printf("Starting witness for %s...\n", rigName)
if err := mgr.Start(witnessForeground, ""); err != nil {
if err := mgr.Start(witnessForeground, witnessAgentOverride); err != nil {
if err == witness.ErrAlreadyRunning {
fmt.Printf("%s Witness is already running\n", style.Dim.Render("⚠"))
fmt.Printf(" %s\n", style.Dim.Render("Use 'gt witness attach' to connect"))

View File

@@ -17,3 +17,16 @@ func TestWitnessRestartAgentFlag(t *testing.T) {
t.Errorf("expected --agent usage to mention overrides town default, got %q", flag.Usage)
}
}
func TestWitnessStartAgentFlag(t *testing.T) {
flag := witnessStartCmd.Flags().Lookup("agent")
if flag == nil {
t.Fatal("expected witness start to define --agent flag")
}
if flag.DefValue != "" {
t.Errorf("expected default agent override to be empty, got %q", flag.DefValue)
}
if !strings.Contains(flag.Usage, "overrides town default") {
t.Errorf("expected --agent usage to mention overrides town default, got %q", flag.Usage)
}
}