@@ -255,7 +255,7 @@ class CoderCLIManager(
255
255
val startBlock= " # --- START CODER JETBRAINS$host "
256
256
val endBlock= " # --- END CODER JETBRAINS$host "
257
257
val isRemoving= workspaceNames.isEmpty()
258
- val proxyArgs =
258
+ val baseArgs =
259
259
listOfNotNull(
260
260
escape(localBinaryPath.toString()),
261
261
" --global-config" ,
@@ -265,8 +265,9 @@ class CoderCLIManager(
265
265
" ssh" ,
266
266
" --stdio" ,
267
267
if (settings.disableAutostart&& feats.disableAutostart)" --disable-autostart" else null ,
268
- if (feats.reportWorkspaceUsage)" --usage-app=jetbrains" else null ,
269
268
)
269
+ val proxyArgs= baseArgs+ listOfNotNull(if (feats.reportWorkspaceUsage)" --usage-app=jetbrains" else null )
270
+ val backgroundProxyArgs= baseArgs+ listOfNotNull(if (feats.reportWorkspaceUsage)" --usage-app=disable" else null )
270
271
val extraConfig=
271
272
if (settings.sshConfigOptions.isNotBlank()) {
272
273
" \n " + settings.sshConfigOptions.prependIndent(" " )
@@ -289,7 +290,19 @@ class CoderCLIManager(
289
290
SetEnv CODER_SSH_SESSION_TYPE=JetBrains
290
291
""" .trimIndent()
291
292
.plus(extraConfig)
292
- .replace(" \n " ,System .lineSeparator())
293
+ .plus(" \n " )
294
+ .plus(
295
+ """
296
+ Host${getBackgroundHostName(deploymentURL, it)}
297
+ ProxyCommand${backgroundProxyArgs.joinToString(" " )} $it
298
+ ConnectTimeout 0
299
+ StrictHostKeyChecking no
300
+ UserKnownHostsFile /dev/null
301
+ LogLevel ERROR
302
+ SetEnv CODER_SSH_SESSION_TYPE=JetBrains
303
+ """ .trimIndent()
304
+ .plus(extraConfig)
305
+ ).replace(" \n " ,System .lineSeparator())
293
306
},
294
307
)
295
308
@@ -465,5 +478,20 @@ class CoderCLIManager(
465
478
):String {
466
479
return " coder-jetbrains--$workspaceName --${url.safeHost()} "
467
480
}
481
+
482
+ @JvmStatic
483
+ fun getBackgroundHostName (
484
+ url : URL ,
485
+ workspaceName : String ,
486
+ ):String {
487
+ return getHostName(url, workspaceName)+ " --bg"
488
+ }
489
+
490
+ @JvmStatic
491
+ fun getBackgroundHostName (
492
+ hostname : String ,
493
+ ):String {
494
+ return hostname+ " --bg"
495
+ }
468
496
}
469
497
}