# 文件管理（#/files）— AI 接续备忘

> **日期**: 2026-06-01  
> **用户确认**: 「好 你自己记住」— 本地改动**尚未 git commit**；生产已用 SCP/tar 部署，与仓库可能不一致。

---

## 1. 生产状态（api.synaglobal.vip）

| 项 | 状态 |
|----|------|
| 前端 | `web/app/` 已 tar+scp，prune 后 restart nexus |
| 后端 | `sync_v2.py`、`schemas.py`、`remote_path_validation.py` 曾 SCP 到服务器 |
| 健康 | `/health` → `ok` |
| 验证 | 用户需 Ctrl+Shift+R 强刷 `#/files` |

**下一任部署优先**：`git push` + 服务器 `git pull` + `supervisorctl restart nexus`，避免仅 SCP 漂移。

---

## 2. 本会话已完成功能

| 模块 | 说明 |
|------|------|
| browse 契约 | `items` + `fileBrowse.ts` |
| 页面迭代 | 下载、预览、路由 query、拖拽上传、symlink |
| 300KB 预加载 | `filePreload.ts` |
| 编辑器 | `FileEditorWorkbench.vue` 分屏+多标签+状态栏（非默认全屏） |
| v2 补齐 | 目录树、新建文件、压缩/解压、排序、扩展名筛选、快捷键 |
| 剪贴板 | `POST /sync/file-clipboard` + Ctrl+C/X/V |

---

## 3. 待入库（git status 快照 2026-06-01）

**修改**：`FilesPage.vue`、`sync_v2.py`、`schemas.py`、`MonacoEditor.vue`、`api/index.ts`、`types/api.ts` 等  

**新增**：`FileEditorWorkbench.vue`、`FileDirectoryTree.vue`、`useFilesClipboard.ts`、`useFilesHotkeys.ts`、`filePreload.ts`、`fileSort.ts`、`remote_path_validation.py`、`tests/test_remote_path_validation.py`、多篇 `docs/changelog/2026-06-01-files-*.md` 与设计文档  

**用户未要求 commit 时**：不要擅自 `git commit`；用户说「好」= 同意记住此状态，下次可代其提交。

---

## 4. 关键 API

- `POST /api/sync/browse`
- `POST /api/sync/read-file`（`max_size` 建议 307200）
- `POST /api/sync/write-file`
- `POST /api/sync/file-clipboard`（`mode`: `copy` \| `move`）
- `POST /api/sync/compress` / `decompress`

---

## 5. 未做 / 否决

- v2 设计中的跨目录 **剪贴板到不同服务器**（前端已拦）
- 公网 **8601**、嵌入式 Monaco 全站预加载（见项目 SSOT 否决项）

---

## 6. 相关 changelog（按主题）

- `2026-06-01-files-browse-fix.md`
- `2026-06-01-files-page-iteration.md`
- `2026-06-01-files-300k-preload.md`
- `2026-06-01-files-monaco-editor-fix.md`
- `2026-06-01-files-editor-panel.md`
- `2026-06-01-files-v2-complete.md`
- `2026-06-01-files-clipboard-transfer.md`
