# FinalZero
**Repository Path**: yu_junwei/final-zero
## Basic Information
- **Project Name**: FinalZero
- **Description**: 一款面向 Windows 的现代化 SSH / SFTP / Telnet 客户端工具
- **Primary Language**: TypeScript
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-08-10
- **Last Updated**: 2026-09-17
## Categories & Tags
**Categories**: Uncategorized
**Tags**: SSH, 运维, 客户端工具
## README
# FinalZero
[简体中文](./README.md) | [English](./README_EN.md)
**一款面向 Windows 的现代化 SSH / SFTP / Telnet 客户端**
安全加密 · 多协议 · 多标签终端 · 系统监控 · 文件管理 · **AI 助手** · **云同步**
[](#版本信息)
[](#许可证)
[](#环境要求)
[](https://www.electronjs.org/)
[](https://react.dev/)
[](https://www.typescriptlang.org/)
[](#贡献指南)
---
## 目录
- [项目概述](#项目概述)
- [核心功能](#核心功能)
- [设计理念](#设计理念)
- [适用场景](#适用场景)
- [功能说明](#功能说明)
- [连接与会话管理](#1-连接与会话管理)
- [多标签终端](#2-多标签终端)
- [SFTP 文件管理](#3-sftp-文件管理)
- [命令管理器](#4-命令管理器)
- [密钥管理](#5-密钥管理)
- [系统监控](#6-系统监控)
- [端口转发](#7-端口转发)
- [RDP-VNC 远程桌面](#8-rdp--vnc-远程桌面)
- [设置中心](#9-设置中心)
- [主密码安全锁](#10-主密码安全锁)
- [AI 助手](#11-ai-助手)
- [云同步](#12-云同步)
- [数据安全](#13-数据安全)
- [容器管理(Docker)](#14-容器管理docker)
- [安装与配置指南](#安装与配置指南)
- [环境要求](#环境要求)
- [快速安装](#快速安装)
- [开发环境配置](#开发环境配置)
- [配置文件说明](#配置文件说明)
- [使用示例](#使用示例)
- [快速上手流程](#快速上手流程)
- [SSH 连接示例](#ssh-连接示例)
- [SFTP 文件传输示例](#sftp-文件传输示例)
- [快速命令示例](#快速命令示例)
- [版本信息](#版本信息)
- [当前版本](#当前版本)
- [版本号规则](#版本号规则)
- [更新日志](#更新日志)
- [未来功能规划](#未来功能规划)
- [技术栈](#技术栈)
- [目录结构](#目录结构)
- [常见问题](#常见问题)
- [贡献指南](#贡献指南)
- [参与贡献](#参与贡献)
- [代码提交规范](#代码提交规范)
- [开发流程](#开发流程)
- [许可证](#许可证)
---
## 项目概述
FinalZero 是一款基于 **Electron + React + TypeScript** 构建的现代化桌面 SSH 客户端,界面采用 Ant Design 设计语言,目标是提供安全、高效、易用的远程服务器管理体验。
所有连接、分组、命令、密钥、传输记录等数据均保存在本机 SQLite 数据库中,数据库使用 **SQLCipher 4** 整库加密(主密钥由 Windows DPAPI 管理),敏感字段另有 **AES-256-GCM** 二次加密,具备完善的本地数据安全保护。
> **状态提示**:项目处于持续迭代阶段,功能会不断新增与完善。
### 核心功能
| 能力域 | 说明 |
|--------|------|
| 多协议连接 | SSH、SFTP、Telnet、**RDP**、**VNC**、**WSL**、**本地 Shell**;密码 / 私钥 / **SSH Agent** / 键盘交互认证 |
| 多标签终端 | 每标签独立连接,支持复制 / 重命名 / 标签颜色、**行号 / 时间戳 Gutter**、**关键词高亮**、**动作链接**、**递归分屏** |
| 文件管理 | 上传 / 下载、断点续传、传输队列持久化、**目录同步**、**打包下载**、**远程文件编辑器**(安全写) |
| 系统监控 | 状态栏 CPU / 内存实时展示,超阈值红色告警 |
| 命令管理 | 分组管理、内置常用模板、双击执行 |
| 密钥管理 | SSH 私钥管理、主机密钥校验、防中间人攻击、**主机密钥确认协调器** |
| **AI 助手** | **Ask 对话式问答 + 命令生成 + 风险标注;Agent ReAct 自主多步执行 + 审批流;多模态附件** |
| **云同步** | **WebDAV / S3 兼容,多设备配置加密同步,冲突解决** |
| **容器管理** | **Docker 容器 / 镜像 / 网络 / Compose / Swarm;本地与远程(SSH 隧道)两种传输;预检 + 审批流** |
| 数据安全 | 整库加密 + 字段级加密 + 自动迁移 + **主密码安全锁** |
### 设计理念
- **安全优先**:所有敏感数据双重加密,密钥由系统级 DPAPI 托管,与账户绑定。
- **体验为先**:现代化 UI、流畅交互、多标签独立运行,互不干扰。
- **开箱即用**:内置常用命令模板与监控指标,零配置即可上手。
- **可扩展性**:模块化架构,已支持 RDP / VNC 远程桌面与 WOL 局域网唤醒,便于进一步扩展串口等协议。
### 适用场景
- 运维人员管理多台 Linux / Windows Server 服务器
- 开发者进行远程开发、部署与调试
- 系统管理员批量执行运维命令与监控资源
- 需要安全加密存储连接凭证的企业用户
---
## 功能说明
### 1. 连接与会话管理
**协议与认证**
- 支持 **SSH、SFTP、Telnet、RDP、VNC、Serial、WSL、本地 Shell** 协议;串口支持端口枚举、波特率、数据位、停止位、校验与流控配置
- 认证方式:密码、私钥(含口令)、**SSH Agent**、键盘交互、(RDP)系统级凭据
- 高级配置:代理(HTTP / SOCKS4 / SOCKS5)、Keep-Alive、连接超时、就绪超时、终端类型
- **跳板机(Jump Host)**:启用后通过跳板机建立 SSH 隧道,目标服务器无需直接暴露公网
- **启动命令**:连接成功后自动执行预设命令(每行一条)
- **连接标签 & 备注**:会话可加标签(tags)并写备注,搜索时可按标签过滤
- **WOL 局域网唤醒**:通过 `wol.send` 向已配置的 MAC 地址发送魔术包唤醒服务器
**分组管理**
- 支持多级分组 / 子分组,缩进显示与节点连接线
- 展开 / 折叠使用加号 / 减号图标
- 分组可重命名、删除、拖拽排序
- 右键菜单支持「移动分组」,可将分组及会话整体移动
**会话列表**
- 支持收藏、搜索过滤、拖拽排序
- 单击会话 → 右侧展示连接详情(基本信息、认证方式、高级配置、最近连接时间)
- 双击会话 → 独立打开终端标签页
- 右键菜单:新建连接、新建分组、复制、编辑、删除、收藏 / 取消收藏、连接、移动分组
**连接历史**
- 记录每次连接的会话、服务器、状态、起止时间与时长
- 支持按状态查看与清空
- 点击历史记录可快速重连
### 2. 多标签终端
- **独立运行**:每个标签页对应一条独立连接,内容互不影响;同一连接可打开多个标签页
- **标签操作**:右键菜单支持重命名、复制标签页、设置标签颜色、关闭当前 / 其他 / 右侧 / 全部标签页
- **终端能力**:基于 xterm.js,支持字体、字号、**行高**、**光标样式(block / bar / underline)**、主题、编码、回滚行数、终端类型等设置
- **分屏支持**:单标签内支持多个独立终端流(streamId),提供 1×1 / 1×2 / 2×1 / 2×2 四种布局
- **终端搜索**:Ctrl+F 支持高亮 / 大小写 / 正则 / 上下定位
- **命令历史**:按会话隔离,持久化存储,支持 ↑/↓ 回看
- **Zmodem 传输**:`rz / sz` 自动拦截,文件选择对话框 + 进度状态条,传输完成后终端自动恢复
- **快速命令**:终端界面提供快速命令面板,双击命令直接在当前连接中执行
- **快捷键**:可配置全局快捷键(新建会话、切换标签、复制粘贴、终端搜索、全屏等),支持冲突检测与恢复默认
- **行号 / 时间戳 Gutter**:可选左侧侧栏显示逻辑行号与每行到达时间(`showLineNumbers` / `showTimestamps`)
- **关键词高亮**:内置规则扫描输出行,对 error / warn / success / info / 日期 / 数字 / URL / UUID / 版本号等着色(`enableKeywordHighlight`)
- **动作链接**:自动识别 IPv4、`host:port`、压缩包文件名,点击复制到剪贴板(`enableActionLinks`)
- **交互增强**:选中即复制(`selectOnCopy`)、右键粘贴(`rightClickPaste`)、输入命令建议(`enableSuggestions`)
### 3. SFTP 文件管理
- **文件操作**:远程 / 本地文件列表,支持上传、下载、删除、重命名、新建目录
- **断点续传**:上传 / 下载支持断点续传与暂停 / 恢复,大文件传输中断后可继续
- **传输队列**:传输记录持久化保存到数据库,切换界面或重启应用后记录仍存在;支持手动清理,每条记录可一键打开本地文件所在目录
- **可折叠面板**:服务器文件列表面板、文件管理面板与传输队列面板均可折叠,优化小屏幕操作体验
- **目录同步(DirSync)**:远端 ⇄ 本地双向目录同步,先预览差异(仅远端 / 仅本地 / 远端更新 / 本地更新 / 相同),再选择性执行;结果分成功 / 失败 / 跳过三色展示
- **打包下载**:在远程文件列表中多选文件 / 目录,一键打包为压缩包下载到本地
- **远程文件编辑器**:通过 `sftp.readFile / sftp.writeFile` 在应用内直接读取 / 写回远端文本文件,避免下载再上传的繁琐流程
### 4. 命令管理器
- 快速命令管理器,支持命令分组(多级)、自定义名称、命令内容、描述、排序与收藏
- 内置常用命令模板,开箱即用:
| 分类 | 示例命令 |
|------|----------|
| 系统监控 | `top`、`free -h`、`df -h` |
| 网络工具 | `ss -tulnp`、`ip a`、`ping` |
| 文件操作 | `ls -lah`、`find / -name` |
| 部署发布 | `git pull && docker-compose up -d` |
- 双击命令即在当前活动终端中执行,无需手动输入
### 5. 密钥管理
- 独立的「密钥管理」功能(与终端、SFTP、命令管理器、设置同级)
- 管理 SSH 私钥:密钥名称、类型、指纹、公钥、备注等
- 私钥内容在界面上仅显示首尾部分,避免完整泄露
- **主机密钥校验**:连接时校验服务器指纹,防止中间人攻击
- 密钥数据纳入配置导入 / 导出范围,导出时敏感内容加密处理
### 6. 系统监控
- **状态栏实时展示**:连接建立后,底部状态栏实时展示当前服务器的 CPU 占用、内存占用、系统版本、uptime 等基本信息
- **阈值告警**:CPU 或内存占用超过 90% 时以红色高亮告警,便于一眼识别
- **监控图表面板**:以 ECharts 图表形式展示指标变化趋势,直观可视
- **系统信息缓存**:首次采集后缓存 hostname、OS、kernel、arch、CPU 型号,避免重复抓取
### 7. 端口转发
- 支持 **本地转发 / 远程转发 / 动态转发(SOCKS)** 三种模式
- `forward.create / stop / delete / list` 完善的 IPC 通道
- 转发信息对象(ForwardInfo)展示实际监听端口(actualPort)、运行状态、错误信息
- 支持 `autoStart`,建立连接后自动启动已标记的转发规则
### 8. RDP / VNC 远程桌面
- **RDP**:调用系统 `mstsc.exe` 以独立窗口承载远程桌面会话,支持域(Domain)、屏幕模式(窗口 / 全屏)、NLA 网络级认证;凭据在系统窗口交互输入,不写入配置文件
- **VNC**:基于 noVNC 渲染的独立 `VncPanel` 标签页,WebSocket 桥接 `VncService`
- 统一标签页管理:远程桌面标签与 SSH 终端标签共存,支持断开 / 重新打开
### 9. 设置中心
设置界面嵌入主窗体,包含以下栏目:
| 栏目 | 说明 |
|------|------|
| 常规 | 开机自启、启动时自动连接上次会话、关闭窗口行为(最小化到托盘 / 询问 / 退出)、语言切换 |
| 外观 | 主题等界面显示配置 |
| 终端 | 字体、字号、**行高**、**光标样式**、编码、回滚行数、终端主题、**行号 / 时间戳 Gutter**、**关键词高亮**、**动作链接**、**选中即复制 / 右键粘贴 / 命令建议** |
| 网络 | 代理相关配置 |
| 快捷键 | 常用操作的快捷键配置(冲突检测 + 恢复默认) |
| 安全锁 | 主密码设置、自动锁定超时、失败次数上限、锁定遮罩 |
| **AI 助手** | **Provider / 模型配置、默认模型、Agent 步数 / 超时、审批策略** |
| **云同步** | **WebDAV / S3 provider、设备名、命名空间、启动检查、自动推 / 拉** |
| 日志 | 日志级别与查看 |
| 关于 | 应用名称、版本、构建信息、版权与相关链接 |
### 10. 主密码安全锁
- `lock.status / lock.setup / lock.unlock / lock.lock / lock.reset / lock.activity` 完整 IPC
- 主密码首次设置后启用,可配置自动锁定超时(空闲一定时间后自动锁定)
- 失败次数上限(maxFailedAttempts)+ 暂时锁定(lockedUntil 截止时间),防止暴力尝试
- 锁定遮罩:锁定状态下覆盖整个应用层,解锁后恢复上次工作现场
### 11. AI 助手
> 对标 NyaTerm AI Assistant,分 **Ask 模式**(一期)与 **Agent 模式**(二期)。
**Ask 模式(对话式问答 + 命令生成)**
- 右侧常驻 `AiPanel`,支持多会话对话、流式输出(`ai.stream.delta/done/error`)、历史搜索
- 终端右键唤起:解释选中内容、解释最近输出、分析错误、生成命令
- AI 返回的命令以 `CommandCard` 结构化卡片展示,带 **四级风险标注**(low / medium / high / critical)
- 命令卡片支持:执行、追加到终端、保存为快捷命令
- **Provider 配置**:OpenAI Compatible 接口,可配置多 Provider 与模型(`ai.providers.*` / `ai.models.*`,含 `ai.models.discover` 自动发现)
- **风险规则库**:`src/shared/aiRiskRules.ts` 本地正则 + 白名单规则(确定性优先,不依赖模型自觉)
- **上下文脱敏**:发送前剔除密码、私钥等敏感内容
- API 凭据与对话数据纳入字段级加密 + 审计
**Agent 模式(ReAct 自主多步执行)**
- 在用户指定的活跃终端会话中按 ReAct 循环自主执行多步命令并观察结果
- **双工具**:`execute_command`(执行命令并回传输出摘要)+ `final_answer`(任务总结,与终端真实执行记录分离)
- **双通道风险评估**:模型声明风险 + 本地规则库 → `effective = max`;critical 强制人工确认
- **审批流**:高危命令暂停循环,等待 `ai.agent.approve / reject`;审批可编辑命令后执行
- **可干预**:任意步骤可中止(`ai.agent.stop`)、重试失败步骤
- **持久化**:`ai_agent_runs` / `ai_agent_steps` 表存储运行与每步状态、命令、输出摘要
- **原生工具调用 + JSON 协议回退**:优先 OpenAI Compatible `tools` 参数;失败时回退到 JSON 协议解析
- 步数上限 / 单步超时控制,防止失控
- `AgentRunPanel` 展示步骤时间线(运行中 / 完成 / 失败 / 超时 / 待审批 / 被策略阻止)
**AI 相关 IPC 通道**:`ai.providers.*`、`ai.models.*`、`ai.chat.*`、`ai.stream.*`、`ai.agent.*`(start / stop / approve / reject / status / history / stepDetail / step / done / error)
**v1.0.6 增强**
- **多模型选择**:Ask / Agent 聊天界面可切换已启用模型(`AiModelSelect` 组件 + `AiModelResolver` 服务,按 `isDefault` 解析默认,旧数据 `configuredModelId` 兼容回退)
- **流式响应 + 推理内容分离**:`AiStreamDelta` 区分 `content` / `reasoning` 两种 kind;`AiMessage` / `AiStreamDone` 新增 `reasoningContent` 字段,推理过程与最终答案分开存储
- **Markdown 渲染**:`MarkdownMessage` 组件基于 `react-markdown` + `remark-gfm` 渲染 GFM,代码块一键复制
- **思考过程面板**(`ThinkingPanel`):折叠展示 Provider 推理内容与 Agent 思考链,流式加载动画
- **终端上下文注入**:`terminalContextStore` 注册活动终端输出读取器,`AiChatRequest` / `AiAgentStartRequest` 新增 `terminalContext` 字段;主进程重新限制长度并脱敏后转发给 Provider
### 12. 云同步
> 多设备配置加密同步,支持 WebDAV 与 S3 兼容存储。
- **Provider**:WebDAV、S3 兼容(`SyncProviderType = 'webdav' | 's3'`)
- **配置项**(`CloudSyncSettings`):enabled、provider、deviceName、remoteNamespace、webdav* / s3*、checkOnStartup、autoPull、autoPush、pushDebounceSec
- **运行时状态**(`CloudSyncStatus`):idle / pushing / pulling / syncing / conflict / error,含 lastPushAt、remoteRevision、localHash / remoteHash
- **凭据加密**:webdavPassword / s3SecretKey 字段级加密(write-only)
- **IPC 通道**:`sync.getSettings / saveSettings / test / push / pull / status / resolveConflict / notifyChange / statusChanged / clearRemote`
- **冲突解决**:`sync.resolveConflict` 处理多设备并发修改
- 独立 `SyncPanel` 视图 + 设置→云同步子页
**v1.0.6 增强**
- **分类勾选**:`SyncCategory` 提供 10 个可独立勾选的数据域(settings / connections / groups / history / commands / credentials / aiConfig / aiHistory / fileTransfers / auditLogs);`DEFAULT_SYNC_CATEGORIES` 默认 auditLogs 不勾选;`CloudSyncSettings.categories` 字段
- **远端清空**:`sync.clearRemote` 一键清空远端同步数据
- **同步展示**:`syncDisplay` 时间戳格式化(本地时区,无 locale 分隔符)
### 13. 数据安全
> **双层加密保护,确保本地数据安全**
- **整库加密**:数据库使用 SQLCipher 4 格式加密,主密钥为 32 字节随机密钥,由 Windows DPAPI(系统密钥链)保存,与当前 Windows 账户绑定。仅拷贝 db 文件无法读取任何内容。
- **字段级加密**:密码、私钥、口令等敏感字段在库内再以 **AES-256-GCM** 加密存储,形成双层保护。
- **自动迁移**:旧版本产生的明文数据库会在启动时自动迁移为加密库,迁移前自动备份、失败自动回滚、成功后删除明文备份,数据安全无损。
- **配置导入 / 导出**:连接、命令、密钥等数据支持整体导出与导入,涉及密码与密钥的内容加密处理。
- **审计日志**:记录关键操作,便于追溯。
- **安全锁**:主密码 + 自动锁定 + 失败锁定三重防护(见第 10 节)。
- **SQL 日志脱敏**(v1.0.6):`sqlLogRedaction` 自动检测含 `password` / `passphrase` / `private_key` / `api_key_enc` / `proxy_password` / `PRAGMA key` 的 SQL 语句,开发日志中以 `[REDACTED sensitive SQL]` 替代,防止凭据泄漏到日志。
### 14. 容器管理(Docker)
> v1.0.9 新增。统一的 Docker 运维工作台,支持本地 Docker Engine 与远程主机(经 SSH 隧道)两种传输方式。
**覆盖范围**
- **容器**:列表 / 详情 / 启停 / 重启 / 删除 / 创建(含 preflight 预检)/ exec 进入终端
- **镜像**:列表 / 拉取(含取消、进度流)
- **网络**:列表
- **Compose**:项目列表 / YAML 预览 / 操作(up/down/restart)预检与影响评估
- **Swarm**:stack 列表
- **看板**:`docker.dashboard` 汇总容器/镜像/网络/卷统计
- **可观测性**:`docker.observability.subscribe` 实时事件与 stats 订阅流
**传输与连接**
- **本地传输**:直连本机 Docker Engine(named pipe / unix socket)
- **远程传输**(`RemoteDockerTransport`):通过已有 SSH 连接的 ssh2 channel 桥接为 Node HTTP socket,复用 `DockerServicePool`,无需在远程额外开端口
- **`docker.probe`**:探测目标 Docker 可用性与版本
**安全与审批**
- **Compose Planner**(`DockerComposePlanner`):YAML 解析、复杂度/资源限制校验、阻断码(blocker codes)与风险提示;操作前 preflight 返回影响范围
- **容器/资源创建 preflight**:创建前返回 normalized 请求、风险提示(risk notice)与影响(impact)
- **资源删除 preflight**:返回依赖关系,确认后才执行
- **注册表凭据**(`DockerRegistryCredentialRepository`):私有仓库凭据加密存储,支持 list/delete
**IPC 与契约**
- IPC 通道集中声明于 `src/shared/ipcChannels.ts`(`IPC_INVOKE_CHANNELS` / 事件通道),由 `tests/__tests__/shared/ipcChannels.test.ts` 契约测试守护,确保 preload 白名单与主进程 handler 一致
- 新增仓库:`ManagedTargetRepository`(管理目标,绑定 Docker 端点)、`DockerRegistryCredentialRepository`
**界面**
- `ContainerCenter` 容器中心(标签页:容器 / 镜像 / 网络 / Compose / Swarm)
- `DockerExecWorkspace` / `DockerExecTerminal`:exec 进入容器终端
- 各类创建/删除/环境变量/镜像拉取对话框,配套 ViewModel 与单元测试
---
## 安装与配置指南
### 环境要求
| 项目 | 要求 |
|------|------|
| 操作系统 | Windows 10 / 11(x64) |
| Node.js | 20+(建议 20.x LTS) |
| npm | 10+ |
### 快速安装
#### 方式一:使用安装包(推荐终端用户)
1. 从 `release/` 目录获取 `FinalZero Setup 1.0.12.exe`
2. 双击运行安装程序
3. 选择安装目录(支持自定义)
4. 安装完成后,桌面与开始菜单将出现 FinalZero 快捷方式
#### 方式二:免安装版
1. 进入 `release/win-unpacked/` 目录
2. 直接运行 `FinalZero.exe`
### 开发环境配置
```bash
# 1. 克隆项目
git clone
cd FinalZero
# 2. 安装依赖
npm install
# 3. 开发模式启动(渲染进程热更新 + 主进程自动重启)
npm run dev
# 4. 生产构建并启动
npm start
# 5. 仅编译(主进程 + 渲染进程)
npm run build
# 6. 运行单元测试
npm test
# 7. 打包 Windows 安装包(输出到 release/)
npm run package:win
# 8. 打包 macOS DMG + ZIP(仅可在真实 macOS 上执行)
npm run package:mac
```
> **原生模块说明**:项目使用 `better-sqlite3-multiple-ciphers` 原生模块,依赖与 Electron 版本匹配的预编译二进制。`package:mac` 必须在真实 macOS 上安装依赖并重建原生模块;Windows 不能生成可验证的 macOS 产物。若重新安装依赖后启动报 `NODE_MODULE_VERSION` 相关错误,请执行:
>
> ```bash
> npm run rebuild
> ```
### 配置文件说明
| 配置项 | 位置 | 说明 |
|--------|------|------|
| 数据库文件 | `%APPDATA%\finalzero\finalzero.db` | SQLCipher 4 加密数据库 |
| 应用配置 | electron-store 管理 | 主题、语言、自启等偏好 |
| 应用图标 | `build/icon.ico` | 打包图标资源 |
| 打包配置 | `package.json` 的 `build` 字段 | electron-builder 配置 |
---
## 使用示例
### 快速上手流程
```
1. 启动应用
└─ 左侧「会话」面板
2. 创建会话
├─ 右键 → 「新建连接」
├─ 填写:名称、主机、端口、用户名
├─ 选择:协议(SSH/SFTP/Telnet)
└─ 选择:认证方式(密码 / 私钥)
3. 连接服务器
├─ 单击会话 → 查看连接详情
└─ 双击会话 → 独立打开终端标签页
4. 多服务器管理
├─ 可同时打开多个标签页
├─ 标签页之间互不干扰
└─ 右键标签页 → 重命名 / 复制 / 设置颜色 / 关闭
5. 文件管理
├─ 点击左侧「SFTP」图标
├─ 上传 / 下载 / 删除 / 重命名
└─ 传输队列查看进度与历史
6. 快速命令
├─ 点击「命令管理器」
├─ 双击命令 → 在当前终端执行
└─ 或在终端侧边栏使用快速命令面板
7. 系统设置
└─ 「设置」→ 常规 / 外观 / 终端 / 网络 / 快捷键 / 日志 / 关于
```
### SSH 连接示例
**场景**:连接一台 Ubuntu 服务器
1. 在会话面板右键 → **新建连接**
2. 填写表单:
| 字段 | 值 |
|------|----|
| 名称 | `web-server-01` |
| 协议 | SSH |
| 主机 | `192.168.1.100` |
| 端口 | `22` |
| 用户名 | `ubuntu` |
| 认证方式 | 私钥 |
| 私钥 | 选择本地 `.pem` 文件 |
| 分组 | 选择「生产环境」分组 |
3. 点击 **保存** → 双击会话即可打开终端
4. 连接成功后,底部状态栏显示服务器 CPU / 内存 / 系统信息
### SFTP 文件传输示例
**场景**:上传本地文件到远程服务器
```
1. 在终端连接建立后,点击左侧「SFTP」图标
2. 上方显示当前连接名称(避免混淆服务器)
3. 左侧:本地文件列表
4. 右侧:远程服务器文件列表
5. 选择本地文件 → 点击「上传」
6. 传输队列实时显示进度:
- 状态:pending → transferring → completed
- 支持:暂停 / 恢复 / 取消
7. 传输完成 → 可一键打开本地文件所在目录
```
### 快速命令示例
**场景**:使用内置命令模板查看服务器资源
1. 在终端连接中,打开右侧快速命令面板
2. 选择「系统监控」分类
3. 双击 `free -h` → 命令自动在当前终端执行
4. 或在「命令管理器」中自定义命令:
| 字段 | 值 |
|------|----|
| 名称 | 查看磁盘占用 |
| 命令 | `df -h --total` |
| 描述 | 显示所有挂载点的磁盘使用情况 |
| 分组 | 系统监控 |
| 收藏 | 是 |
---
## 版本信息
### 当前版本
**v1.0.12(2026-09-01)** — i18n 校验器字典键校验、快捷键消息可翻译化、AI Agent 窄栏自适应、英文版文档
- 增强 **i18n 校验器**(`check-renderer-i18n.cjs`,+84 行):
- 扫描范围扩展至 `src/renderer/config/`
- 加载 `zhMessages` 字典键,校验所有静态 `t('...')` 调用的键存在于字典,缺失时报告 `missing zhMessages key`
- findings 排序细化(file → line → text)
- 增强 **快捷键校验消息可翻译化**(`shortcuts.ts`):硬编码中文错误消息改为可翻译英文源键(`Invalid shortcut configuration` / `Shortcut already assigned: {shortcut}`),经字典翻译为中文(「快捷键配置无效」/「快捷键已被占用:{shortcut}」)
- 补充 **zhMessages 字典**:`tasks` / `Read-only` / `Issues` / `Compose operation plan` / `CPU 18%` / `Region` 等;移除重复 `System` 条目并归位至主题区
- 修复 **AI Agent 面板窄栏布局**(`AgentRunPanel` + `AiChat.css`):Inspector 窄栏下控制行改为单列自适应(模型选择 / 终端选择 / 运行按钮全宽);`popupMatchSelectWidth` 防止下拉溢出
- 新增 **英文版文档**(`README_EN.md`):与中文版 `README.md` 内容、结构、排版完全一致,两版顶部互相链接实现中英文切换
- 新增测试:主题标签中文覆盖(6 种)、快捷键校验消息可翻译性
**v1.0.11(2026-08-31)** — 应用主题扩展、终端主题系统、macOS 打包、i18n 全面覆盖、TerserPlugin 压缩
- 新增 **应用主题扩展**:`ThemeType` 从 `dark/light/system` 扩展到 6 种(新增 `ocean` / `graphite` / `sand`);`APP_THEME_OPTIONS` 数据驱动;`resolveApplicationTheme` 解析 system 主题为明暗基底;`isDarkApplicationTheme` 判定
- 新增 **终端主题系统**(`TerminalThemeType`):11 种可移植终端配色(`default` / `dark` / `light` / `solarized-dark` / `solarized-light` / `monokai` / `dracula` / `nord` / `gruvbox-dark` / `one-dark` / `tokyo-night` / `high-contrast`);`default` 跟随应用主题明暗基底
- 新增 **终端配置解析**(`appConfig.ts`):`parseStoredTerminalConfig` 从 `app_config` 表解析 `lineHeight` / `letterSpacing` / `cursorStyle` / `cursorBlink` / `selectOnCopy` / `rightClickPaste` / `enableSuggestions` / `enableKeywordHighlight` / `enableActionLinks` / `showLineNumbers` / `showTimestamps`;`theme.ts` 提供归一化函数(`normalizeTerminalTheme` / `normalizeTerminalLineHeight` / `normalizeTerminalLetterSpacing` / `normalizeTerminalCursorStyle`)
- 新增 **macOS 打包支持**:`package:mac` 脚本(平台校验 + build + rebuild + electron-builder `--mac`);electron-builder `mac` 配置(dmg + zip,`category: public.app-category.developer-tools`);新增 `build/icon.icns` / `build/icon.png` / `build/icon-source.png`;更新 `build/icon.ico`(21KB → 82KB 高清)
- 新增 **i18n 全面覆盖**(+528 行):几乎所有 UI 组件接入国际化(终端 / SFTP / 命令 / 会话 / 设置 / 监控 / 端口转发 / AI / 审计 / 容器 exec / 同步等);新增 `scripts/check-renderer-i18n.cjs` 检查脚本 + `check:i18n` npm script,扫描渲染层硬编码中文
- 新增 **TerserPlugin 生产压缩**:webpack 生产构建启用 `TerserPlugin`(`parallel: 4`),`minimize: isProduction`
- 新增 **AppConfig 类型扩展**:`terminalTheme` 由 `string` 改为 `TerminalThemeType`;新增 `lineHeight` / `letterSpacing` / `cursorStyle` / `cursorBlink` 可选字段
- 增强 **design-system.css**(+302 行):新增 ocean / graphite / sand 主题样式与终端主题变量
- 重构 `TerminalView`(+132/-行)、`SftpPanel`(+210/-行)、`MonitorPanel`(+159/-行)、`TerminalSettings`(+353/-行)、`SessionTree`(+108/-行)等接入新主题与 i18n
- 新增单元测试:`appConfig` / `theme` / `i18n`
- README 开发环境配置补充 macOS 打包步骤与原生模块说明
**v1.0.10(2026-08-30)** — 审计日志查看器、诊断日志开关、RDP 孤儿 profile 清理、设置深链导航
- 新增 **审计日志查看器**(`AuditLogPanel` + `AuditHandlers`):支持按动作 / 级别 / 时间范围 / 关键词查询、排序、分页;CSV 导出(UTF-8 BOM,含 **CSV 公式注入防护**,对 `=` / `+` / `-` / `@` / `\t` / `\r` 开头单元格前置 `'`);新增 IPC `audit.query` / `audit.export`;`AuditLogRepository` 重写(+394/-行)
- 新增 **审计日志类型**(`AuditLogEntry` / `AuditLogQuery` / `AuditLogQueryResult` / `AuditLogExportRequest` / `AuditLogExportResult` / `AuditLogLevel`);`SettingsCategory` 新增 `'audit'`
- 新增 **诊断日志开关**(`SecureLogger.setEnabled`):普通诊断日志可关闭,安全审计事件不受影响;`LogsSettings` UI 增强
- 新增 **RDP 孤儿 profile 清理**(`RdpService.cleanupOrphanProfiles`):启动时清理 24h 以上的 `finalzero-rdp-*.rdp` 临时文件,非递归,拒绝无关文件
- 新增 **设置深链导航**(`settingsNavigation`):`requestSettingsCategory` / `consumeRequestedSettingsCategory` 支持从其他视图跳转到指定设置子页(如审计日志、网络)
- 增强 **CloudSyncService**(+173 行):审计日志纳入同步分类
- 重构 **NetworkSettings**(+168/-行)
- 新增单元测试:`AuditLogRepository` / `AuditHandlers` / `auditLogDetails` / `SecureLogger` / `RdpServiceCleanup`
- i18n 补充文案
**v1.0.9(2026-08-29)** — 容器管理(Docker)、AI 多模态附件、主机密钥确认协调器、递归分屏布局
- 新增 **容器管理(Docker)**:统一 Docker 运维工作台,覆盖容器/镜像/网络/Compose/Swarm/看板/可观测性;支持本地与远程(SSH 隧道)两种传输;Compose Planner 预检 + 创建/删除 preflight + 审批流;exec 进入容器终端;注册表凭据加密存储
- 新增 **AI 多模态附件**(`AiAttachmentService`):支持图片(png/jpg/jpeg/webp/gif,≤5MB)与文本(256+ 扩展名,≤256KB)附件;上限 5 个 / 总计 10MB;10 分钟 TTL 自动释放;新增 IPC `ai.attachments.pick` / `ai.attachments.release`;`AiService` 多模态测试
- 新增 **主机密钥确认协调器**(`HostKeyVerificationCoordinator`):桥接 ssh2 异步 `hostVerifier` 回调到渲染进程确认对话框与已知主机仓库;reject / accept / remember 三种动作;60s 超时
- 新增 **递归分屏布局**(`RecursiveSplitLayout`):终端递归 split 树的可视化布局组件,配合 v1.0.8 的 `splitLayoutStore`
- 新增 **IPC 通道集中声明**(`src/shared/ipcChannels.ts`):`IPC_INVOKE_CHANNELS` 白名单 + 事件通道,契约测试 `ipcChannels.test.ts` 守护 preload 与主进程一致性
- 新增 **管理目标仓库**(`ManagedTargetRepository`):绑定 Docker 端点的管理目标持久化
- 增强 **AI 聊天**:会话选择(`aiConversationSelection`)、滚动管理(`aiChatScroll`)、附件 UI
- 增强 **SSH 服务**(`SshService`):host key 验证接入协调器
- 增强 **preload**:新增 247 行 Docker / 附件 / 管理目标 API 桥接
- 新增 `.qa/` 到 `.gitignore`
- 新增大量单元测试:DockerHandlers / DockerService / DockerComposeAnalyzer / DockerComposePlanner / RemoteDockerTransport / NamedPipeDockerTransport / AiAttachmentService / AiServiceMultimodal / HostKeyVerificationCoordinator / ManagedTargetRepository / DockerRegistryCredentialRepository / ipcChannels / dockerComposeViewModel / dockerContainerCreateViewModel / dockerExecWorkspace / dockerObservabilityViewModel / dockerResourceCreateViewModel / dockerSwarmViewModel / aiChatScroll / aiConversationSelection
- i18n 补充 480+ 条中英文文案
**v1.0.8(2026-08-28)** — 远程文件编辑器安全写、终端分屏树重构、Inspector 面板懒加载
- 新增 **远程文件编辑器安全写**(`SftpSafeWrite`):版本指纹(SHA-256 + size + mtime)识别等长同秒修改;写入前冲突检测,冲突时返回远端当前内容与版本;`force` 选项仅在用户确认后使用,覆盖前仍创建恢复副本;新增 IPC 通道 `sftp.readFileVersioned` / `sftp.safeWriteFile`
- 新增 **共享工具 `remoteEditSafety`**:版本比对(`sameRemoteFileVersion`)+ 线性复杂度文本 diff 摘要(`buildTextDiffSummary`,仅展开首尾公共区之间的变化块,避免对 2MB 文本执行 O(n²) LCS)
- 重构 **终端分屏树**(`splitLayoutStore`):递归 split 树(horizontal / vertical,ratio 0.15~0.85),最多 12 个 pane;树节点使用稳定 id,调整比例或继续嵌套时不重挂载已有终端;`TerminalTabs` 为唯一写入方,命令/AI 等面板只读取某连接当前存活的 `streamId`
- 增强 **终端标签栏**(`TerminalTabs`):适配新分屏树,关闭 pane 后不复用旧 id
- 新增 **Inspector 面板懒加载**(`lazyWorkspacePanels`):`React.lazy` 拆分 AI / SFTP / Monitor 面板为独立 chunk(`panel-ai` / `panel-sftp` / `panel-monitor`),`DeferredWorkspacePanel` Suspense 兜底,减少首屏包体
- 增强 **Webpack 分包**:`chunkFilename: chunks/[name].[contenthash:8].js` + 生产构建 `clean` 选项,清理 dev hot-update 陈旧产物
- 新增单元测试:`sftpSafeEdit`(主进程)、`splitLayoutStore`(渲染进程)、`remoteEditSafety`(共享)
- 其他:SftpService / SftpHandlers 扩展版本化读写;RemoteFileEditor 冲突 UI;i18n 补充 20+ 条;样式增强
- 验证:23/23 测试套件通过;生产构建通过
**v1.0.7(2026-08-27)** — WorkspaceShell 工作区外壳、Electron 原生模块工具链
- 新增 **WorkspaceShell 工作区外壳**:基于 Navop 竞品分析重构主界面骨架;删除固定 44px 顶部工作区面板,导航交给 IconSidebar,连接状态交给终端标签与 StatusBar,业务页面获得完整垂直空间
- 新增 **可恢复首页 WorkspaceHome**:单列布局展示可恢复任务入口;连接型视图重启后降级回连接页,不伪造已恢复会话
- 新增 **统一 Inspector 工作区面板**(`WorkspaceInspector`):复用命令 / AI / 远程文件 / 监控四个业务面板;支持 tab 切换、折叠、300~560px 拖拽宽度记忆;宽屏 dock、中屏右侧 overlay、800px 最小窗口 bottom sheet
- 新增 **资源栏自适应行为**:Sidebar 支持 `auto` / `dock` / `overlay` 三种行为;窄屏强制 overlay + 遮罩 + Escape 关闭 + 持久化开合状态,不再挤压主工作区
- 新增 **工作区偏好持久化**(`workspacePreferences`):lastView / inspector / sidebar 配置写入 localStorage
- 新增 UI action `SET_SIDEBAR_COLLAPSED`:程序化控制侧边栏折叠
- 新增 **Electron 原生模块工具链**(FZ-NV-001):`.nvmrc` 固定 Node 版本;`scripts/run-jest-electron.cjs` 让测试在 Electron ABI 下运行;`scripts/verify-electron-native.cjs` 真实加载 SQLite / pty / Serial bindings 自检;`postinstall` 钩子自动重建原生模块;`rebuild:electron` 拆分、`verify:native` 新增、`package` / `package:win` / `pack:dir` 全部纳入重建步骤
- 新增 **ESLint 配置**:`.eslintrc.cjs` + `eslint-plugin-react-hooks` 规则
- 新增 **竞品分析文档**:`docs/Navop-Comparison-and-Improvement-Plan.md`;`docs/v1.2-Sprint-Plan.md` 旧 Sprint 标记为历史
- 新增单元测试 `tests/__tests__/renderer/workspacePreferences.test.ts`;数据库测试适配 Electron 测试环境
- 其他:MonitorPanel / SftpPanel / AiPanel / AiChat.css 细节增强;i18n 补充 45+ 条;SessionConfig 串口注释校准(不再标记“规划中”)
- 验证:20/20 测试套件、298/298 用例通过;生产构建通过;lint 0 errors / 62 条历史 warnings;Electron 28.3.3 / Node 18.18.2 / ABI 119 原生模块自检通过
**v1.0.6(2026-08-15)** — AI 多模型与流式推理、云同步分类、SQL 日志脱敏
- 新增 **AI 多模型选择**:Ask / Agent 聊天界面支持切换已启用的模型(Provider 启用 + Model 启用),按 `isDefault` 标志解析默认模型,旧数据兼容回退
- 新增 **AI 流式响应 + 推理内容分离**:流式输出区分 `content` / `reasoning` 两种 kind;将 Provider 返回的推理过程与最终答案分开存储与展示
- 新增 **AI Markdown 渲染**:基于 `react-markdown` + `remark-gfm` 渲染 GFM Markdown,代码块一键复制
- 新增 **AI 思考过程面板**(`ThinkingPanel`):折叠展示推理内容与 Agent 思考链,流式加载动画
- 新增 **终端上下文注入**(`terminalContextStore` + `AiTerminalContext`):注册活动终端输出读取器,AI 可获取近期终端输出作为上下文,主进程重新限制长度并脱敏
- 新增 **云同步分类勾选**:10 个可独立勾选的数据域(settings / connections / groups / history / commands / credentials / aiConfig / aiHistory / fileTransfers / auditLogs),默认 auditLogs 不勾选
- 新增 **远端清空**(`sync.clearRemote` IPC):一键清空远端同步数据
- 新增 **SQL 日志脱敏**(`sqlLogRedaction`):自动检测含 password / passphrase / private_key / api_key_enc / proxy_password / `PRAGMA key` 的 SQL 语句并脱敏,防止凭据泄漏到开发日志
- 构建:Webpack renderer 启用 `conditionNames: ['browser', 'import', 'default']`,修复 `react-markdown` / `vfile` 在渲染进程(nodeIntegration 禁用)中的 ESM 导出问题
- 新增依赖:`react-markdown` ^10.1.0、`remark-gfm` ^4.0.1
- 新增 9 个单元测试:AiProviderRepository seed、sqlLogRedaction、AiModelSelect、syncCategorySettings、syncDisplay、terminalContextStore、AiModelResolver、AiServiceStream、CloudSyncService
- 国际化扩展:补充 AI 模型选择、思考过程、同步分类等中英文文案
- 清理:移除无关二进制 `mojian-blog.jar`
**v1.0.5(2026-08-15)** — AI 助手、云同步与终端增强
- 新增 **AI 助手 - Ask 模式**:对话式问答,自然语言生成 Shell 命令;自动风险标注(safe / caution / dangerous)并要求二次确认;支持上下文记忆与会话隔离
- 新增 **AI 助手 - Agent 模式**:基于 ReAct(Reason + Act)循环的自主多步执行;分步展示思考过程与工具调用;关键操作(写、删、改、远程执行)走审批流,支持中止与回滚预览
- 新增 **云同步**:支持 WebDAV 与 S3 兼容协议;多设备配置加密同步(AES-256-GCM 字段级加密);冲突检测与解决策略(last-writer-wins / manual-merge)
- 新增 **终端行号 / 时间戳 Gutter**:左侧独立列展示逻辑行号与每行到达时间,支持滚动联动;可在「终端设置」中独立开关
- 新增 **终端关键词高亮**:基于 xterm decoration 的轻量高亮;内置规则覆盖 error / warn / success / info / debug、时间日期、URL、UUID、版本号、提示符等
- 新增 **终端动作链接**:自动识别 IPv4、`host:port`、压缩包归档名,渲染为可点击链接(复制 / 复制并下载 / 复制主机端口)
- 新增 **AI 设置面板**(`AiSettings`):Provider 配置(OpenAI / Azure / Ollama / 自定义 BaseURL)、模型选择、温度、最大 tokens、Ask 风险规则开关
- 新增 **同步设置面板**(`SyncSettings`):协议选择、端点 / 凭据 / 桶名、自动同步间隔、冲突解决策略
- 新增 IPC 通道:`ai.*`、`ai.agent.*`、`sync.*`;新增仓库 `AiProviderRepository` / `AiConversationRepository` / `AgentRunRepository`
- 新增设计文档:`docs/AI-Agent-Mode-Design.md`、`docs/AI-Assistant-Ask-Mode-Design.md`、`docs/Nyaterm-Comparison-Analysis.md`
- 新增单元测试:`tests/__tests__/shared/aiRiskRules.test.ts`(风险规则匹配)
- 国际化扩展:补充 AI 助手、云同步、终端增强相关中英文文案
**v1.0.4(2026-08-15)** — RDP / VNC 远程桌面、目录同步与安全锁
- 新增 **RDP 远程桌面**:调用系统 `mstsc.exe` 独立窗口,支持域 / 屏幕模式 / NLA 网络级认证;凭据不写入配置文件
- 新增 **VNC 远程桌面**:基于 noVNC 渲染的独立 `VncPanel` 标签页
- 新增 **目录同步(DirSync)**:远端 ⇄ 本地双向同步,差异预览 + 执行结果汇总
- 新增 **SFTP 打包下载**:远端多选文件 / 目录一键打包下载
- 新增 **远程文件编辑器**:`sftp.readFile / writeFile` 直读直写远端文本文件
- 新增 **主密码安全锁**:主密码 + 自动锁定超时 + 失败次数暂时锁定 + 锁定遮罩
- 新增 **端口转发完善**:`forward.create / stop / delete / list`,ForwardInfo 显示实际端口、运行状态与 autoStart
- 新增 **SSH Agent 认证**、**WOL 局域网唤醒**(`wol.send`)
- 协议类型扩展:RDP、VNC、WSL、本地 Shell(`local`)正式可用;串口服务(SerialService)框架就绪
- 新增命令历史(`commandHistory.*`)、快捷键(ShortcutCommand / ShortcutMap)、安全锁(`lock.*`)等 IPC 通道
- Telnet 服务增强,Session 仓库与连接管理器扩展
- 国际化新增 ~90 条中英文文案(目录同步、打包下载、RDP/VNC 配置、跳板机、认证方式等)
**v1.0.3(2026-08-15)** — 连接管理视图与新建连接重构
- 新增 **连接管理视图**(应用默认首页):选中会话后展示连接属性卡片(主机 / 端口 / 用户名 / 认证方式 / 密钥 / 标签)与快速命令 chips(单击执行)
- 新增 **搜索与筛选**:按连接名、主机或标签搜索;支持「全部 / 未连接」状态筛选
- 新增 **连接工具栏**:打开终端 / 断开 / 修改 / 删除 一键操作
- 重构 **新建/编辑连接对话框**(new-connection-v3 设计稿):
- 新增「测试连接」按钮,保存前验证可达性与认证
- 新增「复制连接」功能
- 新增 **连接标签**(tags)与会话备注(note)
- 新增 **跳板机配置**(Jump Host):启用后通过跳板机建立 SSH 隧道
- 新增 **启动后自动执行命令**(startupCommand,每行一条)
- 新增终端 **光标样式**(block / bar / underline)与 **行高** 设置
- 新增串口配置字段(serialPort / baudRate,规划中)
- 新增 `local` 协议类型(本地 Shell)
- 侧边栏与图标栏布局重构,新增「连接管理」入口,默认激活视图改为 `connections`
- 国际化新增 80+ 条中英文文案
**v1.0.2(2026-08-14)** — 阶段二功能增强与 Zmodem 修复
- 新增 **快速连接** 栏(`user@host[:port]` 格式),无需保存会话即可一键连接,成功后可选保存为正式会话
- 新增 **新建连接** 按钮(侧边栏「快速连接 / 新建连接 / 新建分组」三按钮并列)
- 新增 **Zmodem 文件传输**(rz / sz):协议字节拦截、文件选择对话框、进度状态条、传输完成后终端自动恢复
- 新增 **终端分屏**:1×1 / 1×2 / 2×1 / 2×2 四种布局,每个分屏独立渲染终端,独立 shell 流
- 新增 **命令历史记录**:按会话隔离,↑/↓ 回看,持久化存储
- 新增 **会话模板**:可将现有会话保存为模板,新建会话时继承默认配置(不含敏感信息)
- 新增 **批量执行 / 广播**:多选会话后批量执行命令或广播输入
- **快速连接智能凭据复用**:检测到相同 host+port+username 的已保存会话时,自动复用其认证凭据、跳板机和代理配置
- 完善 Monitor 监控面板自适应:ResizeObserver 修复最大化 / 还原后图表尺寸
- **Zmodem 协议健壮性修复**:ZRINIT 重试头处理、ZNAK 头捕获、keepalive 不覆盖 handler、二进制数据编码无损传输
- **SFTP 通道缓存复用**:避免频繁创建通道触发服务器 MaxSessions 限制
**v1.0.1(2026-08-12)** — 阶段一修复与增强
- 新增端口转发管理界面(本地/远程/动态转发,随连接生命周期展示)
- 新增终端 Ctrl+F 搜索(高亮、大小写、正则、上下定位)
- 新增快捷键设置(可配置、冲突检测、恢复默认)
- 新增全局网络代理(HTTP / SOCKS4 / SOCKS5),会话级可覆盖
- 新增主密码安全锁(自动锁定、失败次数上限、锁定遮罩)
- WSL 会话改为真实 `wsl.exe` 会话;RDP/VNC/串口标记“规划中”并禁止创建
**v1.0.0(2026-08)** — 首个完整版本
### 版本号规则
采用语义化版本(SemVer):
```text
主版本.次版本.修订号
```
| 版本段 | 含义 |
|--------|------|
| 主版本 | 重大架构调整或不兼容变更 |
| 次版本 | 新增功能(向后兼容) |
| 修订号 | 缺陷修复与细节优化 |
### 更新日志
#### v1.0.12(2026-09-01)
> i18n 校验器字典键校验、快捷键消息可翻译化、AI Agent 窄栏自适应、英文版文档
**✨ 新增功能**
- **英文版文档**(`README_EN.md`):与中文版 `README.md` 内容、结构、排版完全一致;两版顶部互相链接(`简体中文 | English`)实现中英文切换
- **i18n 校验器增强**(`scripts/check-renderer-i18n.cjs`,+84 行):
- 扫描范围扩展至 `src/renderer/config/`
- 解析 `i18n/index.tsx` 中的 `zhMessages` 字典键
- 校验所有静态 `t('...')` 调用的键存在于字典,缺失时报告 `missing zhMessages key: `
- findings 排序细化(file → line → text)
**🔨 重构与增强**
- **快捷键校验消息可翻译化**(`src/renderer/config/shortcuts.ts`):
- 硬编码中文错误消息改为可翻译英文源键
- `缺少 ${cmd} 的快捷键` → `Invalid shortcut configuration`(快捷键配置无效)
- `${combo} 已被 ${prev} 与 ${cmd} 重复绑定` → `Shortcut already assigned: {shortcut}`(快捷键已被占用:{shortcut})
- **zhMessages 字典补充**:`tasks`(任务)/ `Read-only`(只读)/ `Issues`(问题)/ `Compose operation plan`(Compose 操作计划)/ `CPU 18%` / `Region`(区域);移除重复 `System` 条目并归位至主题区
- **AI Agent 面板窄栏布局修复**(`AgentRunPanel` + `AiChat.css`):
- Inspector 窄栏(`.ai-panel-root--inspector`)下控制行改为单列自适应
- 模型选择 / 终端选择 / 运行按钮全宽(`ai-composer-control` / `ai-agent-run-action`)
- `popupMatchSelectWidth` 防止下拉菜单溢出容器;控制行 `min-width: 0` 防止栅格溢出
**📚 测试**
- 新增测试:应用主题标签中文覆盖(Light/Dark/System/Ocean/Graphite/Sand → 浅色/深色/系统/海洋/石墨/沙砾)
- 新增测试:快捷键校验消息可翻译性(`Invalid shortcut configuration`、`Shortcut already assigned: {shortcut}`)
**📦 安装包**
- Windows: `FinalZero Setup 1.0.12.exe`
- macOS: `FinalZero-1.0.12.dmg` / `FinalZero-1.0.12-mac.zip`(需在 macOS 上构建)
#### v1.0.11(2026-08-31)
> 应用主题扩展、终端主题系统、macOS 打包、i18n 全面覆盖、TerserPlugin 压缩
**✨ 新增功能**
- **应用主题扩展**:`ThemeType` 从 `dark/light/system` 扩展到 6 种(新增 `ocean` / `graphite` / `sand`)
- `APP_THEME_OPTIONS` 数据驱动,设置与布局共用同一列表
- `resolveApplicationTheme` 解析 `system` 主题为当前系统明暗基底
- `isDarkApplicationTheme` 判定主题明暗
- **终端主题系统**(`TerminalThemeType`):11 种可移植终端配色
- `default` / `dark` / `light` / `solarized-dark` / `solarized-light` / `monokai` / `dracula` / `nord` / `gruvbox-dark` / `one-dark` / `tokyo-night` / `high-contrast`
- `default` 跟随应用主题明暗基底
- **终端配置解析**(`src/renderer/config/appConfig.ts`):`parseStoredTerminalConfig` 从 `app_config` 表解析 `lineHeight` / `letterSpacing` / `cursorStyle` / `cursorBlink` / `selectOnCopy` / `rightClickPaste` / `enableSuggestions` / `enableKeywordHighlight` / `enableActionLinks` / `showLineNumbers` / `showTimestamps`
- `src/renderer/config/theme.ts` 提供归一化函数:`normalizeTerminalTheme` / `normalizeTerminalLineHeight` / `normalizeTerminalLetterSpacing` / `normalizeTerminalCursorStyle`
- **macOS 打包支持**:
- `package:mac` 脚本(平台校验 + build + rebuild + electron-builder `--mac`)
- electron-builder `mac` 配置(dmg + zip,`category: public.app-category.developer-tools`)
- 新增 `build/icon.icns` / `build/icon.png` / `build/icon-source.png`;更新 `build/icon.ico`(高清)
- **i18n 全面覆盖**(+528 行):几乎所有 UI 组件接入国际化
- 新增 `scripts/check-renderer-i18n.cjs` 检查脚本 + `check:i18n` npm script,扫描渲染层硬编码中文
**🔌 接口与类型变更**
- `ThemeType` 扩展:`'dark' | 'light' | 'system'` → 新增 `'ocean' | 'graphite' | 'sand'`
- 新增 `TerminalThemeType`(11 种)
- `AppConfig.terminalTheme` 由 `string` 改为 `TerminalThemeType`
- `AppConfig` 新增可选字段:`lineHeight` / `letterSpacing` / `cursorStyle`(`'block' | 'underline' | 'bar'`)/ `cursorBlink`
**🔨 构建与重构**
- **TerserPlugin 生产压缩**:webpack 生产构建启用 `TerserPlugin`(`parallel: 4`),`minimize: isProduction`;新增 devDependency `terser-webpack-plugin@5.3.14`
- 增强 `design-system.css`(+302 行):新增 ocean / graphite / sand 主题样式与终端主题变量
- 重构接入新主题与 i18n:`TerminalView`(+132/-行)、`SftpPanel`(+210/-行)、`MonitorPanel`(+159/-行)、`TerminalSettings`(+353/-行)、`SessionTree`(+108/-行)、`AppearanceSettings`(+111/-行)、`GeneralSettings`(+87/-行)等
**📚 测试**
- 新增单元测试:`appConfig` / `theme` / `i18n`
**📦 安装包**
- Windows: `FinalZero Setup 1.0.11.exe`
- macOS: `FinalZero-1.0.11.dmg` / `FinalZero-1.0.11-mac.zip`(需在 macOS 上构建)
#### v1.0.10(2026-08-30)
> 审计日志查看器、诊断日志开关、RDP 孤儿 profile 清理、设置深链导航
**✨ 新增功能**
- **审计日志查看器**(`AuditLogPanel` + `AuditHandlers`):
- 支持按动作 / 级别 / 时间范围 / 关键词查询、排序、分页
- CSV 导出(UTF-8 BOM,含 **CSV 公式注入防护**,对 `=` / `+` / `-` / `@` / `\t` / `\r` 开头单元格前置 `'`)
- 导出上限 10000 条,分页 100 条
- 新增 IPC `audit.query` / `audit.export`
- `AuditLogRepository` 重写(+394/-行)
- **诊断日志开关**(`SecureLogger.setEnabled`):普通诊断日志可关闭,安全审计事件不受影响
- **RDP 孤儿 profile 清理**(`RdpService.cleanupOrphanProfiles`):启动时清理 24h 以上的 `finalzero-rdp-*.rdp` 临时文件,非递归,拒绝无关文件
- **设置深链导航**(`settingsNavigation`):`requestSettingsCategory` / `consumeRequestedSettingsCategory` 支持从其他视图跳转到指定设置子页
**🔌 接口变更**
- 新增 IPC:`audit.query`、`audit.export`
- 新增共享类型:`AuditLogEntry`、`AuditLogQuery`、`AuditLogQueryResult`、`AuditLogExportRequest`、`AuditLogExportResult`、`AuditLogLevel`
- `SettingsCategory` 新增 `'audit'`
**🔨 重构与增强**
- `AuditLogRepository` 重写(查询 / 导出 / actionTypes 聚合)
- `CloudSyncService` 增强(+173 行):审计日志纳入同步分类
- `NetworkSettings` 重构(+168/-行)
- `LogsSettings` UI 增强(诊断日志开关)
- `SecureLogger` 新增 `enabled` 字段与 `setEnabled` 方法
**📚 测试**
- 新增单元测试:`AuditLogRepository`、`AuditHandlers`、`auditLogDetails`、`SecureLogger`、`RdpServiceCleanup`
**🌐 国际化**
- i18n 补充审计日志、诊断日志等中英文文案
**📦 安装包**
- `FinalZero Setup 1.0.10.exe`
#### v1.0.9(2026-08-29)
> 容器管理(Docker)、AI 多模态附件、主机密钥确认协调器、递归分屏布局
**✨ 新增功能**
- **容器管理(Docker)**:
- 统一 Docker 运维工作台 `ContainerCenter`,标签页覆盖容器 / 镜像 / 网络 / Compose / Swarm
- 容器:列表 / 详情 / 启停 / 重启 / 删除 / 创建(preflight 预检)/ exec 进入终端(`DockerExecWorkspace` / `DockerExecTerminal`)
- 镜像:列表 / 拉取(含取消、进度流)
- 网络:列表;Swarm:stack 列表
- Compose:项目列表 / YAML 预览 / up-down-restart 操作预检与影响评估
- 看板 `docker.dashboard` 汇总统计;可观测性 `docker.observability.subscribe` 实时事件与 stats 订阅流
- **本地传输**:直连本机 Docker Engine(named pipe / unix socket)
- **远程传输**(`RemoteDockerTransport`):经已有 SSH 连接的 ssh2 channel 桥接为 Node HTTP socket,复用 `DockerServicePool`,无需远程额外开端口
- `docker.probe` 探测目标可用性与版本
- **AI 多模态附件**(`AiAttachmentService`):
- 图片(png/jpg/jpeg/webp/gif,≤5MB)与文本(256+ 扩展名,≤256KB)附件
- 上限 5 个 / 总计 10MB;10 分钟 TTL 自动释放
- 新增 IPC `ai.attachments.pick` / `ai.attachments.release`
- **主机密钥确认协调器**(`HostKeyVerificationCoordinator`):桥接 ssh2 异步 `hostVerifier` 回调到渲染进程确认对话框与已知主机仓库;reject / accept / remember 三种动作;60s 超时
- **递归分屏布局**(`RecursiveSplitLayout`):终端递归 split 树的可视化布局组件,配合 v1.0.8 的 `splitLayoutStore`
- **管理目标仓库**(`ManagedTargetRepository`):绑定 Docker 端点的管理目标持久化
**🛡️ 安全与审批**
- **Compose Planner**(`DockerComposePlanner`):YAML 解析、复杂度/资源限制校验、阻断码(blocker codes)与风险提示;操作前 preflight 返回影响范围
- 容器 / 资源创建 preflight:返回 normalized 请求、风险提示(risk notice)与影响(impact)
- 资源删除 preflight:返回依赖关系,确认后才执行
- 注册表凭据(`DockerRegistryCredentialRepository`):私有仓库凭据加密存储,支持 list / delete
**🔌 接口变更**
- 新增 **IPC 通道集中声明**(`src/shared/ipcChannels.ts`):`IPC_INVOKE_CHANNELS` 白名单 + 事件通道,契约测试 `ipcChannels.test.ts` 守护 preload 与主进程一致性
- 新增 IPC:`docker.*`(container / image / network / compose / swarm / dashboard / observability / probe / registry)、`ai.attachments.pick` / `ai.attachments.release`
- 新增仓库:`ManagedTargetRepository`、`DockerRegistryCredentialRepository`
- preload 新增 247 行 Docker / 附件 / 管理目标 API 桥接
- SSH `hostVerifier` 接入 `HostKeyVerificationCoordinator`
**🔨 重构与增强**
- AI 聊天:会话选择(`aiConversationSelection`)、滚动管理(`aiChatScroll`)、附件 UI
- `AiSettings` / `AiModelSelect` / `AiPanel` / `AgentRunPanel` 增强
- `SshService` host key 验证接入协调器
- `.gitignore` 新增 `.qa/`
**📚 测试**
- 新增大量单元测试:DockerHandlers / DockerService / DockerComposeAnalyzer / DockerComposePlanner / RemoteDockerTransport / NamedPipeDockerTransport / AiAttachmentService / AiServiceMultimodal / HostKeyVerificationCoordinator / ManagedTargetRepository / DockerRegistryCredentialRepository / ipcChannels / dockerComposeViewModel / dockerContainerCreateViewModel / dockerExecWorkspace / dockerObservabilityViewModel / dockerResourceCreateViewModel / dockerSwarmViewModel / aiChatScroll / aiConversationSelection
**🌐 国际化**
- i18n 补充 480+ 条中英文文案
**📦 安装包**
- `FinalZero Setup 1.0.9.exe`
#### v1.0.8(2026-08-28)
> 远程文件编辑器安全写、终端分屏树重构、Inspector 面板懒加载
**✨ 新增功能**
- **远程文件编辑器安全写**(`SftpSafeWrite`):
- 版本指纹(SHA-256 + size + mtime)识别等长同秒修改,避免静默覆盖他人改动
- 写入前冲突检测:冲突时返回远端当前内容与版本(`status: 'conflict'`),由前端展示 diff
- `force` 选项仅在用户确认后使用,覆盖前仍创建恢复副本(`backupPath`)
- 成功返回新版本指纹与备份路径(`status: 'saved'`)
- **共享工具 `remoteEditSafety`**:
- `sameRemoteFileVersion` 版本比对
- `buildTextDiffSummary` 线性复杂度文本 diff 摘要(仅展开首尾公共区之间的变化块,避免对 2MB 文本执行 O(n²) LCS)
**🔨 重构与增强**
- **终端分屏树重构**(`splitLayoutStore`):
- 递归 split 树(horizontal / vertical,ratio 0.15~0.85),最多 12 个 pane
- 树节点使用稳定 id,调整比例或继续嵌套时不重挂载已有终端
- `TerminalTabs` 为唯一写入方;命令 / AI 等面板只读取某连接当前存活的 `streamId`
- **终端标签栏**(`TerminalTabs`):适配新分屏树,关闭 pane 后不复用旧 id
- **Inspector 面板懒加载**(`lazyWorkspacePanels`):`React.lazy` 拆分 AI / SFTP / Monitor 面板为独立 chunk(`panel-ai` / `panel-sftp` / `panel-monitor`),`DeferredWorkspacePanel` Suspense 兜底,减少首屏包体
- **Webpack 分包**:`chunkFilename: chunks/[name].[contenthash:8].js` + 生产构建 `clean` 选项,清理 dev hot-update 陈旧产物
**🔌 接口变更**
- 新增 IPC 通道:`sftp.readFileVersioned`(返回 `SftpVersionedFile`)、`sftp.safeWriteFile`(请求 `SftpSafeWriteRequest`,返回 `SftpSafeWriteResult`)
- 新增共享类型:`SftpFileVersion`、`SftpVersionedFile`、`SftpSafeWriteRequest`、`SftpSafeWriteResult`
**📚 测试**
- 新增单元测试:`tests/__tests__/main/sftpSafeEdit.test.ts`、`tests/__tests__/renderer/splitLayoutStore.test.ts`、`tests/__tests__/shared/remoteEditSafety.test.ts`
**🔧 其他**
- SftpService / SftpHandlers 扩展版本化读写实现
- RemoteFileEditor 冲突 UI 与 diff 展示
- i18n 补充 20+ 条中英文文案;样式增强
**✅ 验证**
- 23/23 测试套件通过
- 生产构建通过(启用 chunk 分包与 clean)
**📦 安装包**
- `FinalZero Setup 1.0.8.exe`
#### v1.0.7(2026-08-27)
> WorkspaceShell 工作区外壳、Electron 原生模块工具链
**✨ 新增功能**
- **WorkspaceShell 工作区外壳**:基于 Navop 竞品分析重构主界面骨架;删除固定 44px 顶部工作区面板,导航交给 IconSidebar,连接状态交给终端标签与 StatusBar,业务页面获得完整垂直空间
- **可恢复首页 WorkspaceHome**:单列布局展示可恢复任务入口;连接型视图重启后降级回连接页,不伪造已恢复会话(安全视图与非敏感布局偏好恢复)
- **统一 Inspector 工作区面板**(`WorkspaceInspector`):复用命令 / AI / 远程文件 / 监控四个业务面板;支持 tab 切换、折叠、300~560px 拖拽宽度记忆;宽屏 dock、中屏右侧 overlay、800px 最小窗口 bottom sheet
- **资源栏自适应行为**:Sidebar 支持 `auto` / `dock` / `overlay` 三种行为;窄屏强制 overlay + 遮罩 + Escape 关闭 + 持久化开合状态,不再挤压主工作区
- **工作区偏好持久化**(`workspacePreferences`):lastView / inspector / sidebar 配置写入 localStorage(key `finalzero.workspace.preferences.v1`)
- 新增 UI action `SET_SIDEBAR_COLLAPSED`:程序化控制侧边栏折叠
**🔨 构建与工具链**
- **Electron 原生模块工具链**(FZ-NV-001):
- `.nvmrc` 固定 Node 版本
- `scripts/run-jest-electron.cjs`:测试统一在 Electron ABI 下运行(`--runInBand`)
- `scripts/verify-electron-native.cjs`:真实加载 SQLite / pty / Serial bindings 原生模块自检
- `postinstall` 钩子自动重建原生模块;`rebuild:electron` 拆分;`verify:native` 新增
- `package` / `package:win` / `pack:dir` 全部纳入 rebuild 步骤,安装/打包只重建 ABI 敏感的 SQLite
- **ESLint 配置**:`.eslintrc.cjs` + `eslint-plugin-react-hooks` ^4.6.2 规则
**🔌 接口变更**
- 新增 UI action `SET_SIDEBAR_COLLAPSED`(payload: boolean)
- 新增 `WorkspacePreferences` 类型与 `finalzero.workspace.preferences.v1` localStorage 持久化
**📚 文档与测试**
- 新增竞品分析文档 `docs/Navop-Comparison-and-Improvement-Plan.md`;`docs/v1.2-Sprint-Plan.md` 旧 Sprint 标记为历史
- 新增单元测试 `tests/__tests__/renderer/workspacePreferences.test.ts`
- 数据库测试(`Database.test.ts` / `SessionRepository.test.ts`)适配 Electron 测试环境
- `SessionConfig` 串口注释校准(不再标记“规划中”)
**🔧 其他**
- MonitorPanel / SftpPanel / AiPanel / AiChat.css 细节增强
- i18n 补充 45+ 条中英文文案
**✅ 验证**
- 20/20 测试套件、298/298 用例通过
- 生产构建通过;lint 0 errors / 62 条已记录历史 warnings
- Electron 28.3.3 / Node 18.18.2 / ABI 119 原生模块自检通过
- 1188×794 与 788×644 两档真实窗口已核验资源栏 dock/overlay、遮罩、Escape 与首页单列布局
**📦 安装包**
- `FinalZero Setup 1.0.7.exe`
#### v1.0.6(2026-08-15)
> AI 多模型与流式推理、云同步分类、SQL 日志脱敏
**✨ 新增功能**
- **AI 多模型选择**:Ask / Agent 聊天界面可切换已启用的模型;新增 `AiModelSelect` 组件与 `AiModelResolver` 服务,按 `isDefault` 标志解析默认模型,旧数据 `configuredModelId` 兼容回退
- **AI 流式响应 + 推理内容分离**:新增 `AiStreamDelta`(kind: `content` / `reasoning`);`AiMessage` / `AiStreamDone` 新增 `reasoningContent` 字段,将推理过程与最终答案分开存储与展示
- **AI Markdown 渲染**:基于 `react-markdown` + `remark-gfm` 渲染 GFM Markdown,代码块一键复制(`MarkdownMessage` 组件 + `AiChat.css`)
- **AI 思考过程面板**(`ThinkingPanel`):折叠展示 Provider 推理内容与 Agent 执行思考链,流式加载动画
- **终端上下文注入**:`terminalContextStore` 注册活动终端输出读取器;`AiChatRequest` / `AiAgentStartRequest` 新增 `terminalContext` 字段;主进程重新限制长度并脱敏后转发给 Provider
- **云同步分类勾选**:新增 `SyncCategory`(10 个数据域:settings / connections / groups / history / commands / credentials / aiConfig / aiHistory / fileTransfers / auditLogs);`DEFAULT_SYNC_CATEGORIES` 默认 auditLogs 不勾选;`CloudSyncSettings.categories` 字段;`syncCategorySettings` 工具函数
- **远端清空**:新增 `sync.clearRemote` IPC 通道,一键清空远端同步数据
- **同步展示增强**:`syncDisplay` 时间戳格式化(本地时区,无 locale 分隔符)
**🛡️ 安全增强**
- **SQL 日志脱敏**(`sqlLogRedaction`):自动检测含 `password` / `passphrase` / `private_key` / `api_key_enc` / `proxy_password` / `PRAGMA key` 的 SQL 语句,开发日志中以 `[REDACTED sensitive SQL]` 替代,防止凭据泄漏
**🔌 接口变更**
- 新增 IPC 通道:`sync.clearRemote`
- `AiChatRequest` / `AiAgentStartRequest` 新增 `modelId` 字段(模型选择)
- `AiChatRequest` 新增 `terminalContext: AiTerminalContext` 字段
- 新增流式事件 `AiStreamDelta`(kind: `content` / `reasoning`)
- `AiMessage` / `AiStreamDone` 新增 `reasoningContent` 字段
- `CloudSyncSettings` 新增 `categories: SyncCategorySelection` 字段
- 新增共享常量:`SYNC_CATEGORY_KEYS`、`DEFAULT_SYNC_CATEGORIES`、`SyncCategory`、`SyncCategorySelection` 类型
**🔨 构建**
- Webpack renderer 启用 `conditionNames: ['browser', 'import', 'default']`,修复 `react-markdown` / `vfile` 在渲染进程(nodeIntegration 禁用)中的 ESM 导出问题
**📚 测试**
- 新增 9 个单元测试:AiProviderRepository seed、sqlLogRedaction、AiModelSelect、syncCategorySettings、syncDisplay、terminalContextStore、AiModelResolver、AiServiceStream、CloudSyncService
**🌐 国际化**
- 补充 AI 模型选择、思考过程、同步分类等中英文文案
**📦 依赖**
- 新增 `react-markdown` ^10.1.0、`remark-gfm` ^4.0.1
**🧹 清理**
- 移除无关二进制 `mojian-blog.jar`
**📦 安装包**
- `FinalZero Setup 1.0.6.exe`
#### v1.0.5(2026-08-15)
> AI 助手、云同步与终端增强
**✨ 新增功能**
- **AI 助手 - Ask 模式**:自然语言生成 Shell 命令;自动风险标注(safe / caution / dangerous),`dangerous` 强制二次确认;上下文记忆与会话隔离
- **AI 助手 - Agent 模式**:基于 ReAct(Reason + Act)的自主多步执行;思考链 + 工具调用可视化;写 / 删 / 改 / 远程执行等敏感操作走审批流,支持中途中止与回滚预览
- **云同步**:WebDAV 与 S3 兼容协议;多设备配置加密同步(AES-256-GCM 字段级加密,密钥由主密码派生);冲突检测与解决策略(`last-writer-wins` / `manual-merge`)
- **终端行号 / 时间戳 Gutter**:左侧独立列渲染逻辑行号与到达时间戳,滚动联动;「终端设置」可独立开关 `showLineNumbers` / `showTimestamps`
- **终端关键词高亮**:基于 xterm `Decoration` API 的轻量高亮,扫描完整行并锚定 marker(scrollback 裁剪后仍保留);内置规则覆盖 error / warn / success / info / debug、日期时间、URL、UUID、版本号、Shell 提示符
- **终端动作链接**:自动识别 IPv4、`host:port`、归档文件名(`.tar.*` / `.zip` / `.7z` 等),渲染为可点击链接,支持复制 / 下载 / 复制主机端口
- **AI 设置面板**:Provider 选择(OpenAI / Azure / Ollama / 自定义 BaseURL)、模型、温度、最大 tokens、Ask 风险规则开关
- **同步设置面板**:协议、端点、凭据、桶名 / 路径、自动同步间隔、冲突解决策略
**🔌 接口变更**
- 新增 IPC 通道:`ai.chat / ai.cancel / ai.providers.*`、`ai.agent.start / step / approve / cancel`、`sync.settings.* / sync.now / sync.status`
- 新增数据库仓库:`AiProviderRepository`、`AiConversationRepository`、`AgentRunRepository`(持久化 Agent 执行记录)
- 新增 `shared/aiRiskRules.ts`(共享风险规则)与 `shared/types/index.ts` 中的 AI / Sync 类型扩展
**🛡️ 安全增强**
- 云同步凭据(WebDAV 密码、S3 SecretKey)字段级 AES-256-GCM 加密存储
- Agent 执行的敏感操作全量审计日志,便于事后追溯
**📚 文档**
- 新增设计文档:`docs/AI-Agent-Mode-Design.md`、`docs/AI-Assistant-Ask-Mode-Design.md`、`docs/Nyaterm-Comparison-Analysis.md`
- 新增单元测试:`tests/__tests__/shared/aiRiskRules.test.ts`
- README 补充 AI 助手、云同步章节及使用示例
**🌐 国际化**
- 补充 AI 助手、云同步、终端增强相关中英文文案
**📦 安装包**
- `FinalZero Setup 1.0.5.exe`
#### v1.0.4(2026-08-15)
> RDP / VNC 远程桌面、目录同步、安全锁与协议矩阵扩展
**✨ 新增功能**
- **RDP 远程桌面**:调用系统 `mstsc.exe` 独立窗口承载;支持域(Domain)、屏幕模式(窗口 / 全屏)、NLA 网络级认证;凭据由系统窗口交互输入,不写入配置文件
- **VNC 远程桌面**:基于 noVNC 的独立 `VncPanel` 标签页,通过 `VncService` 桥接
- **目录同步(DirSync)**:远端 ⇄ 本地双向目录同步;差异预览(only-remote / only-local / newer-remote / newer-local / same);三色执行结果(成功 / 失败 / 跳过)
- **SFTP 打包下载**:远端多选文件 / 目录,一键打包到本地压缩包
- **远程文件编辑器**:`sftp.readFile / sftp.writeFile` 直读直写远端文本文件,省去下载再上传
- **主密码安全锁**:`lock.*` 完整 IPC;主密码 + 自动锁定超时 + 失败次数上限 + 暂时锁定(lockedUntil)+ 锁定遮罩
- **端口转发完善**:`forward.create / stop / delete / list`;`ForwardInfo` 报告实际监听端口(actualPort)、运行状态、错误;支持 `autoStart`
- **SSH Agent 认证**:新增认证通道,使用系统 SSH Agent 中已加载的密钥
- **WOL 局域网唤醒**:`wol.send` 向已配置 MAC 地址发送魔术包
- **协议矩阵扩展**:RDP、VNC、WSL、本地 Shell(`local`)正式可用;串口服务(`SerialService`)与 IPC 框架就绪
- **新服务**:`RdpService`、`VncService`、`WolService`、`SerialService`、`LocalShellService`、`DirSyncService`
- **新 IPC 通道**:`wol.*`、`lock.*`、`forward.*`、`serial.list`、`commandHistory.*`、`sftp.syncPreview`、`sftp.syncApply`、`sftp.packDownload`、`sftp.readFile`、`sftp.writeFile`
- **新渲染组件**:`RdpPanel`、`VncPanel`、`DirSyncDialog`、`RemoteFileEditor`
- **Telnet 服务增强**:`TelnetService` 重构
- **会话仓库与连接管理器扩展**:标签(tags)、备注(note)、串口 / RDP / VNC 扩展字段持久化
- **国际化**:新增 ~90 条中英文文案(目录同步、打包下载、RDP/VNC 配置、跳板机、认证方式、安全锁等)
**🐛 修复与优化**
- SessionDialog 重构:新 v3 字段(跳板机、启动命令、光标样式、行高、标签、备注、串口、RDP/VNC/WSL 配置)统一接入
- SftpPanel 重构:集成目录同步入口、打包下载入口、远程文件编辑器入口
- ConnectionManagementView、MainContent 视图路由扩展(connections / terminal / sftp / rdp / vnc / monitor / commands / settings / keys)
- TerminalTabs 新增远程桌面标签(rdp / vnc)支持
- Monitor 采集新增 `uptime`、`systemInfo`(hostname / os / kernel / arch / cpuModel)缓存
#### v1.0.3(2026-08-15)
> 连接管理视图与新建连接对话框重构
**✨ 新增功能**
- **连接管理视图**:新增 `connections` 视图作为应用默认首页,选中会话后展示连接属性卡片(主机 / 端口 / 用户名 / 认证方式 / 密钥 / 标签)与快速命令 chips
- **搜索与筛选**:支持按连接名、主机或标签搜索;「全部 / 未连接」状态筛选
- **连接工具栏**:打开终端 / 断开 / 修改 / 删除 一键操作
- **新建/编辑连接对话框重构**(new-connection-v3 设计稿):
- 「测试连接」按钮,保存前验证可达性与认证
- 「复制连接」功能
- 连接标签(tags)与会话备注(note)
- 跳板机配置(Jump Host),通过跳板机建立 SSH 隧道
- 启动后自动执行命令(startupCommand,每行一条)
- 终端光标样式(block / bar / underline)与行高设置
- 串口配置字段(serialPort / baudRate,规划中)
- 新增 `local` 协议类型(本地 Shell)
**🐛 修复与优化**
- 侧边栏与图标栏布局重构,新增「连接管理」入口
- 默认激活视图改为 `connections`
- 国际化新增 80+ 条中英文文案
#### v1.0.0(2026-08)
> 首个完整版本
**✨ 新增功能**
- **连接管理**:SSH / SFTP / Telnet 会话,密码 / 私钥认证,代理、Keep-Alive、超时等高级配置
- **会话分组**:多级分组、收藏、搜索、拖拽排序、移动分组
- **多标签终端**:复制 / 重命名 / 标签颜色 / 关闭当前 / 其他 / 右侧 / 全部,每个标签页独立连接
- **连接详情**:单击查看详情,双击独立打开终端
- **系统监控**:状态栏 CPU / 内存 / 系统信息,超过 90% 红色告警,监控图表面板
- **SFTP 文件管理**:上传 / 下载、断点续传、暂停 / 恢复、传输队列持久化、记录清理、一键打开本地目录、可折叠面板
- **命令管理器**:分组管理、内置常用命令模板、双击执行
- **密钥管理**:SSH 私钥管理(界面遮蔽显示)、主机密钥校验
- **设置中心**:开机自启、启动时连接上次会话、关闭窗口行为、语言切换、外观、终端、网络、快捷键、日志、关于
- **连接历史**:记录与快速重连
- **配置导入 / 导出**:敏感数据加密处理
- **系统托盘**:最小化到托盘、单实例运行、审计日志
**🔒 安全增强**
- SQLCipher 4 整库加密(主密钥由 Windows DPAPI 管理)
- 密码 / 私钥等敏感字段 AES-256-GCM 二次加密
- 明文数据库启动时自动迁移为加密库(备份、回滚、清理保护)
**🐛 修复与优化**
- 修复多标签页内容同步、关闭一个标签导致全部关闭等问题,标签页相互独立
- 修复分组收藏显示、分组缩进过宽、多级分组移动、拖拽排序等交互问题
- 修复传输记录在界面切换后丢失、暂停后仍在传输等问题
- 优化设置项生效逻辑与界面布局
> 后续版本的更新内容将在此处持续补充。
---
## 未来功能规划
> 以下为规划中方向,以最终发布为准。
| 方向 | 说明 | 状态 |
|------|------|------|
| i18n 校验器字典键校验 | 静态 t() 调用键必须存在于 zhMessages | ✅ v1.0.12 已实现 |
| 快捷键消息可翻译化 | 校验错误改为英文源键 + 字典翻译 | ✅ v1.0.12 已实现 |
| AI Agent 窄栏自适应 | Inspector 窄栏控制行单列全宽 | ✅ v1.0.12 已实现 |
| 英文版文档 | README_EN.md 与中文版结构一致 + 语言切换 | ✅ v1.0.12 已实现 |
| 应用主题扩展 | dark/light/system + ocean/graphite/sand,数据驱动 | ✅ v1.0.11 已实现 |
| 终端主题系统 | 11 种 TerminalThemeType,default 跟随应用主题 | ✅ v1.0.11 已实现 |
| macOS 打包 | package:mac + dmg/zip + icon.icns | ✅ v1.0.11 已实现 |
| i18n 全面覆盖 | +528 行,几乎所有组件接入 + check:i18n 脚本 | ✅ v1.0.11 已实现 |
| TerserPlugin 压缩 | webpack 生产构建 parallel:4 压缩 | ✅ v1.0.11 已实现 |
| 审计日志查看器 | 查询/排序/分页 + CSV 导出(公式注入防护) | ✅ v1.0.10 已实现 |
| 诊断日志开关 | SecureLogger 可关闭诊断日志,安全事件不受影响 | ✅ v1.0.10 已实现 |
| RDP 孤儿 profile 清理 | 启动时清理 24h+ finalzero-rdp-*.rdp 临时文件 | ✅ v1.0.10 已实现 |
| 设置深链导航 | request/consumeSettingsCategory 跳转指定子页 | ✅ v1.0.10 已实现 |
| 容器管理(Docker) | 容器/镜像/网络/Compose/Swarm,本地+远程 SSH 隧道传输,preflight+审批 | ✅ v1.0.9 已实现 |
| AI 多模态附件 | 图片+文本附件,TTL 自动释放,多模态 Provider | ✅ v1.0.9 已实现 |
| 主机密钥确认协调器 | ssh2 hostVerifier 桥接确认对话框 + 已知主机仓库 | ✅ v1.0.9 已实现 |
| 递归分屏布局 | RecursiveSplitLayout 可视化递归 split 树 | ✅ v1.0.9 已实现 |
| IPC 通道集中声明 | ipcChannels 白名单 + 契约测试守护一致性 | ✅ v1.0.9 已实现 |
| 远程文件编辑器安全写 | SHA-256 版本指纹 + 冲突检测 + 恢复副本 | ✅ v1.0.8 已实现 |
| 终端分屏树重构 | 递归 split 树,最多 12 pane,稳定 id | ✅ v1.0.8 已实现 |
| Inspector 面板懒加载 | React.lazy 拆分 chunk,减少首屏包体 | ✅ v1.0.8 已实现 |
| Webpack chunk 分包 | contenthash chunkFilename + clean | ✅ v1.0.8 已实现 |
| WorkspaceShell 工作区外壳 | 删除顶部面板,业务页面获得完整垂直空间 | ✅ v1.0.7 已实现 |
| 可恢复首页 | 单列布局任务入口,重启后降级回连接页 | ✅ v1.0.7 已实现 |
| 统一 Inspector 面板 | 复用命令/AI/远程文件/监控,dock/overlay/sheet | ✅ v1.0.7 已实现 |
| 资源栏自适应 | auto/dock/overlay,窄屏遮罩 + Escape + 持久化 | ✅ v1.0.7 已实现 |
| Electron 原生模块工具链 | `.nvmrc` + run-jest-electron + verify:native + postinstall | ✅ v1.0.7 已实现 |
| AI 多模型选择 | Ask / Agent 切换已启用模型,`isDefault` 解析默认 | ✅ v1.0.6 已实现 |
| AI 流式响应 + 推理分离 | `content` / `reasoning` 分流,`reasoningContent` 独立存储 | ✅ v1.0.6 已实现 |
| AI Markdown 渲染 | `react-markdown` + `remark-gfm`,代码块复制 | ✅ v1.0.6 已实现 |
| AI 思考过程面板 | 折叠展示推理与 Agent 思考链 | ✅ v1.0.6 已实现 |
| 终端上下文注入 | 活动终端输出作为 AI 上下文,主进程脱敏 | ✅ v1.0.6 已实现 |
| 云同步分类勾选 | 10 个数据域独立勾选,auditLogs 默认关 | ✅ v1.0.6 已实现 |
| SQL 日志脱敏 | 凭据相关 SQL 自动 `[REDACTED]` | ✅ v1.0.6 已实现 |
| AI 助手(Ask / Agent) | 自然语言命令生成 + ReAct 自主执行 + 审批流 | ✅ v1.0.5 已实现 |
| 云同步 | WebDAV / S3 加密配置同步 + 冲突解决 | ✅ v1.0.5 已实现 |
| 终端行号 / 时间戳 Gutter | 左侧独立列,滚动联动 | ✅ v1.0.5 已实现 |
| 终端关键词高亮 | xterm Decoration 内置规则集 | ✅ v1.0.5 已实现 |
| 终端动作链接 | IPv4 / host:port / 归档名自动链接 | ✅ v1.0.5 已实现 |
| RDP 远程桌面 | `mstsc.exe` 独立窗口承载,域 / 屏幕模式 / NLA 支持 | ✅ v1.0.4 已实现 |
| VNC 远程桌面 | noVNC 渲染 + `VncService` 桥接 | ✅ v1.0.4 已实现 |
| 目录同步(DirSync) | 远端 ⇄ 本地双向同步,差异预览 + 执行 | ✅ v1.0.4 已实现 |
| 主密码安全锁 | 主密码 + 自动锁定 + 失败锁定 + 锁定遮罩 | ✅ v1.0.4 已实现 |
| 端口转发管理 | `forward.*` IPC,ForwardInfo,autoStart | ✅ v1.0.4 已实现 |
| SFTP 打包下载 / 远程文件编辑器 | 远端多选打包、直读直写文本文件 | ✅ v1.0.4 已实现 |
| SSH Agent 认证 / WOL 局域网唤醒 | Agent 通道 + `wol.send` 魔术包 | ✅ v1.0.4 已实现 |
| 命令历史 / 快捷键配置 | 会话隔离历史 + ShortcutMap | ✅ v1.0.4 已实现 |
| 终端分屏 UI | 1×1 / 1×2 / 2×1 / 2×2 分屏选择器 | ✅ v1.0.2 已实现 |
| 串口连接 | `SerialService` + `serial.list` + 完整串口参数表单 | ✅ v1.0.6 已实现 |
| 会话模板与批量部署 | 模板化创建、批量命令执行 / 广播 | ✅ v1.0.6 已实现 |
| 自动更新机制 | 应用内检查与静默下载更新 | 🔜 规划中 |
| 跨平台支持 | Linux / macOS 平台适配 | 🔜 规划中 |
| 插件化架构 | 支持第三方扩展 | 🔜 规划中 |
---
## 技术栈
| 类别 | 技术 | 版本 |
|------|------|------|
| 桌面框架 | Electron | 28 |
| 前端框架 | React | 18 |
| 编程语言 | TypeScript | 5 |
| UI 组件库 | Ant Design | 5 |
| 终端组件 | xterm.js | 5 |
| 网络协议 | ssh2、ssh2-sftp-client、telnet-stream | - |
| 数据存储 | better-sqlite3-multiple-ciphers(SQLCipher 4) | 9.4.5 |
| 图表库 | ECharts | 5 |
| 安全 | Windows DPAPI(safeStorage)、AES-256-GCM | - |
| 构建工具 | Webpack、electron-builder(NSIS) | - |
| 测试框架 | Jest | 29 |
---
## 目录结构
```text
FinalZero/
├── src/
│ ├── main/ # Electron 主进程
│ │ ├── database/ # 数据库连接、仓库、SQLCipher 加密迁移
│ │ │ ├── Database.ts
│ │ │ ├── DbEncryption.ts
│ │ │ ├── SessionRepository.ts
│ │ │ ├── GroupRepository.ts
│ │ │ ├── HistoryRepository.ts
│ │ │ ├── SshKeyRepository.ts
│ │ │ ├── HostKeyRepository.ts
│ │ │ ├── CommandRepository.ts
│ │ │ ├── SftpTransferRepository.ts
│ │ │ └── AuditLogRepository.ts
│ │ ├── ipc/ # IPC 处理器
│ │ │ ├── IpcRegistrar.ts
│ │ │ ├── SessionHandlers.ts
│ │ │ ├── SshHandlers.ts
│ │ │ ├── SftpHandlers.ts
│ │ │ ├── MonitorHandlers.ts
│ │ │ ├── KeyHandlers.ts
│ │ │ ├── DataHandlers.ts
│ │ │ ├── LocalFileHandlers.ts
│ │ │ └── SystemHandlers.ts
│ │ ├── security/ # 密钥链、加解密、安全日志
│ │ │ ├── SecurityManager.ts
│ │ │ ├── CryptoManager.ts
│ │ │ ├── DataCipher.ts
│ │ │ ├── KeychainManager.ts
│ │ │ ├── HostKeyManager.ts
│ │ │ ├── InputValidator.ts
│ │ │ └── SecureLogger.ts
│ │ └── services/ # SSH / SFTP / Telnet / 监控等服务
│ │ ├── ConnectionManager.ts
│ │ ├── SshService.ts
│ │ ├── SftpService.ts
│ │ ├── TelnetService.ts
│ │ ├── MonitorService.ts
│ │ └── PortForwardService.ts
│ ├── preload/ # 预加载脚本(contextBridge)
│ ├── renderer/ # React 渲染进程
│ │ ├── components/ # 界面组件
│ │ │ ├── commands/ # 命令管理器
│ │ │ ├── dialogs/ # 对话框
│ │ │ ├── layout/ # 布局组件
│ │ │ ├── monitor/ # 监控面板
│ │ │ ├── session/ # 会话管理
│ │ │ ├── settings/ # 设置页面
│ │ │ ├── sftp/ # SFTP 文件管理
│ │ │ └── terminal/ # 终端组件
│ │ ├── hooks/ # 自定义 React Hooks
│ │ ├── i18n/ # 国际化(中文 / English)
│ │ ├── store/ # 状态管理
│ │ ├── styles/ # 设计系统与全局样式
│ │ └── types/ # 渲染进程类型定义
│ └── shared/ # 共享类型与常量
├── scripts/ # 开发与数据库加密验证脚本
├── build/ # 应用图标等打包资源
├── docs/ # 项目文档
├── package.json
└── README.md
```
---
## 常见问题
加密之后,之前的连接和命令还在吗?
在。明文库会在启动时自动迁移为加密库,数据原样保留,迁移过程有备份和回滚保护。
为什么数据库文件拷到别的电脑打不开?
这是加密的预期行为。主密钥通过 Windows DPAPI 保存在当前账户下,跨机器 / 跨账户无法解密。请使用应用内的导入 / 导出功能迁移数据。
安装依赖后原生模块报 NODE_MODULE_VERSION 错误?
执行 `npm run rebuild`,或重新执行 `npm install` 恢复与 Electron 匹配的预编译二进制。
启动时提示"数据库加密迁移失败 / 文件被占用"?
请先关闭正在打开该数据库的程序(如 Navicat、DB Browser for SQLite 等),再重新启动应用。
如何反馈问题或建议新功能?
欢迎在项目的 Issue / 讨论区反馈,新功能会持续排期迭代,更新内容会同步到本文档的「更新日志」。
---
## 贡献指南
欢迎参与 FinalZero 项目贡献!无论是提交问题、建议功能、修复 Bug 还是完善文档,都是对项目的支持。
### 参与贡献
| 贡献方式 | 说明 |
|----------|------|
| 🐛 报告问题 | 在 Issue 中描述问题复现步骤与环境信息 |
| 💡 建议功能 | 在讨论区或 Issue 中描述使用场景与期望 |
| 🔧 提交代码 | 修复 Bug 或实现新功能,提交 Pull Request |
| 📝 完善文档 | 改进 README、代码注释或使用说明 |
| 🌍 翻译本地化 | 协助完善多语言支持 |
### 代码提交规范
提交信息(Commit Message)采用 [Conventional Commits](https://www.conventionalcommits.org/) 规范:
```text
():