diff --git a/internal/rig/manager.go b/internal/rig/manager.go index 9038993e..76e25b04 100644 --- a/internal/rig/manager.go +++ b/internal/rig/manager.go @@ -212,8 +212,9 @@ func (m *Manager) AddRig(opts AddRigOptions) (*Rig, error) { // Validate rig name: reject characters that break agent ID parsing // Agent IDs use format --[-] with hyphens as delimiters if strings.ContainsAny(opts.Name, "-. ") { - sanitized := strings.NewReplacer("-", "", ".", "", " ", "").Replace(opts.Name) - return nil, fmt.Errorf("rig name %q contains invalid characters (hyphens, dots, or spaces break agent ID parsing); use %q instead", opts.Name, sanitized) + sanitized := strings.NewReplacer("-", "_", ".", "_", " ", "_").Replace(opts.Name) + sanitized = strings.ToLower(sanitized) + return nil, fmt.Errorf("rig name %q contains invalid characters; hyphens, dots, and spaces are reserved for agent ID parsing. Try %q instead (underscores are allowed)", opts.Name, sanitized) } rigPath := filepath.Join(m.townRoot, opts.Name)