 XuzandClaude Opus 5.5
|
cd489a5fc2
|
设置 › 终端新增「本地终端」:指定 Shell;Windows 默认改用 PowerShell
本地终端运行的程序可以写路径或命令,带参数;输入框右端的下拉列出装了的常用 shell
(zsh、bash、sh、fish、nu、pwsh,从 /etc/shells、PATH 和 Homebrew 目录找),旁边
「选择文件…」用系统的文件选择框。留空是自动检测,新开和重新启动的本地终端生效。
只写一个 shell 时和默认一样按登录 shell 启动,带参数或不是 shell 的照写执行。
Windows 的默认 shell 原来是 cmd.exe,现在先用 PowerShell 7,其次 Windows PowerShell,
都没有才用 cmd.exe。
工作区改为每次打开、重启本地终端时向 LocalTerminalTransportProvider 要 factory,
UI 测试注入的 FixedLocalTerminalTransportProvider 记下每次要的 shell。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-11 19:44:25 +08:00 |
|
 XuzandClaude Opus 5.5
|
e1600ce05c
|
SFTP 本地目录列表在 Windows 上列出各个驱动器
Windows 上每个盘是一个独立的根,目录列表原来只有当前路径的各级和主目录、桌面、文稿、下载,
离不开起始的盘(只能在「打开目录/书签」里手动输入 D:\)。现在「位置」里按 WinSCP 的样子
列出所有盘符:「C: 本地磁盘」「E: 可移动磁盘」「Z: 网络驱动器」「F: CD 驱动器」。
盘符用 GetLogicalDrives 和 GetDriveTypeW 取,不读卷标。位置改在后台随每次读本地目录
一起重新取,所以新插上的 U 盘刷新一下就出现,也不在 UI 线程上碰网络驱动器。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-10 13:46:54 +08:00 |
|
 XuzandClaude Opus 5.5
|
e09adeefb7
|
外部 CLI 新增 exec --terminal:在已打开的终端里执行命令
只允许登录一次的堡垒机(外部连接)上,exec 重新登录会被拒绝,另开通道又会结束会话。
--terminal 把命令打进这台主机在 ShellRS 里已打开的远程终端:先发 Ctrl-C,探测出
交互 shell(bash、dash、busybox ash)后输入命令行,经 OSC 标记取回输出、退出码和
执行上下文(--json 的 context)。不做忙碌检测,只拒绝全屏程序和同一终端已有一次运行。
外部连接上普通 exec 登录失败时,说明里提示改用 --terminal。
shells.yml 在 Docker 里对 bash 4.2–5.2、dash、busybox ash 跑真实终端测试。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-08 16:16:30 +08:00 |
|
 XuzandClaude Opus 5.5
|
7b0dad9b41
|
Docker 的标签改用可横向滚动的下划线标签,与系统服务一致
均分宽度放不下英文的 "Containers 12"。不管什么语言,标签都按文字和数量的宽度排,
放不下时横向滚动。去掉只给 Docker 用的 count_tabs 和分段控件的计数。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-07 22:42:23 +08:00 |
|
 XuzandClaude Opus 5.5
|
1c855f1508
|
多语言基础设施:rust-i18n 接入,界面语言默认跟随系统
文案放进 locales/<模块>.yml,经 crate::i18n 的 t! / tn! 取用;启动时先按设置定语言,
改设置时实时切换并发出 UiLocale。守卫测试检查两种语言齐全、占位一致、没有遗漏和死键。
UI 测试夹具固定中文并隔离本线程的语言。共用件(shared/)先转换。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-07 21:24:06 +08:00 |
|
 XuzandClaude Opus 5.5
|
befdfc7b02
|
终端识别链接、支持鼠标上报和 OSC 52 远程复制
- 链接:输出里的 http / https 地址和程序用 OSC 8 标出的链接一直画成蓝色加
下划线,⌘(其他平台 Ctrl)单击用浏览器打开,悬停显示真实地址;末尾标点
和不成对的括号不算,折行的长地址算一个,其他协议不当链接。
- 鼠标上报:vim、htop、tmux 等要求鼠标时,单击、拖动和滚轮交给程序
(1000 / 1002 / 1003,默认、UTF-8、SGR 编码);按住 Shift 照旧选文字和
翻回滚,右键始终是 ShellRS 的菜单。
- OSC 52:远程程序复制的内容进本机剪贴板,只写不读,主选择区忽略。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-06 13:26:21 +08:00 |
|
 XuzandClaude Opus 5.5
|
d53bb559e6
|
SFTP 加「显示隐藏文件」开关:本地、远程各自独立,默认不显示
工具栏第一行最右边的眼睛按钮(睁眼表示正在显示,划掉的眼睛表示不显示)、
空白处右键的勾选项和 ⌘⇧. / Ctrl+Alt+H 切换所在一侧,名称以「.」开头的
文件和目录算隐藏文件。每一侧的选择对所有 SFTP 标签生效,存进设置。
不显示时面板底部写「隐藏 N 项」,选中的隐藏文件随之取消选择,新建和重命名
查重名时仍算上它们;显示时隐藏文件整行文字浅一些。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-06 11:45:18 +08:00 |
|
 XuzandClaude Opus 5.5
|
8e290562f8
|
SFTP 加图片和 Markdown 预览:双击图片预览,可缩放、原图和滚动
图片(PNG、JPG、GIF、WebP、SVG、BMP、ICO、TIFF)和 Markdown 在一个像快速查看的大对话框里预览,
Esc 关闭,远程文件可以「下载…」,Markdown 可以「编辑」。双击图片就预览;Markdown 和 SVG 是文本,
双击仍是编辑,右键另有「预览」。图片上限 20 MB,Markdown 同编辑器 5 MB。
图片默认适合窗口、居中显示;可以放大、缩小(⌘= / ⌘-,按住 ⌘ 滚动连续缩放)、看原图(⌘0)、
回到适合窗口(⌘9),双击图片在两者之间切换;比预览区大时可以滚动,缩放时中间的位置不动。
解不开的图片写明「无法显示这张图片」。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-05 22:50:02 +08:00 |
|
 XuzandClaude Opus 5.5
|
c679d9d8a0
|
SFTP 加内置编辑器:双击文件在编辑器标签里编辑,⌘S 原地写回
SFTP 里双击、回车、F4 或右键「编辑」一个文件(远程和本地都行),在中间区的「编辑器」标签里打开;
「新建 › 文件…」建好后也直接打开。同一个文件只开一个标签。先读后开:超过 5 MB、二进制或不是
UTF-8 的文件只弹说明,远程的可以改用「下载…」。
远程文件经打开它的 SFTP 标签的连接读写,不另起登录。保存是原地改写(截断后写原文件),所有者、
权限和链接都不变;保存前核对大小和修改时间,被别人改过就先问「覆盖」。BOM 和 CRLF 原样写回。
常见的约 15 种语言有语法高亮(gpui-kit 的 tree-sitter 特性;SQL 的语法库要求 cc ~1.2,所以
Cargo.lock 里 cc 退到 1.2.67)。
关闭有修改的标签问「保存 / 放弃修改 / 取消」;批量关闭、关 SFTP 标签、⌘Q(Windows / Linux 还有
窗口的关闭按钮)有未保存的文件时问一次。状态栏显示光标位置和编码、换行方式。
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-05 21:37:26 +08:00 |
|
 XuzandClaude Opus 5.5
|
2576b46e43
|
Docker:右侧栏的 Docker 工具,管理容器、卷、镜像和网络
- 容器按 compose 项目分组,可启停、重启,查看详情和日志;卷、镜像、网络可查看详情和删除
- 工具图标换成 Docker 的鲸鱼;单元测试起子进程时加锁,修好外部 CLI 测试的偶发失败
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-02 18:18:27 +08:00 |
|
 XuzandClaude Opus 5.5
|
8a0436caf6
|
系统监控:右侧栏的第一个工具,经终端自己的 SSH 连接读取 Linux 主机的 CPU、内存、网络和磁盘
- 右侧栏只跟远程终端出现,已知不是 Linux 的主机不显示监控图标,最窄 320 px
- 端口转发、凭据列表和开始页的滚动条挂到不滚动的外层上,修正滑块位置
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-02 13:34:23 +08:00 |
|
 XuzandClaude Opus 5.5
|
616bcead0f
|
终端右侧栏:窗口最右边一列工具切换,右侧 Dock 里显示所选工具,先放四个占位面板
- 窗口级的一份右侧栏,只跟着终端出现(远程终端和本地终端):SFTP、设置、开始页在前时
右侧栏连同按钮列都不显示,回到任一终端时按原样恢复,内容对应这个终端(主机或本机)
- 右侧 Dock 只有一个面板 ToolSidebar,按钮列由工作区画在 DockArea 外面;点工具显示、
再点收起,⌘⌥B / Ctrl+Alt+B 显示或隐藏;默认收起、宽 320 px,不持久化
- 占位工具:命令片段、历史命令、Docker、系统监控,写明将来显示什么和「即将推出」
- 当前标签统一经 Workspace::set_active_tab 改,它同步右侧栏的显示与指向的终端
- 右侧 Dock 不可折叠,只在关闭时临时可折叠,避免中间区标签栏多出 gpui-kit 的折叠按钮;
按钮不抢终端焦点,收起时焦点在右侧栏里就交还给中间的标签
- 新增 UI 测试;CLAUDE.md 记下产品决定、实现要点和测试标识
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
2026-10-02 11:42:31 +08:00 |
|
Xuz
|
82fcdd4296
|
SFTP 标签栏右侧显示连接延迟,和终端标签一样
- SFTP 工作线程另起一个任务测往返:新连接建好就测,之后每 5 秒一次,传输进行中也照测;
只在一次 ping 期间持有连接,客户端被换掉或断开就放手,「断开」照样立刻关掉连接
- 新事件 SftpEvent::Latency;SFTP 标签在已连接时于标签栏右侧显示,断开、重连时清掉
- Latency / LatencyLevel 从终端模块移到 connection.rs;测往返的函数提到 ssh/latency.rs,
终端和 SFTP 共用;标签栏上的延迟文字抽成 shared::LatencyLabel
- 新增协议测试(连上后很快报出实测延迟)和 SFTP 标签栏的界面测试
|
2026-10-01 15:32:24 +08:00 |
|
Xuz
|
388a1aa68a
|
UI 测试按功能拆成模块:tests/ui.rs → tests/ui/
- 仍是一个测试程序(tests/ui/main.rs,cargo test --test ui),每个文件单独成测试程序会再链接一遍 GPUI
- 按功能分 11 个模块:host_dialog、host_tree、connection、terminal、workspace、settings、
sftp、transfer、forward、credential、update
- 两个以上模块共用的夹具和假实现放进 support/:mod.rs 是公共的 use、种子 id 和通用助手,
其余按终端、SFTP、端口转发、测试连接、凭据分文件;只有一个模块用的留在那个模块里
- 纯搬移,测试逻辑不变:147 个测试名称与搬移前一致,全部通过
- CLAUDE.md 写明模块划分和新测试该放哪里,AGENTS.md、README 改路径
|
2026-10-01 14:53:33 +08:00 |
|