# Changelog — Monaco 编辑器 + IDE 重构 + 文件管理增强

**日期**: 2026-05-30  
**Commit**: e8c1acb (含 15+ commits)  
**类型**: 功能增强 + 安全修复  
**涉及文件**:
- `web/app/files.html` — IDE 编辑器全面重构
- `web/app/api.js` — Monaco 预加载（后移入 files.html）
- `web/app/terminal.html` — path 参数自动 cd
- `web/app/servers.html` — 「文件」按钮
- `server/api/sync_v2.py` — chmod/compress/decompress 端点
- `server/api/schemas.py` — FileChmod/FileCompress/FileDecompress schema

## Monaco 编辑器

- 全局预加载：页面加载后 CDN 后台下载 Monaco (~2MB)
- IDE 面板：全屏替代模态框，支持多文件标签页
- 每个标签独立 Monaco 实例，切换保持状态
- 语法高亮：30+ 语言自动检测（conf→ini, sh→shell, py→python 等）
- Ctrl+S 保存 + 未保存指示器
- 状态栏：光标位置 + 语言 + 文件路径

## 文件管理增强

- 右键菜单：预览/下载/重命名/权限/复制路径/终端/压缩/解压/删除
- 文件树：IDE 左侧面板，点击文件打开/目录导航
- 最小化/恢复：底部标签栏
- 新建文件按钮（📄+）
- chmod 权限修改
- 压缩 tar.gz / 解压 tar.gz+zip
- 排序切换（名称/大小/时间）
- 文件类型筛选（.conf/.log/.sh/.py/.json/.yml/.txt）
- 文件预加载 + 缓存（≤1MB 文本文件，双击秒开）

## SSH 终端集成

- 工具栏「🖥 终端」按钮
- 新标签页打开 SSH + 自动 cd 到当前目录
- terminal.html 支持 path URL 参数

## 服务器列表

- 每行操作栏新增「文件」按钮（琥珀色）
- 点击直达文件管理，自动选中服务器

## 安全修复（审计 FINDING）

- H-01: esc() 加引号转义防 onclick XSS
- H-02: initialPath 路径白名单防命令注入
- H-03: 新建文件文件名白名单
- H-13: 移除 showModal 中已删除的 textarea 引用
- H-20: initialPath 仅首次连接 cd
- H-26: esc() 跨文件一致性

## 已知限制

- Monaco CDN 无 SRI（版本锁定 @0.45.0 降低风险）
- Nginx 静态文件缓存可能导致更新延迟（需 nginx -s reload）

## 是否需迁移/重启
- 需要重启后端服务（新增 chmod/compress/decompress 端点）
