From 5b1811db10ec73fec0b95015474a95bf7faa1b4b Mon Sep 17 00:00:00 2001 From: tigerenwork Date: Mon, 29 Jun 2026 23:51:48 +0800 Subject: [PATCH] fix: auto-refresh on tray click, widen 'Just now' to 60s - Opening the popover now triggers a fetch (via PollerService.fetchNow which deduplicates if already in progress) - 'Just now' now covers 0-60s, then switches to 'Xm ago'. Avoids the frozen-timer look since the text only updates on re-render. Co-Authored-By: Claude --- Sources/AppDelegate.swift | 2 ++ Sources/Views/MenuBar/BugListPopover.swift | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Sources/AppDelegate.swift b/Sources/AppDelegate.swift index bf03572..99c9e6a 100644 --- a/Sources/AppDelegate.swift +++ b/Sources/AppDelegate.swift @@ -64,6 +64,8 @@ final class AppDelegate: NSObject, NSApplicationDelegate { } else { popover.show(relativeTo: button.bounds, of: button, preferredEdge: .minY) popover.contentViewController?.view.window?.makeKey() + // Refresh on open (PollerService deduplicates if already fetching) + Task { await PollerService.shared.fetchNow() } } } diff --git a/Sources/Views/MenuBar/BugListPopover.swift b/Sources/Views/MenuBar/BugListPopover.swift index 62403cc..0503072 100644 --- a/Sources/Views/MenuBar/BugListPopover.swift +++ b/Sources/Views/MenuBar/BugListPopover.swift @@ -112,8 +112,7 @@ struct BugListPopover: View { private func formatted(_ date: Date) -> String { let seconds = Int(Date().timeIntervalSince(date)) switch seconds { - case ..<5: return "Just now" - case ..<60: return "\(seconds)s ago" + case ..<60: return "Just now" case ..<3600: let m = seconds / 60 return m == 1 ? "1m ago" : "\(m)m ago"