sliccy 6.193.0 → 6.194.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/node-server/chrome-launch.js +34 -1
- package/dist/node-server/index.js +5 -0
- package/dist/ui/.vite/manifest.json +182 -182
- package/dist/ui/assets/{SKILL-BS0BC3cr.js → SKILL-Cw2kRKxn.js} +1 -1
- package/dist/ui/assets/__vite-browser-external-B1OEZP2E.js +1 -0
- package/dist/ui/assets/{account-store-b2cIu79O.js → account-store-CSZ1SuXx.js} +1 -1
- package/dist/ui/assets/{account-store-SimIXg8S.js → account-store-CpCQMPag.js} +1 -1
- package/dist/ui/assets/{adobe-BXH1mZBP.js → adobe-CaIp7_V7.js} +1 -1
- package/dist/ui/assets/{adobe-Baxaw9tF.js → adobe-ClyzE9LM.js} +1 -1
- package/dist/ui/assets/{agent-panels-SuTziiZF.js → agent-panels-BksWEFiA.js} +1 -1
- package/dist/ui/assets/{almost-bash-shell-headless-KRKIc_BC.js → almost-bash-shell-headless-Celu8-eA.js} +397 -388
- package/dist/ui/assets/{apply-layout-BMXr012X.js → apply-layout-CYu0uVAV.js} +1 -1
- package/dist/ui/assets/{apps-ClHDPvz3.js → apps-Cqyx3C6w.js} +1 -1
- package/dist/ui/assets/{azure-openai-DBM2Ldvh.js → azure-openai-C8GJXz9s.js} +1 -1
- package/dist/ui/assets/{azure-openai-DLiuqAAg.js → azure-openai-Coy4VBkd.js} +1 -1
- package/dist/ui/assets/{backend-hostfs-CMvkeWSE.js → backend-hostfs-D8ujpgFl.js} +1 -1
- package/dist/ui/assets/{cdp-DDirvj-c.js → cdp-m88RuusC.js} +1 -1
- package/dist/ui/assets/{cerebras-lgyiolIY.js → cerebras-Bqrip-GB.js} +1 -1
- package/dist/ui/assets/{cerebras-DuPDmIOB.js → cerebras-RLpoIpxp.js} +1 -1
- package/dist/ui/assets/{composer-speech-DmZY4JVi.js → composer-speech-Z98PD1IH.js} +1 -1
- package/dist/ui/assets/{connect-surface-BOTHMD51.js → connect-surface-CsTbjMO-.js} +1 -1
- package/dist/ui/assets/{directed-approval-CerbvC2D.js → directed-approval-BMUMRvgV.js} +1 -1
- package/dist/ui/assets/{emscripten-vfs-hook-jxmK_i72.js → emscripten-vfs-hook-D6VTI_oH.js} +1 -1
- package/dist/ui/assets/{emscripten-vfs-hook-BuS59209.js → emscripten-vfs-hook-DaNKqpP_.js} +1 -1
- package/dist/ui/assets/{ensure-speech-assets-p_8CXJAD.js → ensure-speech-assets-QjEGlN9t.js} +1 -1
- package/dist/ui/assets/{frozen-archive-writer-CFfTnqU4.js → frozen-archive-writer-DSidGdka.js} +1 -1
- package/dist/ui/assets/{fs-BxDhct-3.js → fs-C1FFvgCQ.js} +1 -1
- package/dist/ui/assets/{fs-C5DLxUuw.js → fs-DyX2c2Pt.js} +2 -2
- package/dist/ui/assets/{gelatiere-store-BvgAd5Zk.js → gelatiere-store-CxCrTmZe.js} +1 -1
- package/dist/ui/assets/{gelatiere-unit-s-jBG-uE.js → gelatiere-unit-9l5eIMnV.js} +1 -1
- package/dist/ui/assets/{github-BXOGqSiK.js → github-DzhHazaD.js} +2 -2
- package/dist/ui/assets/{github-auth-CwHehFvz.js → github-auth-Ctyg53oM.js} +1 -1
- package/dist/ui/assets/{github-copilot-Dt82sOhC.js → github-copilot-BoL-LqUA.js} +1 -1
- package/dist/ui/assets/{github-copilot-DGPlFE5e.js → github-copilot-uyEX3UzA.js} +1 -1
- package/dist/ui/assets/{github-install-jl4FPsHI.js → github-install-_Or5zMaW.js} +1 -1
- package/dist/ui/assets/{github-DG9QiZYP.js → github-kqXUhGfD.js} +1 -1
- package/dist/ui/assets/{github-zip-BAWKMgjN.js → github-zip-isBNzAP0.js} +1 -1
- package/dist/ui/assets/{hear-TuDMtKj3.js → hear-DI_7_IGz.js} +1 -1
- package/dist/ui/assets/{help-BbUskVkl.js → help-DyjR6RR0.js} +1 -1
- package/dist/ui/assets/installer-CKS3twrn.js +2 -0
- package/dist/ui/assets/ipk-mamba-Cjb4twH1.js +46 -0
- package/dist/ui/assets/{js-realm-worker-UfwUgA6T.js → js-realm-worker-CGYr2xLN.js} +2 -2
- package/dist/ui/assets/{jsh-executor-DdHf6Js2.js → jsh-executor-D0r3tr_u.js} +2 -2
- package/dist/ui/assets/{kernel-worker-DiHbIWEg.js → kernel-worker-DgIU4xNI.js} +10 -10
- package/dist/ui/assets/{lick-ws-bridge-Dglm_RzS.js → lick-ws-bridge-22bILimF.js} +1 -1
- package/dist/ui/assets/{lick-ws-bridge-CtPW0aNT.js → lick-ws-bridge-BRxVSyXS.js} +1 -1
- package/dist/ui/assets/{live-session-curation-BO60iZm7.js → live-session-curation-C8TIGmFR.js} +1 -1
- package/dist/ui/assets/{live-session-snapshot-DSYdvZ1k.js → live-session-snapshot-B18lp8LD.js} +1 -1
- package/dist/ui/assets/{live-vfs-fs-CX95TogC.js → live-vfs-fs-ENqkL-HX.js} +1 -1
- package/dist/ui/assets/{local-llm-hkLYzSvm.js → local-llm-CMMefJlP.js} +1 -1
- package/dist/ui/assets/{local-llm-CA-oC8S7.js → local-llm-Ccag_xjn.js} +1 -1
- package/dist/ui/assets/{main-BcLR9n_M.js → main-BCHKOdRf.js} +3 -3
- package/dist/ui/assets/{main-cherry-D8lHtydB.js → main-cherry-BPrAtSDc.js} +1 -1
- package/dist/ui/assets/{memory-curation-seam-BJN7RaZ_.js → memory-curation-seam-PpRU3INZ.js} +1 -1
- package/dist/ui/assets/{memory-health-CmDIs1jS.js → memory-health-T1eOU3sG.js} +1 -1
- package/dist/ui/assets/{memory-write-execute-C6Ys0m3p.js → memory-write-execute-DFQH63n2.js} +1 -1
- package/dist/ui/assets/{mount-oJcDzYHJ.js → mount-BEIufh9c.js} +3 -3
- package/dist/ui/assets/{mount-3ssq_M3f.js → mount-C0jVqGfg.js} +1 -1
- package/dist/ui/assets/{new-session-DCVrxowi.js → new-session-DdrXnkc7.js} +2 -2
- package/dist/ui/assets/{oauth-bootstrap-D1FahnIy.js → oauth-bootstrap-BUI3fzlK.js} +2 -2
- package/dist/ui/assets/{onboarding-orchestrator-UOkZjppy.js → onboarding-orchestrator-D7uEE2dP.js} +1 -1
- package/dist/ui/assets/{openai-codex-B5_xqxDd.js → openai-codex-DmwUE-2D.js} +1 -1
- package/dist/ui/assets/{openai-codex-B2yw-3yu.js → openai-codex-_3cSZQ0o.js} +1 -1
- package/dist/ui/assets/{openrouter-BfigMcxO.js → openrouter-BiAxI6Te.js} +1 -1
- package/dist/ui/assets/{openrouter-BwQeVkB-.js → openrouter-CiEyp3oN.js} +1 -1
- package/dist/ui/assets/{openrouter-free-B_pyNu1H.js → openrouter-free-AoFUrWXB.js} +1 -1
- package/dist/ui/assets/{openrouter-free-Cmp0KK1x.js → openrouter-free-UTv7JC_g.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-CjE2dXpj.js → openrouter-oauth-1xjBmKZU.js} +1 -1
- package/dist/ui/assets/{openrouter-oauth-DxX2hvVP.js → openrouter-oauth-Cr-VN5eD.js} +1 -1
- package/dist/ui/assets/{opfs-mount-5UoVuxDu.js → opfs-mount-9prGxKXC.js} +1 -1
- package/dist/ui/assets/{panel-rpc-handlers-bRzKgfVJ.js → panel-rpc-handlers-DwZDuJzC.js} +2 -2
- package/dist/ui/assets/{panelize-shell-DAt5CNbQ.js → panelize-shell-BP7kQqeE.js} +1 -1
- package/dist/ui/assets/{pi-edit-execution-CUuZWLzj.js → pi-edit-execution-B0XWbH3p.js} +1 -1
- package/dist/ui/assets/{provider-BCi9Lt4r.js → provider-4BqK8h8t.js} +2 -2
- package/dist/ui/assets/{provider-aSGF7d4k.js → provider-Gtx-2orx.js} +1 -1
- package/dist/ui/assets/{provider-settings-DBgiE3eI.js → provider-settings-B2HSZ6UC.js} +1 -1
- package/dist/ui/assets/provider-store-access-CJrByCQ0.js +1 -0
- package/dist/ui/assets/provider-store-access-CPxk2ukt.js +1 -0
- package/dist/ui/assets/{providers-CGp8gI0u.js → providers-lT9U0wKT.js} +2 -2
- package/dist/ui/assets/{providers-CuHIzVOH.js → providers-tQghw6Hy.js} +1 -1
- package/dist/ui/assets/{py-live-vfs-CUJmBBlI.js → py-live-vfs-DPS322qc.js} +1 -1
- package/dist/ui/assets/{py-live-vfs-9-2YNjh0.js → py-live-vfs-DpjNVlus.js} +2 -2
- package/dist/ui/assets/{py-realm-worker-DtGB9J_v.js → py-realm-worker-X3kfo5jQ.js} +8 -4
- package/dist/ui/assets/{pyodide-D9Uqa092.js → pyodide-BU9HqIRG.js} +2 -2
- package/dist/ui/assets/{quick-llm-DoBxND6k.js → quick-llm-xn_hOyS_.js} +1 -1
- package/dist/ui/assets/{realm-inprocess-CtMTK-aN.js → realm-inprocess-Cd7_m1mp.js} +2 -2
- package/dist/ui/assets/{realm-unhandled-rejections-Dqt1Gk_j.js → realm-unhandled-rejections-BlRuT9gQ.js} +1 -1
- package/dist/ui/assets/{realm-unhandled-rejections-mGOVnR3q.js → realm-unhandled-rejections-Ds0Sssm8.js} +1 -1
- package/dist/ui/assets/{recovery-screen-B5zo1B0l.js → recovery-screen-C8p1uo0M.js} +1 -1
- package/dist/ui/assets/{remote-terminal-view-DDLUNW_y.js → remote-terminal-view-Bmwf35Hv.js} +2 -2
- package/dist/ui/assets/{require-guards-e8NvgvH_.js → require-guards-Dfl5uogi.js} +12 -8
- package/dist/ui/assets/{restore-Dd8d_Hgn.js → restore-BE3qQx_L.js} +1 -1
- package/dist/ui/assets/{run-6f72KPaA.js → run-BiO-c5cK.js} +1 -1
- package/dist/ui/assets/{run-DSsM13ob.js → run-Bzomg47J.js} +1 -1
- package/dist/ui/assets/{run-DFA1g9kE.js → run-CPI0VmMg.js} +2 -2
- package/dist/ui/assets/{run-pvy0ymSy.js → run-DsatZd51.js} +1 -1
- package/dist/ui/assets/{run-BtSi8XBr.js → run-aWoJAjDT.js} +1 -1
- package/dist/ui/assets/{run-TkhZNuOx.js → run-un5ce3Er.js} +2 -2
- package/dist/ui/assets/{session-command-memory-Bl7bZtJm.js → session-command-memory-Bs6TCpO1.js} +2 -2
- package/dist/ui/assets/{session-jsonl-Bv4dRBT4.js → session-jsonl-BrzkbwPX.js} +1 -1
- package/dist/ui/assets/{session-jsonl-DrVVeoTe.js → session-jsonl-D1qT3XJI.js} +1 -1
- package/dist/ui/assets/{session-search-index-DGDHOAzl.js → session-search-index-D9r5ROW4.js} +1 -1
- package/dist/ui/assets/{setup-feature-flags-remote-CIhV4D0j.js → setup-feature-flags-remote-D6f9gLPu.js} +1 -1
- package/dist/ui/assets/{setup-model-catalog-BVDWM2AV.js → setup-model-catalog-qNc1g8HU.js} +1 -1
- package/dist/ui/assets/{signed-fetch-CI9UIEV3.js → signed-fetch-BL63SPtW.js} +1 -1
- package/dist/ui/assets/{silent-renew-backoff-BcsYBz66.js → silent-renew-backoff-6o3zCNBS.js} +1 -1
- package/dist/ui/assets/slicc-version-D7WI1coQ.js +1 -0
- package/dist/ui/assets/{snapshot-CuamLfhh.js → snapshot-CnUCu8-s.js} +1 -1
- package/dist/ui/assets/{snapshot-features-C5OANvrP.js → snapshot-features-_nJOvLjY.js} +1 -1
- package/dist/ui/assets/{soundscape-BwoAG-sm.js → soundscape-Dve6Vjgz.js} +1 -1
- package/dist/ui/assets/{speak-DwgV2tTT.js → speak-Du8t9A1A.js} +1 -1
- package/dist/ui/assets/{sprinkle-manager-DNJheHds.js → sprinkle-manager-CIAAQ1R4.js} +1 -1
- package/dist/ui/assets/{sprinkle-renderer-CumxYPMj.js → sprinkle-renderer-CNvVPPgY.js} +1 -1
- package/dist/ui/assets/{state-D_VYopGz.js → state-DCiVoFKs.js} +1 -1
- package/dist/ui/assets/{store-Dr9vzNP5.js → store-D6FTpAlM.js} +1 -1
- package/dist/ui/assets/{store-DJqDctgs.js → store-DPl5FT6r.js} +1 -1
- package/dist/ui/assets/{sudo-BlL3sTXW.js → sudo-DdokBcgA.js} +1 -1
- package/dist/ui/assets/{supervisor-smOiGe-0.js → supervisor-CRC_SVGW.js} +1 -1
- package/dist/ui/assets/{sync-dialog-Dyg2UAEo.js → sync-dialog-CVsFOpVh.js} +1 -1
- package/dist/ui/assets/tar-BWIPCxI2.js +3 -0
- package/dist/ui/assets/{transformers-env-UAM9w3LM.js → transformers-env-C-TUnkp9.js} +1 -1
- package/dist/ui/assets/{tray-leader-DK60MjaP.js → tray-leader-CU5W0mI3.js} +1 -1
- package/dist/ui/assets/{tray-leave-runtime-xgABwff8.js → tray-leave-runtime-Ho8OMg3d.js} +1 -1
- package/dist/ui/assets/{tray-sidecar-BASB7cHq.js → tray-sidecar-4l5R4Z4P.js} +1 -1
- package/dist/ui/assets/{upgrade-detection-CcWsY0kz.js → upgrade-detection-CB7zlH3V.js} +1 -1
- package/dist/ui/assets/{upskill-lick-skip-BXEN7tuy.js → upskill-lick-skip-BvVRuWfP.js} +1 -1
- package/dist/ui/assets/{voice-reply-DiXcXbUh.js → voice-reply-DGSEmzKT.js} +1 -1
- package/dist/ui/assets/{wc-attach-CY3wKM4q.js → wc-attach-Dorkix8d.js} +2 -2
- package/dist/ui/assets/{wc-browser-DE6aJENW.js → wc-browser-OHGeKWIV.js} +1 -1
- package/dist/ui/assets/{wc-computers-C9GCAa4H.js → wc-computers-Gc4S0P0a.js} +1 -1
- package/dist/ui/assets/{wc-detached-5v5K5mcQ.js → wc-detached-BPqWS4cj.js} +1 -1
- package/dist/ui/assets/{wc-extension-D52mizb7.js → wc-extension-_tgP0c5C.js} +2 -2
- package/dist/ui/assets/{wc-follower-CJOYr6g8.js → wc-follower-DLm9lvsL.js} +3 -3
- package/dist/ui/assets/wc-follower-oauth-BdoH7-9-.js +5 -0
- package/dist/ui/assets/{wc-gelatiere-B2Bep1GD.js → wc-gelatiere-D_gU-0JW.js} +1 -1
- package/dist/ui/assets/{wc-live-CvDfoeZP.js → wc-live-br8oap-x.js} +5 -5
- package/dist/ui/assets/{wc-nav-TcvaUUjk.js → wc-nav-DCdD3RfS.js} +2 -2
- package/dist/ui/assets/{wc-onboarding-CFQJPD-H.js → wc-onboarding-ocCbQqUQ.js} +2 -2
- package/dist/ui/assets/{wc-permissions-BN0L49tc.js → wc-permissions-BAbg0yvv.js} +2 -2
- package/dist/ui/assets/{wc-placeholder-C_2WDAIS.js → wc-placeholder-CEfevbe0.js} +3 -3
- package/dist/ui/assets/{wc-secret-request-Dg-LzTLD.js → wc-secret-request-CjUxVZm5.js} +1 -1
- package/dist/ui/assets/{wc-settings-qv3-GQuG.js → wc-settings-6wjMzUyd.js} +3 -3
- package/dist/ui/assets/{wc-shell-B2rVnxeB.js → wc-shell-CIPhRRVY.js} +3 -3
- package/dist/ui/assets/{wc-shortcut-config-DxXBHdKj.js → wc-shortcut-config-DIr76mFi.js} +1 -1
- package/dist/ui/assets/{wc-sprinkles-RfofsinU.js → wc-sprinkles-giZ0D99q.js} +2 -2
- package/dist/ui/assets/{wc-transcript-export-DE4ckv6H.js → wc-transcript-export-Dh5AQepB.js} +2 -2
- package/dist/ui/assets/{wc-tray-CBNoNpOV.js → wc-tray-CZPsjsma.js} +4 -4
- package/dist/ui/assets/welcome-detection-DUe6lZNn.js +1 -0
- package/dist/ui/assets/{whisper-session-Cl4_UhwI.js → whisper-session-TyK8WLxI.js} +2 -2
- package/dist/ui/assets/{xai-grok-DV6fnUIH.js → xai-grok-BkbUWoxo.js} +1 -1
- package/dist/ui/assets/{xai-grok-CQ-_7nZn.js → xai-grok-NkOyj9Tl.js} +1 -1
- package/dist/ui/index.html +3 -3
- package/dist/ui/packages/webapp/index.html +3 -3
- package/package.json +2 -2
- package/dist/ui/assets/__vite-browser-external-CnFJWAkm.js +0 -1
- package/dist/ui/assets/installer-08nILdgJ.js +0 -4
- package/dist/ui/assets/provider-store-access-B-R3ftEl.js +0 -1
- package/dist/ui/assets/provider-store-access-DWKXxpFB.js +0 -1
- package/dist/ui/assets/slicc-version-BUehjIK3.js +0 -1
- package/dist/ui/assets/wc-follower-oauth-B-6WQQBu.js +0 -5
- package/dist/ui/assets/welcome-detection-SGZmx8Ya.js +0 -1
|
@@ -170,6 +170,28 @@ export function resolveChromeLaunchProfile(options) {
|
|
|
170
170
|
: null,
|
|
171
171
|
};
|
|
172
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Features disabled on every Slicc-launched Chrome. Hosted leaders add
|
|
175
|
+
* `WebRtcHideLocalIpsWithMdns` so host candidates are literal addresses.
|
|
176
|
+
* Chromium honours a single `--disable-features` value (Chrome 154 still
|
|
177
|
+
* ships the feature under that name).
|
|
178
|
+
*/
|
|
179
|
+
const CHROME_DISABLE_FEATURES = [
|
|
180
|
+
'LocalNetworkAccessChecks',
|
|
181
|
+
'LocalNetworkAccessChecksWebSockets',
|
|
182
|
+
'IntensiveWakeUpThrottling',
|
|
183
|
+
'HighEfficiencyModeAvailable',
|
|
184
|
+
'InfiniteTabsFreezing',
|
|
185
|
+
'InfiniteTabsFreezingOnMemoryPressure',
|
|
186
|
+
'CPUMeasurementInFreezingPolicy',
|
|
187
|
+
'MemoryMeasurementInFreezingPolicy',
|
|
188
|
+
'AllowDevtoolsConnectedDiscard',
|
|
189
|
+
];
|
|
190
|
+
const HOSTED_DISABLE_FEATURES = [...CHROME_DISABLE_FEATURES, 'WebRtcHideLocalIpsWithMdns'];
|
|
191
|
+
function chromeDisableFeaturesArg(hosted) {
|
|
192
|
+
const features = hosted ? HOSTED_DISABLE_FEATURES : CHROME_DISABLE_FEATURES;
|
|
193
|
+
return `--disable-features=${features.join(',')}`;
|
|
194
|
+
}
|
|
173
195
|
export function buildChromeLaunchArgs(options) {
|
|
174
196
|
const args = [
|
|
175
197
|
`--remote-debugging-port=${options.cdpPort}`,
|
|
@@ -218,7 +240,9 @@ export function buildChromeLaunchArgs(options) {
|
|
|
218
240
|
// trips it on a ~30 min cadence), and AllowDevtoolsConnectedDiscard
|
|
219
241
|
// removed the DevTools-attached exemption the leader used to enjoy.
|
|
220
242
|
// Belt: seedChromeProfilePreferences() writes the matching prefs.
|
|
221
|
-
|
|
243
|
+
// Hosted mode appends WebRtcHideLocalIpsWithMdns; keep that off this list
|
|
244
|
+
// so desktop, extension, and Electron still hide local IPs.
|
|
245
|
+
chromeDisableFeaturesArg(false),
|
|
222
246
|
'--disable-background-timer-throttling',
|
|
223
247
|
'--disable-backgrounding-occluded-windows',
|
|
224
248
|
'--disable-renderer-backgrounding',
|
|
@@ -240,8 +264,17 @@ export function buildChromeLaunchArgs(options) {
|
|
|
240
264
|
args.push(`--load-extension=${options.profile.extensionPath}`);
|
|
241
265
|
}
|
|
242
266
|
if (options.hosted) {
|
|
267
|
+
// One --disable-features switch: Chromium keeps a single value, so the
|
|
268
|
+
// hosted addition replaces the base flag rather than stacking a second.
|
|
269
|
+
const base = args.findIndex((arg) => arg.startsWith('--disable-features='));
|
|
270
|
+
if (base >= 0)
|
|
271
|
+
args[base] = chromeDisableFeaturesArg(true);
|
|
243
272
|
// Local Network Access is disabled unconditionally in the base args above
|
|
244
273
|
// (every float dials the local bridge); these are the container-only flags.
|
|
274
|
+
// A hosted leader is headless Chrome on a machine the CLI shares, so its
|
|
275
|
+
// private address is not a secret worth hiding behind mDNS. A literal host
|
|
276
|
+
// candidate lets pion connect directly. The relay fallback is what dies
|
|
277
|
+
// when TURN rejects CreatePermission.
|
|
245
278
|
args.push('--headless=new', '--no-sandbox', '--disable-dev-shm-usage', '--disable-gpu', '--font-render-hinting=none');
|
|
246
279
|
}
|
|
247
280
|
args.push(options.launchUrl);
|
|
@@ -473,6 +473,11 @@ async function launchChromeTarget(state) {
|
|
|
473
473
|
hosted: RUNTIME_FLAGS.hosted,
|
|
474
474
|
mockKeychain: process.env.SLICC_CHROME_MOCK_KEYCHAIN === '1',
|
|
475
475
|
});
|
|
476
|
+
if (RUNTIME_FLAGS.hosted) {
|
|
477
|
+
// Chrome rewrites /proc/cmdline after startup, so this line is the record
|
|
478
|
+
// that the hosted leader asked for literal host addresses.
|
|
479
|
+
console.log('[hosted] WebRTC host candidates are literal addresses (mDNS hiding disabled)');
|
|
480
|
+
}
|
|
476
481
|
// Chrome never clears DevToolsActivePort on shutdown, so a stale file from a
|
|
477
482
|
// prior crash/SIGKILL would let our active-port poller win the race with the
|
|
478
483
|
// wrong port. Clear it before spawn.
|