PixShell v0.1.5
Release date: 2026-08-01
Repository: lyu0805/pixshell
中文
概述
PixShell v0.1.5 引入 FIDO2 硬件安全密钥(双端)与内置编辑器 LSP 智能提示(双端)两大功能,并完成新建连接表单、监控侧栏、滚动条等一批 macOS UI 打磨;Windows 端补上连接失败防火墙诊断(Win11 目标机默认拦截 22 端口入站的常见场景,现在会直接提示放行命令),安装包自动补装 WebView2 Runtime。
主要更新
1. FIDO2 硬件安全密钥(macOS + Windows)
- macOS:检测 sk-* 密钥(
sk-ssh-ed25519@openssh.com/sk-ecdsa-sha2-nistp256@openssh.com)自动走系统 OpenSSH,SecurityKeyProvider接入 Touch ID / 安全密钥触摸提示;引擎自动回落机制复用 - Windows:SSH.NET 无 sk 算法支持 → 检测到 FIDO2 密钥时整个会话自动转系统 OpenSSH 客户端(
C:\Windows\System32\OpenSSH\ssh.exe),Windows Hello PIN / 触摸弹窗原生呈现;一次性命令(系统信息/监控)同样支持 - 兼容 Win10 22H2+ / Win11(系统自带 OpenSSH 9.x)
- 已知限制:FIDO2 会话的 SFTP/SCP 面板暂不可用(SSH.NET 无 sk 支持,可用 scp/sftp 命令或换普通凭据);Windows
-tt无 pty 尺寸同步(固定 80×24,ConPTY 尺寸同步列为后续增强)
2. 内置编辑器 LSP(macOS + Windows)
- rust-analyzer 完整支持:诊断(错误/警告实时下划线 + 悬停详情)、悬停提示、代码补全(↑↓ 选择 / 回车插入 / Esc 关闭)、定义跳转——双端一致
- 快捷键:macOS ⌃Space 补全 / ⌘Space 悬停 / ⌘⇧G 跳转;Windows Ctrl+Space 补全 / Ctrl+Shift+H 悬停 / Ctrl+Shift+G 跳转;右键菜单同样提供
- 可靠性加固:-32801 ContentModified 自动重试(新 id 最多 3 次)、10s 请求超时、查询前 flush 未决变更、收发失败日志
- rust-analyzer 缺失时优雅降级:编辑器照常工作,仅无智能提示
3. 连接失败诊断(Windows,用户反馈)
- 防火墙提示:连接被拒绝/超时(Socket 层失败,排除认证失败)→ 状态栏直接给出 Win11 放行命令(
New-NetFirewallRule ... -LocalPort 22),不再让用户猜"权限/证书" - OpenSSH 路径真实报错可见:FIDO2/OpenSSH 会话连接失败时 ssh.exe 的 stderr(
Bad owner or permissions/ host key 变更 / Connection refused)以红色推到终端,含 refused/timed out 同样附放行指引
4. 新建连接表单修复(macOS)
- 类型切换布局修复:SSH ⇄ Web 切换不再重叠/留空隙(NSGridRow 折叠 + accessory 高度恒定)
- 输入框粘贴修复:模态表单内 ⌘V / ⌘X / ⌘A / ⌘Z 可用(拦截转发 field editor)
- 表单跳动修复:accessory 固定宽 420 + 居中,SSH/Web 切换时标签与输入框不再左右跳动
5. UI 打磨(macOS)
- 滚动条白条根治:彻底消除侧栏/面板 legacy 滚动条轨道白条,统一 overlay scroller(侧栏、表格、窗口三处系列修复)
- 监控侧栏细化:进程 TOP / 磁盘行背景铺满(不再裁切)、表头列宽加大、系统信息按钮居中、Sparkline 柱状图坐标修复(从底部升起)+ 密集柱状图风格
6. 其他
- WebView2 自动安装(Windows 安装包):检测到缺 WebView2 Runtime 时静默安装 Evergreen bootstrapper,解决终端白屏(Issue #9)
- CLI/MCP 桥自动拉起(双端):桥不通时 CLI 调用自动后台拉起 App 并等待就绪,无头调用不再报"桥未启动"
- 版本号升至 0.1.5(双端应用、更新检查、安装包、文档同步)
English
Overview
PixShell v0.1.5 introduces FIDO2 hardware security key support (macOS + Windows) and built-in editor LSP intelligence (both platforms), plus a round of macOS UI polish across the new-connection form, monitor sidebar and scrollbars; Windows gains connection-failure firewall diagnostics (Win11 targets commonly block inbound 22 — the app now shows the exact allow command), and the installer auto-installs WebView2 Runtime when missing.
Highlights
1. FIDO2 hardware security keys (macOS + Windows)
- macOS: sk-* keys (
sk-ssh-ed25519@openssh.com/sk-ecdsa-sha2-nistp256@openssh.com) are detected and routed to system OpenSSH withSecurityKeyProviderwired to Touch ID / security-key touch prompts; existing engine fallback reused - Windows: SSH.NET has no sk algorithm support → FIDO2 sessions automatically route through the system OpenSSH client (
C:\Windows\System32\OpenSSH\ssh.exe) with native Windows Hello PIN/touch prompts; one-shot exec (system info/monitoring) supported too - Requires Win10 22H2+ / Win11 (bundled OpenSSH 9.x)
- Known limits: SFTP/SCP panel unavailable on FIDO2 sessions (SSH.NET has no sk support — use scp/sftp commands or regular credentials); Windows
-tthas no pty size sync (fixed 80×24; ConPTY size sync planned)
2. Built-in editor LSP (macOS + Windows)
- Full rust-analyzer support: diagnostics (live error/warning underlines with hover details), hover, code completion (↑↓ to select / Enter to insert / Esc to close), go-to-definition — consistent across platforms
- Shortcuts: macOS ⌃Space completion / ⌘Space hover / ⌘⇧G go-to; Windows Ctrl+Space completion / Ctrl+Shift+H hover / Ctrl+Shift+G go-to; context menus too
- Hardening: -32801 ContentModified auto-retry (new id, up to 3x), 10s request timeout, pending-change flush before queries, send/receive failure logs
- Graceful degradation when rust-analyzer is missing: editor works, just no intelligence
3. Connection-failure diagnostics (Windows, user-reported)
- Firewall hint: socket-level refusal/timeout (excluding auth failures) → status bar shows the Win11 allow command (
New-NetFirewallRule ... -LocalPort 22) instead of leaving users guessing "permissions/certificates" - OpenSSH errors surfaced: on failed FIDO2/OpenSSH connects, ssh.exe's stderr (
Bad owner or permissions, host-key mismatch, connection refused) is pushed to the terminal in red, with the same firewall hint on refused/timeout
4. New-connection form fixes (macOS)
- Type-switch layout: SSH ⇄ Web switching no longer overlaps or gaps (NSGridRow collapse + fixed accessory height)
- Paste shortcuts: ⌘V/⌘X/⌘A/⌘Z work inside modal forms (intercepted and forwarded to the field editor)
- Form jumping fixed: accessory pinned to fixed 420px width and centered — labels/inputs no longer jump left-right on type switch
5. UI polish (macOS)
- Scrollbar white-strip root fix: legacy scroller track white strips eliminated across sidebar/panels, unified overlay scroller (series of fixes for sidebar, tables, and windows)
- Monitor sidebar refinement: process TOP / disk row backgrounds now stretch full-width (no clipping), wider table headers, centered System Info button, Sparkline bar-mode coordinate fix (bars rise from the bottom) with dense volume-style bars
6. Other
- WebView2 auto-install (Windows installer): silently installs the Evergreen bootstrapper when the runtime is missing, fixing the blank terminal (Issue #9)
- CLI/MCP bridge auto-launch (both platforms): when the bridge is down, CLI calls automatically launch the app in the background and wait for readiness — headless calls no longer fail with "bridge not running"
- Version bumped to 0.1.5 (both apps, update check, installers, docs)