mirror of
https://github.com/binaricat/Netcatty.git
synced 2026-11-09 15:52:14 +00:00
* feat(ssh): opt temporary connections into network device mode Saved hosts and group-backed clones keep their own device type. SSH connections with no saved host, including external launches and quick connect, can start in network device mode when the new Terminal setting is on. The setting stays off unless the user turns it on. Co-authored-by: 陈大猫 <binaricat@users.noreply.github.com> * feat(terminal): quick connect typed addresses from the tab switcher The tab-bar quick switcher now offers the typed address when it already parses as a connection target. Choosing that row opens the existing quick connect wizard, including from a terminal tab where the vault surface is hidden. Co-authored-by: 陈大猫 <binaricat@users.noreply.github.com> * fix(ssh): keep temporary Mosh and ET off network device mode Those transports are stored as SSH plus a flag. Stamping network device mode onto them made raw-host checks skip the copy-session working directory probe. Plain temporary SSH still opts in. Co-authored-by: 陈大猫 <binaricat@users.noreply.github.com> * fix(ssh): read temporary connection settings at connect time VaultView keeps a stale onConnect callback because its memo ignores that prop. Read both temporary-connection toggles from a ref when connecting so turning them on or off applies in the same session. Co-authored-by: 陈大猫 <binaricat@users.noreply.github.com> * fix(terminal): stop word queries from opening quick connect Show the switcher quick-connect row only for address-like input, and place it after matching hosts so Enter still connects to a saved host. Translate the Hosts, Tabs, and New Workspace labels. Co-authored-by: 陈大猫 <binaricat@users.noreply.github.com> * fix(terminal): keep matching tabs ahead of quick connect An address that matches an open session or workspace was still the default Enter target when no saved host matched. Put that row after those tabs so Enter switches to the existing one. Co-authored-by: 陈大猫 <binaricat@users.noreply.github.com> --------- Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: 陈大猫 <binaricat@users.noreply.github.com>
22 lines
1.2 KiB
TypeScript
22 lines
1.2 KiB
TypeScript
import assert from "node:assert/strict";
|
|
import { readFileSync } from "node:fs";
|
|
import test from "node:test";
|
|
|
|
const source = readFileSync(new URL("./AppSideEffects.tsx", import.meta.url), "utf8");
|
|
|
|
test("handleConnectToHost reads temporary connection settings at call time", () => {
|
|
assert.match(source, /const temporaryConnectionSettingsRef = useRef\(terminalSettings\)/);
|
|
assert.match(source, /temporaryConnectionSettingsRef\.current = terminalSettings/);
|
|
|
|
const handlerStart = source.indexOf("const handleConnectToHost = useCallback");
|
|
const handlerEnd = source.indexOf("const handleConnectToHostWithTabName");
|
|
assert.ok(handlerStart >= 0 && handlerEnd > handlerStart);
|
|
const handler = source.slice(handlerStart, handlerEnd);
|
|
|
|
assert.match(handler, /temporaryConnectionSettingsRef\.current/);
|
|
assert.match(handler, /temporaryConnectionPrepareOptions\(liveTerminalSettings\)/);
|
|
assert.match(handler, /terminalSettings: liveTerminalSettings/);
|
|
assert.doesNotMatch(handler, /terminalSettings\.temporaryConnections/);
|
|
assert.doesNotMatch(handler, /\[addConnectionLog, connectToHost, resolveEffectiveHost, identities, keys, discoveredShells, terminalSettings\]/);
|
|
});
|