fix(statusline): count only polecats in mayor status bar
The mayor tmux status line was counting all gt-* sessions as polecats, including witnesses, refineries, deacon, and crew workers. Now uses categorizeSession() to properly identify only actual polecats. Also removes dead code handling gt-witness-<rig> pattern (only gt-<rig>-witness is valid). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -99,13 +99,6 @@ func categorizeSession(name string) *AgentSession {
|
|||||||
return session
|
return session
|
||||||
}
|
}
|
||||||
|
|
||||||
// Witness uses gt-witness-<rig> naming
|
|
||||||
if strings.HasPrefix(suffix, "witness-") {
|
|
||||||
session.Type = AgentWitness
|
|
||||||
session.Rig = strings.TrimPrefix(suffix, "witness-")
|
|
||||||
return session
|
|
||||||
}
|
|
||||||
|
|
||||||
// Rig-level agents: gt-<rig>-<type> or gt-<rig>-crew-<name>
|
// Rig-level agents: gt-<rig>-<type> or gt-<rig>-crew-<name>
|
||||||
parts := strings.SplitN(suffix, "-", 2)
|
parts := strings.SplitN(suffix, "-", 2)
|
||||||
if len(parts) < 2 {
|
if len(parts) < 2 {
|
||||||
@@ -125,7 +118,6 @@ func categorizeSession(name string) *AgentSession {
|
|||||||
// Check for other agent types
|
// Check for other agent types
|
||||||
switch remainder {
|
switch remainder {
|
||||||
case "witness":
|
case "witness":
|
||||||
// Alternate naming gt-<rig>-witness (for compatibility)
|
|
||||||
session.Type = AgentWitness
|
session.Type = AgentWitness
|
||||||
return session
|
return session
|
||||||
case "refinery":
|
case "refinery":
|
||||||
|
|||||||
@@ -93,17 +93,17 @@ func runMayorStatusLine(t *tmux.Tmux) error {
|
|||||||
return nil // Silent fail
|
return nil // Silent fail
|
||||||
}
|
}
|
||||||
|
|
||||||
// Count gt-* sessions (polecats) and rigs
|
// Count only actual polecats (not witnesses, refineries, deacon, crew)
|
||||||
polecatCount := 0
|
polecatCount := 0
|
||||||
rigs := make(map[string]bool)
|
rigs := make(map[string]bool)
|
||||||
for _, s := range sessions {
|
for _, s := range sessions {
|
||||||
if strings.HasPrefix(s, "gt-") && s != "gt-mayor" {
|
agent := categorizeSession(s)
|
||||||
|
if agent == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if agent.Type == AgentPolecat {
|
||||||
polecatCount++
|
polecatCount++
|
||||||
// Extract rig name: gt-<rig>-<worker>
|
rigs[agent.Rig] = true
|
||||||
parts := strings.SplitN(s, "-", 3)
|
|
||||||
if len(parts) >= 2 {
|
|
||||||
rigs[parts[1]] = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rigCount := len(rigs)
|
rigCount := len(rigs)
|
||||||
|
|||||||
Reference in New Issue
Block a user