Overlay bundled Fig description strings when the UI locale is zh-CN.
Cached specs stay in English, and missing entries fall back to the original text.
Co-authored-by: 陈大猫 <binaricat@users.noreply.github.com>
An open compose bar no longer hides the disconnected Enter-reconnect hint
or blocks the terminal and dialog paths. An empty compose draft reconnects
the same way; a non-empty draft still sends.
Fixes#3767
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: 陈大猫 <binaricat@users.noreply.github.com>
Typed request compression ran before every Catty request (routine pre-turn and every step) and replaced image/file parts with a text placeholder, so attached images never reached the model.
preserveAttachments now keeps image attachments on the routine pre-turn and step paths. Non-image files stay placeholders (chat providers reject e.g. text/plain; the model reads them via list_attachments/read_attachment). The explicit 413 retry still trades attachments for placeholders.
Verified in the real Electron app: image reaches the provider as image_url (fake OpenAI-compatible server and DeepSeek deepseek-flash, which described the test image correctly); text-file turns still succeed via attachment tools; request prefix stability across turns unchanged vs main (DeepSeek cache hits ~98% on follow-up turns).
Fixes#3764
Co-authored-by: yangfan <1413737839@qq.com>
* fix: dial SFTP separately on network-device SSH sessions
Huawei and Ruijie switches drop the shell when SFTP opens on the terminal TCP session. Use the existing dedicated login for network-device mode and network-vendor banners without marking those hosts single-channel bastions.
Fixes#3631
Co-authored-by: 陈大猫 <binaricat@users.noreply.github.com>
* fix: block follow-cwd probes on dedicated SFTP logins
Network-device mode and vendor SSH banners already dial SFTP separately,
but follow-terminal-cwd still opened an exec channel on the terminal
transport. Gate that probe with the same dedicated-login decision.
Co-authored-by: 陈大猫 <binaricat@users.noreply.github.com>
* fix: skip terminal pwd exec for network-vendor banners when opening SFTP
Co-authored-by: 陈大猫 <binaricat@users.noreply.github.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: 陈大猫 <binaricat@users.noreply.github.com>
Fixes#3588
Regular follow waits for a trusted live cwd instead of racing the post-command null gap; include connectionPath in follow effect deps so aborted navigates can resync.
Codex clean on 239bda3; CI green; smoke PASS (follow on/off, first open, go-to).
Fixes#3757
preventDefault on mousedown for Minimize/Maximize so the xterm textarea keeps focus after minimize/restore. Close left unchanged so inline rename can still blur/commit.
Bun-compiled OpenCode-family CLIs answer --version slowly: measured
'mimo --version' at 3.9-5.1s warm (6s+ cold) and 'opencode --version'
at 6s cold on Windows. The 5s probe timeout killed these healthy CLIs
mid-probe, so agent discovery dropped them (exitCode null ->
not plausible) and the settings card showed them as unavailable. Raise
the version-probe timeout to 15s; a missing command still fails spawn
immediately, so only existing-but-slow CLIs pay the extra wait.
* ci: hide only risky download links in issue comments
Stop deleting comments that merely mention an archive or executable
name. Match http(s) URLs whose path contains a risky extension, skip
the issue author as well as maintainers and bots, and minimize matches
as spam instead of deleting them.
Co-authored-by: 陈大猫 <binaricat@users.noreply.github.com>
* ci: relay edited issue comments with truncated bodies
Forward issue_comment edited events and include comment identity,
association, timestamps, and bodies clipped to 4000 characters.
Co-authored-by: 陈大猫 <binaricat@users.noreply.github.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: 陈大猫 <binaricat@users.noreply.github.com>
The v1.1.84 working-directory query exceeds Dropbear's 9000-byte request limit, causing an authenticated OpenWrt terminal and its entire SSH transport to close with `String too long`.
Remove explanatory comment lines before quoting the static probe. Preserve all directory discovery and lsof validation behavior. Cover request size with known and unknown shell PIDs, and run the lsof compatibility fixtures for both server identities.
Verified on real OpenWrt 24.10.5 / Dropbear 2024.86, including the exact 9000/9001-byte boundary, old-release comparison, full macOS Electron connection, terminal commands, and SFTP follow-directory. Full CI: 14036 passed, 47 skipped, zero failures. Two independent local reviewers and the current-head remote reviewer are clean.
Fixes#3731
* refactor(snippets): combine creation actions in a dropdown
* fix(snippets): support keyboard navigation in creation menu
* fix(snippets): retain focus when choosing a creation action
Keep renderer-only libraries available as development dependencies so Vite
bundles their runtime code without shipping their dependency trees again.
Exclude native compilation helpers from packaged resources, and prune
node-pty/serialport prebuilds for other platforms and architectures while
preserving matching universal binaries and rebuilt runtime files.
Validation:
- npm run lint; 33 packaging tests pass.
- npm run pack:dir, real packaged application UI, and 29 packaged runtime
smoke checks pass (SDK imports, PTY, serial port listing, SQLite query).
- All 999 UI files retain their code/content; differences are generated
asset references and the embedded dependency classification metadata.
- Dependency versions are unchanged.
- macOS arm64 app: 394,959,135 -> 360,740,625 bytes.
- macOS arm64 ZIP: 150,847,369 -> 143,151,622 bytes; ZIP integrity passes.
- Full suite: 14,035 pass, 36 skipped, 5 fail. The four FIDO helper failures
and transfer FileHandle-GC failure reproduce on unchanged main with Node 26.
Deliver PTY job interrupts as terminal data instead of sending SSH signal channel requests. This addresses the background-cancellation log noise reported in #3577 while preserving the existing cancellation retries and result semantics.
Add regression coverage asserting cancellation writes ETX without invoking the stream signal method.