From a3b99dc30975df5ff12dd346e6f134815a157393 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 7 Dec 2025 19:02:50 +0100 Subject: [PATCH] Utilities: add age helper for menu health label --- apps/macos/Sources/Clawdis/Utilities.swift | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/apps/macos/Sources/Clawdis/Utilities.swift b/apps/macos/Sources/Clawdis/Utilities.swift index 4339d7d8f..336b3d5c3 100644 --- a/apps/macos/Sources/Clawdis/Utilities.swift +++ b/apps/macos/Sources/Clawdis/Utilities.swift @@ -96,6 +96,22 @@ enum LaunchAgentManager { } } +// Human-friendly age string (e.g., "2m ago"). +func age(from date: Date, now: Date = .init()) -> String { + let seconds = max(0, Int(now.timeIntervalSince(date))) + let minutes = seconds / 60 + let hours = minutes / 60 + let days = hours / 24 + + if seconds < 60 { return "just now" } + if minutes == 1 { return "1 minute ago" } + if minutes < 60 { return "\(minutes)m ago" } + if hours == 1 { return "1 hour ago" } + if hours < 24 { return "\(hours)h ago" } + if days == 1 { return "yesterday" } + return "\(days)d ago" +} + @MainActor enum CLIInstaller { static func installedLocation() -> String? {