# 2026-06-02 Monaco 编辑器核心预加载

## 变更摘要

选中服务器并成功列出目录后，在浏览器空闲时段后台预热 Monaco 核心（`editor.api2`）与通用 `editor.worker`，缩短文件编辑器首开时间。

## 动机

双击打开文件时首次需下载约 3.6MB 的 Monaco 核心，用户感知为卡顿。目录浏览成功后用户往往即将编辑文件，此时 idle 预加载可掩盖下载延迟。

## 涉及文件

- `frontend/src/monaco/preloadMonaco.ts`（新增）
- `frontend/src/monaco/setupMonacoEnv.ts`（`warmGenericEditorWorker`）
- `frontend/src/composables/files/useFilesBrowse.ts`（调用 `preloadMonacoCore`）
- `docs/design/specs/2026-06-02-monaco-core-preload-design.md`

## 是否需迁移/重启

- 仅前端构建产物；需 `vite build` + 上传 `web/app`，可选 `supervisorctl restart nexus`。

## 验证方式

1. 打开 `/app/#/files`，选择服务器等待目录列出。
2. DevTools Network：空闲后出现 `FileEditorWorkbench-*.js`、`editor.api2-*.js`、`editor.worker-*.js`（非双击瞬间）。
3. 双击文件：编辑器快速出现；打开 `.ts` 时仍单独加载 `ts.worker`。

## 回滚方式

删除 `useFilesBrowse.ts` 中的 `preloadMonacoCore()` 调用及 `preloadMonaco.ts` 即可。
