From 7d543600cc5326259c7da68682b47f918bcfa0b6 Mon Sep 17 00:00:00 2001 From: David Heinemeier Hansson Date: Mon, 20 Jul 2026 18:35:19 -0700 Subject: [PATCH] Fast-poll Tailscale and Dropbox at shell startup so icons go live promptly Both services fire one status poll when the shell starts, but after a fresh boot that lands before tailscaled has connected or dropboxd has finished its respawn dance, leaving the bar icons stale for a full 30s/60s refresh interval. Re-poll every 2s until the service shows up (or ~30s pass), then hand off to the normal periodic refresh. Co-Authored-By: Claude Fable 5 --- Service.qml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Service.qml b/Service.qml index f1ef912..ffb5eb1 100644 --- a/Service.qml +++ b/Service.qml @@ -363,6 +363,22 @@ Item { onTriggered: root.refresh() } + Timer { + // After a fresh boot the startup poll usually lands before tailscaled has + // connected, which left the icon stale until the next periodic refresh. + // Poll quickly until the service shows up, or give up after ~30 seconds. + id: startupRamp + property int ticks: 0 + interval: 2000 + repeat: true + running: true + onTriggered: { + ticks += 1 + if (root.running || ticks >= 15) startupRamp.running = false + else root.refresh() + } + } + Timer { id: delayedRefresh interval: 600