Repository navigation
JShell v1.0.0
JShell v1.0.0
JShell 首个正式版本。自 v0.1.0-beta 系列以来,SSH 主机密钥安全、代理体系、SFTP 稳定性、远程编辑器韧性、配置同步、系统托盘与发布工程逐步完善,本版本正式发布。
本次更新
- 系统托盘与后台运行:关闭窗口转为后台驻留,托盘菜单可显示窗口或退出;设置中可开关。
- 单实例锁:重复启动时通知已运行实例并立即退出,避免多实例冲突;跨用户隔离。
- 信号优雅退出:SIGTERM/SIGINT 走完整退出流程(含未保存文档提示与配置落盘);二次信号可强制终止。
- 测试与质量体系:新增 30 余项自动化测试(目录归档解包穿越回归、远程命令引用对抗用例、
~/.ssh/config解析边界、日志高亮规则、中英文键对齐),测试总数达 400 项;新增.cargo/audit.toml依赖审计豁免配置,CI 质量门禁恢复绿灯;提供scripts/verify.sh(本地一键验证)与scripts/smoke-linux.sh(托盘/单实例/信号冒烟)。 - 安全加固:日志目录权限收紧为仅属主可读写;归档解包路径穿越防护以回归测试锁定;远程路径引用无法逃逸单引号上下文。
- 修复:英文界面缺失「确认」按钮文案;
~/.ssh/config支持 tab 分隔与端口 0 回退。 - 新增
docs/TEST_PLAN.md(六类测试计划:功能、性能、兼容性、安全、回归、易用性)与docs/RELEASE_READINESS.md(发布就绪清单与后续优化方向)。
连接与安全
- SSH 与 SFTP 采用
accept-new语义:自动接受无历史记录的新主机密钥,绝不覆盖、删除或追加与现有记录冲突的密钥;@revoked、否定主机模式与损坏文件一律失败关闭。 - 代理支持无代理/直连/继承/自定义四级策略,协议覆盖 SOCKS5、SOCKS5H、HTTP 与经证书校验的 HTTPS CONNECT。
- 配置同步(WebDAV/S3/Cloudflare R2)载荷客户端加密,可移植载荷经白名单校验,不包含本机敏感字段。
- 依赖审计 0 漏洞;Linux 托盘依赖链的 10 条「不再维护」告警已按编号豁免并记录原因(详见
.cargo/audit.toml)。
已知限制
- Linux 托盘左键不响应(appindicator 上游限制),请使用托盘菜单显示/隐藏窗口;Windows/macOS 左键为恢复窗口。
- GNOME Wayland 下最小化为合成器请求,可能被忽略;应用仍安全驻留后台。
- 首次连接不弹出主机指纹确认窗口,高安全环境请通过独立渠道核验服务器指纹。
- Windows/macOS 发布包暂为未签名/临时签名状态,首次运行可能触发系统安全提示。
- 系统关机/注销时 Windows 尚未处理 WM_ENDSESSION,请先手动退出以保存布局(详见发布审计)。
升级与故障处理
从任意 beta 版本升级无需迁移配置。旧版 ashell 配置目录在首次启动时自动迁移。若遇到主机密钥变更,请核验新指纹后运行 ssh-keygen -R <host> 清理记录并重新连接。