diff --git a/internal/cmd/handoff.go b/internal/cmd/handoff.go index bde0c400..023fc838 100644 --- a/internal/cmd/handoff.go +++ b/internal/cmd/handoff.go @@ -444,7 +444,16 @@ func sessionWorkDir(sessionName, townRoot string) (string, error) { return fmt.Sprintf("%s/%s/refinery/rig", townRoot, rig), nil default: - return "", fmt.Errorf("unknown session type: %s (try specifying role explicitly)", sessionName) + // Assume polecat: gt-- -> //polecats/ + // Use session.ParseSessionName to determine rig and name + identity, err := session.ParseSessionName(sessionName) + if err != nil { + return "", fmt.Errorf("unknown session type: %s (%w)", sessionName, err) + } + if identity.Role != session.RolePolecat { + return "", fmt.Errorf("unknown session type: %s (role %s, try specifying role explicitly)", sessionName, identity.Role) + } + return fmt.Sprintf("%s/%s/polecats/%s", townRoot, identity.Rig, identity.Name), nil } }