From f49f5f739b67a44551d55398339a40c860663783 Mon Sep 17 00:00:00 2001 From: Jason Staack Date: Sun, 15 Mar 2026 23:12:56 -0500 Subject: [PATCH] fix: remove dead code (toast stubs, unused Redis key, tunnel manager fields) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove 7 no-op exported stubs from toast.tsx (ToastProvider, ToastViewport, Toast, ToastTitle, ToastDescription, ToastClose, useToasts) — nothing imports them - Remove fwFailKey variable and its Set() call from worker.go — the firmware:check-failed Redis key was never read anywhere - Remove unused deviceStore and credCache fields from tunnel.Manager struct and drop corresponding parameters from NewManager(); update call site in main.go and all test usages Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/components/ui/toast.tsx | 10 --------- poller/cmd/poller/main.go | 2 -- poller/internal/poller/worker.go | 4 ---- poller/internal/tunnel/manager.go | 28 ++++++++++---------------- poller/internal/tunnel/manager_test.go | 10 ++++----- 5 files changed, 16 insertions(+), 38 deletions(-) diff --git a/frontend/src/components/ui/toast.tsx b/frontend/src/components/ui/toast.tsx index 81752c0..1d91e40 100644 --- a/frontend/src/components/ui/toast.tsx +++ b/frontend/src/components/ui/toast.tsx @@ -38,13 +38,3 @@ export function toast(options: ToastOptions) { } } -// Backward-compatible no-op exports for AppLayout migration -// These were used by the old Radix Toast implementation -export const ToastProvider = ({ children }: { children: React.ReactNode }) => <>{children} -export const ToastViewport = () => null -export const Toast = () => null -export const ToastTitle = () => null -export const ToastDescription = () => null -export const ToastClose = () => null -// eslint-disable-next-line react-refresh/only-export-components -export const useToasts = () => ({ toasts: [] as never[], dismiss: () => {} }) diff --git a/poller/cmd/poller/main.go b/poller/cmd/poller/main.go index c01fa4f..ae36dd0 100644 --- a/poller/cmd/poller/main.go +++ b/poller/cmd/poller/main.go @@ -196,8 +196,6 @@ func main() { cfg.TunnelPortMin, cfg.TunnelPortMax, time.Duration(cfg.TunnelIdleTimeout)*time.Second, - deviceStore, - credentialCache, ) defer tunnelMgr.Shutdown() slog.Info("tunnel manager initialized", diff --git a/poller/internal/poller/worker.go b/poller/internal/poller/worker.go index 042221c..c2b057e 100644 --- a/poller/internal/poller/worker.go +++ b/poller/internal/poller/worker.go @@ -390,10 +390,6 @@ func PollDevice( slog.Warn("firmware check failed", "device_id", dev.ID, "error", fwErr) // Set cooldown on failure too, but shorter (6h) so we retry sooner than success (24h). // Prevents hammering devices that can't reach MikroTik update servers every poll cycle. - fwFailKey := fmt.Sprintf("firmware:check-failed:%s", dev.ID) - if err := redisClientForFirmware.Set(ctx, fwFailKey, "1", 6*time.Hour).Err(); err != nil { - slog.Warn("Redis SET failed", "key", fwFailKey, "error", err) - } // Also set the main checked key to prevent the success path from re-checking. if err := redisClientForFirmware.Set(ctx, fwCacheKey, "1", 6*time.Hour).Err(); err != nil { slog.Warn("Redis SET failed", "key", fwCacheKey, "error", err) diff --git a/poller/internal/tunnel/manager.go b/poller/internal/tunnel/manager.go index 4b01b60..0a94427 100644 --- a/poller/internal/tunnel/manager.go +++ b/poller/internal/tunnel/manager.go @@ -9,8 +9,6 @@ import ( "time" "github.com/google/uuid" - "github.com/staack/the-other-dude/poller/internal/store" - "github.com/staack/the-other-dude/poller/internal/vault" ) // OpenTunnelResponse is returned by Manager.OpenTunnel. @@ -32,26 +30,22 @@ type TunnelStatus struct { // Manager orchestrates the lifecycle of WinBox tunnels: open, close, idle // cleanup, and status queries. type Manager struct { - mu sync.Mutex - tunnels map[string]*Tunnel - portPool *PortPool - idleTime time.Duration - deviceStore *store.DeviceStore - credCache *vault.CredentialCache - cancel context.CancelFunc + mu sync.Mutex + tunnels map[string]*Tunnel + portPool *PortPool + idleTime time.Duration + cancel context.CancelFunc } // NewManager creates a Manager with ports in [portMin, portMax] and an idle -// timeout of idleTime. deviceStore and credCache may be nil for tests. -func NewManager(portMin, portMax int, idleTime time.Duration, ds *store.DeviceStore, cc *vault.CredentialCache) *Manager { +// timeout of idleTime. +func NewManager(portMin, portMax int, idleTime time.Duration) *Manager { ctx, cancel := context.WithCancel(context.Background()) m := &Manager{ - tunnels: make(map[string]*Tunnel), - portPool: NewPortPool(portMin, portMax), - idleTime: idleTime, - deviceStore: ds, - credCache: cc, - cancel: cancel, + tunnels: make(map[string]*Tunnel), + portPool: NewPortPool(portMin, portMax), + idleTime: idleTime, + cancel: cancel, } go m.idleLoop(ctx) return m diff --git a/poller/internal/tunnel/manager_test.go b/poller/internal/tunnel/manager_test.go index ac016ed..b1e1d1b 100644 --- a/poller/internal/tunnel/manager_test.go +++ b/poller/internal/tunnel/manager_test.go @@ -12,7 +12,7 @@ func TestManager_OpenTunnel(t *testing.T) { routerAddr, cleanup := mockRouter(t) defer cleanup() - mgr := NewManager(49000, 49010, 5*time.Minute, nil, nil) + mgr := NewManager(49000, 49010, 5*time.Minute) defer mgr.Shutdown() resp, err := mgr.OpenTunnel("dev-1", "ten-1", "usr-1", routerAddr) @@ -26,7 +26,7 @@ func TestManager_CloseTunnel(t *testing.T) { routerAddr, cleanup := mockRouter(t) defer cleanup() - mgr := NewManager(49000, 49010, 5*time.Minute, nil, nil) + mgr := NewManager(49000, 49010, 5*time.Minute) defer mgr.Shutdown() resp, _ := mgr.OpenTunnel("dev-1", "ten-1", "usr-1", routerAddr) @@ -43,7 +43,7 @@ func TestManager_PortExhaustion(t *testing.T) { routerAddr, cleanup := mockRouter(t) defer cleanup() - mgr := NewManager(49000, 49001, 5*time.Minute, nil, nil) // 2 ports + mgr := NewManager(49000, 49001, 5*time.Minute) // 2 ports defer mgr.Shutdown() _, err := mgr.OpenTunnel("dev-1", "ten-1", "usr-1", routerAddr) @@ -58,7 +58,7 @@ func TestManager_IdleCleanup(t *testing.T) { routerAddr, cleanup := mockRouter(t) defer cleanup() - mgr := NewManager(49000, 49010, 100*time.Millisecond, nil, nil) // very short idle + mgr := NewManager(49000, 49010, 100*time.Millisecond) // very short idle defer mgr.Shutdown() resp, _ := mgr.OpenTunnel("dev-1", "ten-1", "usr-1", routerAddr) @@ -73,7 +73,7 @@ func TestManager_StatusList(t *testing.T) { routerAddr, cleanup := mockRouter(t) defer cleanup() - mgr := NewManager(49000, 49010, 5*time.Minute, nil, nil) + mgr := NewManager(49000, 49010, 5*time.Minute) defer mgr.Shutdown() mgr.OpenTunnel("dev-1", "ten-1", "usr-1", routerAddr)