From f55a1e88ea5948582d0e5a33efea0c5d806e1f4b Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 16 Mar 2026 04:25:26 +0200 Subject: Add Snapshot.ScopeReqs/ScopeRPM and simplify 3 callers Centralizes the provider+model map traversal and window-minutes guard that was duplicated in hexaiaction, hexaicli, and lsp. Co-Authored-By: Claude Opus 4.6 --- internal/lsp/handlers_utils.go | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) (limited to 'internal/lsp') diff --git a/internal/lsp/handlers_utils.go b/internal/lsp/handlers_utils.go index 7fb17d2..408fdb1 100644 --- a/internal/lsp/handlers_utils.go +++ b/internal/lsp/handlers_utils.go @@ -170,18 +170,8 @@ func (s *Server) logLLMStats(model string) { if modelName == "" { modelName = client.DefaultModel() } - // Per-scope rpm estimated from window - scopeReqs := int64(0) - if pe, ok := snap.Providers[provider]; ok { - if mc, ok2 := pe.Models[modelName]; ok2 { - scopeReqs = mc.Reqs - } - } - minsWin := snap.Window.Minutes() - if minsWin <= 0 { - minsWin = 0.001 - } - scopeRPM := float64(scopeReqs) / minsWin + scopeReqs := snap.ScopeReqs(provider, modelName) + scopeRPM := snap.ScopeRPM(provider, modelName) s.emitGlobalStatus(snap.Global.Reqs, snap.RPM, snap.Global.Sent, snap.Global.Recv, provider, modelName, scopeRPM, scopeReqs, snap.Window) } } -- cgit v1.2.3