feat(witness): add --env flag for environment variable overrides

Extends the --agent flag with a more general --env flag that allows
setting arbitrary environment variables when starting a witness.

Precedence (highest to lowest):
1. CLI --env overrides
2. Role bead env_vars
3. config.AgentEnv() defaults

Examples:
  gt witness start greenplace --env ANTHROPIC_MODEL=claude-3-haiku
  gt witness restart greenplace --env DEBUG=1 --env VERBOSE=true

Co-authored-by: joshuavial <git@codewithjv.com>
This commit is contained in:
gastown/crew/gus
2026-01-09 22:00:43 -08:00
committed by Steve Yegge
parent f9473c7b9e
commit 86751e1ea5
6 changed files with 36 additions and 24 deletions

View File

@@ -759,7 +759,7 @@ func runRigBoot(cmd *cobra.Command, args []string) error {
} else {
fmt.Printf(" Starting witness...\n")
witMgr := witness.NewManager(r)
if err := witMgr.Start(false, ""); err != nil {
if err := witMgr.Start(false, "", nil); err != nil {
if err == witness.ErrAlreadyRunning {
skipped = append(skipped, "witness (already running)")
} else {
@@ -839,7 +839,7 @@ func runRigStart(cmd *cobra.Command, args []string) error {
} else {
fmt.Printf(" Starting witness...\n")
witMgr := witness.NewManager(r)
if err := witMgr.Start(false, ""); err != nil {
if err := witMgr.Start(false, "", nil); err != nil {
if err == witness.ErrAlreadyRunning {
skipped = append(skipped, "witness")
} else {
@@ -1418,7 +1418,7 @@ func runRigRestart(cmd *cobra.Command, args []string) error {
skipped = append(skipped, "witness")
} else {
fmt.Printf(" Starting witness...\n")
if err := witMgr.Start(false, ""); err != nil {
if err := witMgr.Start(false, "", nil); err != nil {
if err == witness.ErrAlreadyRunning {
skipped = append(skipped, "witness")
} else {