From ae6e9e3f7787f61720b9f60f1dd6202ee3a03823 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Tue, 20 Oct 2026 22:32:24 -0700 Subject: [PATCH] Audit of 3560327 --- internal/agents/clients.go | 25 +++++++++++++------------ internal/agents/sign.go | 8 ++------ 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/internal/agents/clients.go b/internal/agents/clients.go index afb0077..4505c64 100644 --- a/internal/agents/clients.go +++ b/internal/agents/clients.go @@ -39,7 +39,7 @@ func (m *Manager) clientTools(l *live) []mcp.Tool { "The most recently active one is listed first; it is usually the Mac the human sits at.", InputSchema: json.RawMessage(`{"type": "object", "properties": {}}`), Handler: func(ctx context.Context, raw json.RawMessage) (string, error) { - return m.listClients(ctx) + return m.listClients(), nil }, }, { @@ -219,24 +219,25 @@ func (m *Manager) clientTools(l *live) []mcp.Tool { } } -func (m *Manager) listClients(ctx context.Context) (string, error) { - status, err := m.status(ctx) - if err != nil { - return "", err - } - rows := status.Clients - if len(rows) == 0 { - return "No client Macs are connected.", nil - } +func (m *Manager) recentClients() []clients.Client { + rows := m.clients.List() sort.SliceStable(rows, func(i, j int) bool { a, b := rows[i].LastActionAt, rows[j].LastActionAt return a != nil && (b == nil || a.After(*b)) }) + return rows +} + +func (m *Manager) listClients() string { + rows := m.recentClients() + if len(rows) == 0 { + return "No client Macs are connected." + } now := time.Now() b := &strings.Builder{} for i, r := range rows { - fmt.Fprintf(b, "- %s (%s, id %s): ", r.Host, r.Login, r.Id) + fmt.Fprintf(b, "- %s (%s, id %s): ", r.Host, r.Login, r.ID) if r.LastActionAt == nil { b.WriteString("no action since byre started") } else { @@ -251,7 +252,7 @@ func (m *Manager) listClients(ctx context.Context) (string, error) { } b.WriteString("\n") } - return b.String(), nil + return b.String() } type clientBashArgs struct { diff --git a/internal/agents/sign.go b/internal/agents/sign.go index c83b096..d5bb986 100644 --- a/internal/agents/sign.go +++ b/internal/agents/sign.go @@ -3,7 +3,6 @@ package agents import ( "context" "fmt" - "sort" "strings" "time" @@ -16,7 +15,7 @@ const signTimeout = 2 * time.Minute func (m *Manager) signer(ctx context.Context, user api.User) func(payload []byte) ([]byte, error) { return func(payload []byte) ([]byte, error) { mine := []clients.Client{} - for _, c := range m.clients.List() { + for _, c := range m.recentClients() { if c.Login == user.Login { mine = append(mine, c) } @@ -24,10 +23,7 @@ func (m *Manager) signer(ctx context.Context, user api.User) func(payload []byte if len(mine) == 0 { return nil, fmt.Errorf("commits are signed on %s's Mac, and none of theirs is connected", user.Login) } - sort.SliceStable(mine, func(i, j int) bool { - a, b := mine[i].LastActionAt, mine[j].LastActionAt - return a != nil && (b == nil || a.After(*b)) - }) + client := mine[0] ident := fmt.Sprintf("%s <%s>", user.GitName, user.GitEmail)