每次连接成功后探测一次远端系统,会话树前面的图标换成对应的发行版 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
765 B
765 B