From acf4f98d6b59d8fa2c0e5cc00203ec794a70cd1a Mon Sep 17 00:00:00 2001 From: pdmarf <135653545+pdmarf@users.noreply.github.com> Date: Wed, 2 Sep 2026 11:32:06 +0100 Subject: [PATCH] v1.0.49: fix version auto-refresh by polling from the property inspector The v1.0.47/48 attempt pushed sendProjectsToPI() from the plugin right after streamDeck.connect() on startup, assuming that would reach an already-open panel post-update-restart. It doesn't: per the SDK, sendToPropertyInspector only delivers 'when the property inspector is visible for an action provided by this plugin', and that visibility state is tracked per-process via live didAppear/onSendToPlugin events -- a freshly restarted process has never received one, so the push was silently dropped. Confirmed in testing: the panel stayed frozen on 'Updating to vX...' indefinitely. Removed the ineffective push. Instead, the property inspector's 'Check for Updates' handler now schedules a few refreshProjects requests (1.5s/3.5s/6s/9s after the click) -- the same proven PI-initiated round trip already used when entering an API token, which reliably re-populates the panel including the version text once the new process comes back up. Also hardened checkForUpdates(): the final 'Updated to vX -- restarting...' status is now awaited with a short delay before process.exit(0), best-effort only, since the panel no longer depends on it arriving. --- com.pdma.notion-timer.sdPlugin/bin/plugin.js | 6 +++--- .../bin/plugin.js.sig | 2 +- .../ui/property-inspector.html | 16 ++++++++++++++++ notion-timer.streamDeckPlugin | Bin 99764 -> 100057 bytes src/plugin.ts | 16 +++++++--------- version.json | 2 +- 6 files changed, 28 insertions(+), 14 deletions(-) diff --git a/com.pdma.notion-timer.sdPlugin/bin/plugin.js b/com.pdma.notion-timer.sdPlugin/bin/plugin.js index 2897e65..e8760e2 100644 --- a/com.pdma.notion-timer.sdPlugin/bin/plugin.js +++ b/com.pdma.notion-timer.sdPlugin/bin/plugin.js @@ -6438,7 +6438,7 @@ async function stopTimer(token, entryId) { } // src/plugin.ts -var CURRENT_VERSION = "1.0.48"; +var CURRENT_VERSION = "1.0.49"; var GITEA_BASE = "https://gitea.pdmarf.co.uk/pdm/stream_deck_notion_timer/raw/branch/stable-rebuild"; var SIGNING_PUBLIC_KEY = `-----BEGIN PUBLIC KEY----- MCowBQYDK2VwAyEAN7ko8TUpuPzPAJuKAZCRjV0c4ZSlou5d9pUAF6o12b4= @@ -6512,7 +6512,8 @@ async function checkForUpdates(sendStatus) { } fs3.writeFileSync(__filename, newCode); plugin_default.logger.info(`Updated to ${version}, restarting\u2026`); - sendStatus?.(`Updated to v${version} \u2014 restarting\u2026`); + await sendStatus?.(`Updated to v${version} \u2014 restarting\u2026`); + await new Promise((resolve) => setTimeout(resolve, 200)); process.exit(0); } catch (err) { const msg = err instanceof Error ? err.message : String(err); @@ -6735,7 +6736,6 @@ plugin_default.ui.onSendToPlugin(async (ev) => { } }); plugin_default.connect(); -sendProjectsToPI(); setTimeout(() => checkForUpdates(), 1e4); /*! Bundled license information: diff --git a/com.pdma.notion-timer.sdPlugin/bin/plugin.js.sig b/com.pdma.notion-timer.sdPlugin/bin/plugin.js.sig index c5ee3f2..4a52926 100644 --- a/com.pdma.notion-timer.sdPlugin/bin/plugin.js.sig +++ b/com.pdma.notion-timer.sdPlugin/bin/plugin.js.sig @@ -1 +1 @@ -Ïìp ¤i§%C‰ÍY9!qTVa¤'R?@·‰~o‰Ÿ.a' ç_‰CXÜfÉ‚&º”V‡+×} ½Ò \ No newline at end of file +sõ¨ÒâËÒŒ›ÍS«ÓúÌuá�¯Is5n²›6äùÑJåë¸ZÏÅh?®†²ª¹È…˜©LJV½?1 \ No newline at end of file diff --git a/com.pdma.notion-timer.sdPlugin/ui/property-inspector.html b/com.pdma.notion-timer.sdPlugin/ui/property-inspector.html index 3dc4c73..5372e0a 100644 --- a/com.pdma.notion-timer.sdPlugin/ui/property-inspector.html +++ b/com.pdma.notion-timer.sdPlugin/ui/property-inspector.html @@ -176,6 +176,21 @@ el.className = cls || ""; } + // The plugin process restarts after an update, and a freshly-restarted + // process has no way to push to an already-open panel (Stream Deck only + // tells a plugin a panel is visible via a live didAppear/onSendToPlugin + // round trip, which a cold-started process hasn't received yet). So the + // panel re-requests the version itself a few times after the restart + // window, instead of waiting on the plugin to notify it. + function pollForVersionRefresh() { + var token = document.getElementById("notionToken").value.trim(); + [1500, 3500, 6000, 9000].forEach(function(delay) { + setTimeout(function() { + $PI.sendToPlugin({ event: "refreshProjects", token: token }); + }, delay); + }); + } + // Collapsible credentials section document.getElementById("credToggle").addEventListener("click", function() { var section = document.getElementById("credSection"); @@ -264,6 +279,7 @@ document.getElementById("updateBtn").addEventListener("click", function() { document.getElementById("updateStatus").textContent = ""; $PI.sendToPlugin({ event: "checkForUpdates" }); + pollForVersionRefresh(); }); }); diff --git a/notion-timer.streamDeckPlugin b/notion-timer.streamDeckPlugin index 3fc5cd1a2ae7a2bc297fed12573a443209a6f7e6..0cb89ec2aeb8b929845b2921ab8d4ced0c815757 100644 GIT binary patch delta 5386 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 delta 5047 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 LAkGN-d&++Sp2LtV diff --git a/src/plugin.ts b/src/plugin.ts index a4c2513..6266c27 100644 --- a/src/plugin.ts +++ b/src/plugin.ts @@ -1,4 +1,4 @@ -const CURRENT_VERSION = "1.0.48"; +const CURRENT_VERSION = "1.0.49"; const GITEA_BASE = "https://gitea.pdmarf.co.uk/pdm/stream_deck_notion_timer/raw/branch/stable-rebuild"; const SIGNING_PUBLIC_KEY = `-----BEGIN PUBLIC KEY----- MCowBQYDK2VwAyEAN7ko8TUpuPzPAJuKAZCRjV0c4ZSlou5d9pUAF6o12b4= @@ -19,7 +19,7 @@ function fetchWithTimeout(url: string): Promise { return fetch(url, { signal: controller.signal }).finally(() => clearTimeout(timer)); } -async function checkForUpdates(sendStatus?: (msg: string) => void): Promise { +async function checkForUpdates(sendStatus?: (msg: string) => void | Promise): Promise { try { const resp = await fetchWithTimeout(`${GITEA_BASE}/version.json`); if (!resp.ok) { sendStatus?.("Update check failed"); return; } @@ -73,7 +73,11 @@ async function checkForUpdates(sendStatus?: (msg: string) => void): Promise setTimeout(resolve, 200)); process.exit(0); } catch (err) { const msg = err instanceof Error ? err.message : String(err); @@ -350,10 +354,4 @@ streamDeck.ui.onSendToPlugin<{ event: string; settings?: TimerSettings; token?: streamDeck.connect(); -// If a Property Inspector is already open (e.g. it survived the restart -// that just happened after an auto-update), push it the now-current -// version immediately — otherwise it keeps showing the pre-update number -// until the user happens to click a different button and reopens it. -sendProjectsToPI(); - setTimeout(() => checkForUpdates(), 10_000); diff --git a/version.json b/version.json index 3c51086..9fc6242 100644 --- a/version.json +++ b/version.json @@ -1 +1 @@ -{ "version": "1.0.48" } +{ "version": "1.0.49" }