Harden WebCRT reconnect, resource use, and SFTP UX.

Reuse detached sessions on reconnect, mount only the active tab, surface backpressure drops, gate SFTP for unsupported targets, and polish attach replay, find/recording performance, and terminal i18n.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-08-01 23:50:41 +08:00
parent f6b399e03e
commit d87bdf4be1
13 changed files with 648 additions and 151 deletions

View file

@ -1040,9 +1040,26 @@ const en = {
postLoginPrompt: "Post-login commands (one per line, this device)",
postLoginSaved: "Post-login commands saved",
sftp: {
title: "SFTP",
refresh: "Refresh",
up: "Up",
upload: "Upload",
uploaded: "Upload complete",
dir: "dir",
},
term: {
findPh: "Find…",
findPrev: "Previous",
findNext: "Next",
findClose: "Close find",
copy: "Copy",
paste: "Paste",
clear: "Clear",
pasting: "Pasting {{done}}/{{total}} lines…",
wsError: "[WebSocket error]",
wsClosed: "[WebSocket closed code={{code}}]",
sessionStatus: "[session {{state}}{{detail}}]",
outputTruncated: "[output truncated: {{count}} chunk(s) dropped]",
},
err: {
deviceType: "Unsupported device type",
@ -1055,6 +1072,9 @@ const en = {
connectFailed: "Device login failed: {{detail}}",
sftpHop: "SFTP does not support hop devices yet (direct SSH only)",
sftpSsh: "SFTP requires SSH",
sftpNeedPassword: "SFTP needs a saved SSH password (one-shot dialog passwords are not reused for files)",
queueDropped: "Terminal output too fast; about {{count}} chunk(s) dropped — transcript may be incomplete",
websocket: "WebSocket connection failed",
},
},
topology: {