fix(cookbook): preserve same-host ssh profile selection (#3373)

* fix(cookbook): preserve same-host ssh profile selection

* fix(cookbook): resolve same-host ssh profiles in running tab and port lookups
This commit is contained in:
Ocean Bennett
2026-06-08 18:36:10 -04:00
committed by GitHub
parent 85c6056c87
commit 62ffcb6236
6 changed files with 185 additions and 59 deletions
+12 -4
View File
@@ -255,6 +255,8 @@ let _savePresets;
let _copyText;
let _persistEnvState;
let _refreshDependencies;
let _serverByVal;
let _selectedServer;
let modelLogo;
let esc;
let _detectBackend;
@@ -1263,7 +1265,8 @@ async function _openServeEditForTask(task, cmdOverride, fieldOverrides = null) {
// Switch the active server to the one this serve ran on (mirrors _openEdit).
const _tHost = task.remoteHost || '';
_envState.remoteHost = _tHost;
const _tSrv = _envState.servers.find(s => s.host === _tHost);
const _tSrv = _serverByVal(_envState.remoteServerKey || _tHost)
|| _envState.servers.find(s => s.host === _tHost);
if (_tSrv) { _envState.env = _tSrv.env || 'none'; _envState.envPath = _tSrv.envPath || ''; _envState.platform = _tSrv.platform || ''; }
else if (!_tHost) { _envState.env = 'none'; _envState.envPath = ''; _envState.platform = ''; }
document.querySelectorAll('#hwfit-server-select, #hwfit-dl-server, #hwfit-cache-server, #hwfit-deps-server').forEach(sel => {
@@ -1473,7 +1476,8 @@ export async function _launchServeTask(shortName, repo, cmd, fields, hostOverrid
// up that server's port/platform from the shared servers list. Only fall back
// to _envState.remoteHost for legacy callers (diagnosis/pip-update).
const _host = (hostOverride !== undefined) ? (hostOverride || '') : (_envState.remoteHost || '');
const _hsrv = _envState.servers.find(s => s.host === _host) || {};
const _hsrv = _serverByVal(_envState.remoteServerKey || _host)
|| _envState.servers.find(s => s.host === _host) || {};
const _hplatform = _host ? (_hsrv.platform || '') : (_envState.platform || '');
// Replace any serve already targeting this same host:port — you can't run two
@@ -1700,7 +1704,8 @@ export function _renderRunningTab() {
// Group tasks by server
const _serverName = (host) => {
if (!host) return 'Local';
const srv = _envState.servers.find(s => s.host === host);
const srv = _serverByVal(_envState.remoteServerKey || host)
|| _envState.servers.find(s => s.host === host);
return srv?.name || host;
};
const serverGroups = {};
@@ -1971,7 +1976,8 @@ export function _renderRunningTab() {
// Point the active server at the one it downloaded to.
const _tHost = task.remoteHost || '';
_envState.remoteHost = _tHost;
const _tSrv = _envState.servers.find(s => s.host === _tHost);
const _tSrv = _serverByVal(_envState.remoteServerKey || _tHost)
|| _envState.servers.find(s => s.host === _tHost);
if (_tSrv) { _envState.env = _tSrv.env || 'none'; _envState.envPath = _tSrv.envPath || ''; _envState.platform = _tSrv.platform || ''; }
else if (!_tHost) { _envState.env = 'none'; _envState.envPath = ''; _envState.platform = ''; }
document.querySelectorAll('#hwfit-server-select, #hwfit-dl-server, #hwfit-cache-server, #hwfit-deps-server').forEach(sel => {
@@ -3707,6 +3713,8 @@ export function initRunning(shared) {
_copyText = shared._copyText;
_persistEnvState = shared._persistEnvState;
_refreshDependencies = shared._refreshDependencies;
_serverByVal = shared._serverByVal;
_selectedServer = shared._selectedServer;
modelLogo = shared.modelLogo;
esc = shared.esc;
_detectBackend = shared._detectBackend;