Xuz
|
4badde667f
|
SFTP 双栏对标 WinSCP:两行工具栏、WinSCP 列、多选、右键菜单、文件操作与下载
|
2026-09-25 01:54:32 +08:00 |
|
Xuz
|
1af8d0df97
|
新建、编辑会话增加测试连接功能
|
2026-09-24 20:55:38 +08:00 |
|
Xuz
|
47b2efdcc7
|
调整会话树展示并持久化分组展开状态
|
2026-09-24 18:55:37 +08:00 |
|
Xuz
|
b78aa7f937
|
实现会话树拖动排序并调整选中与连接交互
|
2026-09-24 18:27:47 +08:00 |
|
 XuzandClaude Opus 5
|
321a65d842
|
探测主机操作系统并用它标记会话列表
每次连接成功后探测一次远端系统,会话树前面的图标换成对应的发行版
logo;没探测过或探测失败就画会话名的第一个字。
- 探测走一条独立的 exec 通道,跑 `uname -s; cat /etc/os-release`,
在主 IO 循环里和 shell 输出一起轮询,终端不会为此多等一个往返。
POSIX 那条毫无输出时(Windows 的 shell 就是这样)再问一次
`cmd /c ver`,仍认不出就放弃,会话保留原来的标记。
- 认 14 个发行版加通用 Linux、macOS、Windows 和三个 BSD。派生发行版
靠 ID_LIKE 兜底,Linux Mint 因此显示 Ubuntu。
- 结果沿 TerminalTransportEvent::HostOsDetected → 引擎 → TerminalView
→ TerminalPanel → 工作区 → SessionStore::set_host_os 这条链走,和
prompt 是同一套管线。os 列由 set_host_os 单独写,update_session 不
碰它,和 last_connected_at 一样。
- 图标是 assets/icons/os/ 下 20 个单色 SVG,取自 Simple Icons(CC0);
Windows 那个是自己画的四格,Simple Icons 已把微软图标下架。
- 加一步 V3 迁移补 os 列,这样已有的本地库不用删。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018Ub6VpmWWAJB15MnYLT9G5
|
2026-09-12 12:36:20 +08:00 |
|
Xuz
|
05e05709f0
|
实现真实 SSH 客户端并支持多连接
|
2026-09-12 09:27:14 +08:00 |
|
 since2006andClaude Opus 5
|
6bec390ecd
|
用 SQLite 持久化会话与分组
会话和分组不再只活在进程里。`SessionStore` 带 `Context` 的 mutator 现在
「改内存 → 写库 → notify」,落到 `~/Library/Application Support/shellr/
shellr.db`(`SHELLR_DATA_DIR` 可覆盖目录)。内存仍是唯一事实来源:写库
失败只丢持久化、不丢用户的编辑,store 发 `PersistFailed`,工作区据此弹
错误通知,绝不静默吞掉。
分组从只读的种子数据变成真正的配置项:任意层级嵌套,可新建 / 重命名 /
改上级 / 删除,删除按外键 `ON DELETE CASCADE` 连同子分组和里面的会话一起
带走,确认框写明数量。会话因此可以不属于任何分组,渲染在树的根层级——
首次启动是空库,第一个会话必须能在还没有任何分组时建出来。
- rusqlite 0.40(bundled):同步写、WAL、外键、`PRAGMA user_version` 迁移
- `app/paths.rs` 解析数据目录;`dirs` 6 已在依赖树里,不增加编译量
- `Workspace::new` 改为外部注入 store:`main.rs` 从库加载,测试注入 seed
- `ConnectionState` 不入库;`last_connected_at` 入库,最近连接跨启动保留
- 新增 5 个 UI 测试,其中一个走真实写路径后用第二个连接读回同一个文件
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JcMDBhETbHS7rEucBMAVvv
|
2026-09-11 22:32:10 +08:00 |
|