Redesign mobile time clock, add shortcuts, and improve account management.

Add iOS Shortcuts/Siri intents, local send-reminder notifications, stable
client picker with last-client defaults, account refresh/remove, and softer
session handling on unauthorized API responses.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-22 16:06:17 -04:00
co-authored by Cursor
parent 0b2d65a4e9
commit 06bc91ac13
33 changed files with 1844 additions and 320 deletions
+14
View File
@@ -25,6 +25,20 @@ export function formatElapsedHoursMinutes(seconds: number): string {
return `${h}:${String(m).padStart(2, "0")}`;
}
export function resolveEffectiveHourlyRate(
rateText: string,
clientDefaultRate?: number | null,
): number | null {
const parsed = rateText.trim() ? Number(rateText) : null;
if (parsed != null && !Number.isNaN(parsed) && parsed >= 0) return parsed;
if (clientDefaultRate != null && clientDefaultRate >= 0) return clientDefaultRate;
return null;
}
export function startedAtFromMinutesAgo(minutes: number): Date {
return new Date(Date.now() - minutes * 60_000);
}
export function describeClockOutOutcome(input: {
outcome: ClockOutOutcome;
hours: number;