From 81a9ff67673c4662054e60d67aa44cafc707704a Mon Sep 17 00:00:00 2001 From: Faur Ioan-Aurel Date: Fri, 15 Aug 2025 00:58:02 +0300 Subject: [PATCH 1/5] impl: poll workspaces when Toolbox screen becomes visible Some users complained that Coder Toolbox has a noticeable delay in rendering the workspaces status compared with the web Dashboard, even though they have the same polling frequency, which is every 5 seconds. However, the web Dashboard also reacts and when the tab receives focus from the user which improves the experience. This PR tries to implement the same behavior, when Coder Toolbox screen becomes visible the polling is triggered immediately which should result in a status update. --- .../kotlin/com/coder/toolbox/CoderRemoteProvider.kt | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/com/coder/toolbox/CoderRemoteProvider.kt b/src/main/kotlin/com/coder/toolbox/CoderRemoteProvider.kt index 2e5d557..5f55bb0 100644 --- a/src/main/kotlin/com/coder/toolbox/CoderRemoteProvider.kt +++ b/src/main/kotlin/com/coder/toolbox/CoderRemoteProvider.kt @@ -54,8 +54,8 @@ class CoderRemoteProvider( private val settings = context.settingsStore.readOnly() - // Create our services from the Toolbox ones. private val triggerSshConfig = Channel(Channel.CONFLATED) + private val triggerProviderVisible = Channel(Channel.CONFLATED) private val settingsPage: CoderSettingsPage = CoderSettingsPage(context, triggerSshConfig) private val dialogUi = DialogUi(context) @@ -185,6 +185,11 @@ class CoderRemoteProvider( cli.configSsh(lastEnvironments.map { it.asPairOfWorkspaceAndAgent() }.toSet()) } } + triggerProviderVisible.onReceive { isCoderProviderVisible -> + if (isCoderProviderVisible) { + context.logger.info("workspace poller waked up, Coder Toolbox is currently visible, fetching latest workspace statuses") + } + } } lastPollTime = TimeSource.Monotonic.markNow() } @@ -293,6 +298,11 @@ class CoderRemoteProvider( visibilityState.update { visibility } + if (visibility.providerVisible) { + context.cs.launch { + triggerProviderVisible.send(true) + } + } } /** From 685357a14fd4497062605805acfdb63aba88eb9e Mon Sep 17 00:00:00 2001 From: Faur Ioan-Aurel Date: Fri, 15 Aug 2025 00:59:44 +0300 Subject: [PATCH 2/5] chore: update changelog --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 574103d..abee5fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased +### Changed + +- workspaces status is now refresh every time Coder Toolbox becomes visible + ## 0.6.2 - 2025-08-14 ### Changed From d7aeb54969ddcd388bb6a2f11f1b97d9d34b02e7 Mon Sep 17 00:00:00 2001 From: Faur Ioan-Aurel Date: Fri, 15 Aug 2025 01:00:48 +0300 Subject: [PATCH 3/5] chore: next version is 0.6.3 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 846b191..b10e0c2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ -version=0.6.2 +version=0.6.3 group=com.coder.toolbox name=coder-toolbox \ No newline at end of file From c2cace92d5fec7b1e18c4a105d3ba726d62ebfa2 Mon Sep 17 00:00:00 2001 From: Faur Ioan-Aurel Date: Fri, 15 Aug 2025 01:04:38 +0300 Subject: [PATCH 4/5] fix: log poller wake-up un debug --- src/main/kotlin/com/coder/toolbox/CoderRemoteProvider.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/com/coder/toolbox/CoderRemoteProvider.kt b/src/main/kotlin/com/coder/toolbox/CoderRemoteProvider.kt index 5f55bb0..daaec08 100644 --- a/src/main/kotlin/com/coder/toolbox/CoderRemoteProvider.kt +++ b/src/main/kotlin/com/coder/toolbox/CoderRemoteProvider.kt @@ -177,17 +177,17 @@ class CoderRemoteProvider( select { onTimeout(POLL_INTERVAL) { - context.logger.trace("workspace poller waked up by the $POLL_INTERVAL timeout") + context.logger.debug("workspace poller waked up by the $POLL_INTERVAL timeout") } triggerSshConfig.onReceive { shouldTrigger -> if (shouldTrigger) { - context.logger.trace("workspace poller waked up because it should reconfigure the ssh configurations") + context.logger.debug("workspace poller waked up because it should reconfigure the ssh configurations") cli.configSsh(lastEnvironments.map { it.asPairOfWorkspaceAndAgent() }.toSet()) } } triggerProviderVisible.onReceive { isCoderProviderVisible -> if (isCoderProviderVisible) { - context.logger.info("workspace poller waked up, Coder Toolbox is currently visible, fetching latest workspace statuses") + context.logger.debug("workspace poller waked up, Coder Toolbox is currently visible, fetching latest workspace statuses") } } } From 5d7b116fd50e02b58b570660fbd097c22a498ad9 Mon Sep 17 00:00:00 2001 From: Faur Ioan-Aurel Date: Fri, 15 Aug 2025 01:05:51 +0300 Subject: [PATCH 5/5] chore: update wake-up message To be more consistent with the rest of the wakeup messages --- src/main/kotlin/com/coder/toolbox/CoderRemoteProvider.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/kotlin/com/coder/toolbox/CoderRemoteProvider.kt b/src/main/kotlin/com/coder/toolbox/CoderRemoteProvider.kt index daaec08..596255e 100644 --- a/src/main/kotlin/com/coder/toolbox/CoderRemoteProvider.kt +++ b/src/main/kotlin/com/coder/toolbox/CoderRemoteProvider.kt @@ -187,7 +187,7 @@ class CoderRemoteProvider( } triggerProviderVisible.onReceive { isCoderProviderVisible -> if (isCoderProviderVisible) { - context.logger.debug("workspace poller waked up, Coder Toolbox is currently visible, fetching latest workspace statuses") + context.logger.debug("workspace poller waked up by Coder Toolbox which is currently visible, fetching latest workspace statuses") } } } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy