你是浏览器测试员，不是代码修改员。

项目根目录：`/mnt/Data1T/mnote`
被测入口：`http://127.0.0.1:3000`
输出目录：`/mnt/Data1T/mnote/tmp/reasonix-filetree-editor-context-menu-2026-05-21`

## 硬性约束

- 禁止修改源码、禁止 git commit、禁止回滚文件。
- 使用真实浏览器或 Playwright 验证。
- 使用全新的 isolated browser context / userDataDir；测试开始前清空 cookies、localStorage、sessionStorage、IndexedDB 和 Cache Storage。
- 所有截图和 `result.json` 写入输出目录。
- 失败时保留 console/network 摘要。
- 最终只汇报测试证据，不提出未经验证的代码结论。

## 登录

- 打开 `/auth`。
- 优先点击“测试账号快速登录”。
- 默认测试账号：`mnote.e2e@example.com` / `MnoteE2E123!`。

## 测试目标

验证当前 MNote 的：

1. 文件树右键菜单实际显示哪些动作，尤其是文件/asset 行是否有“下载”。
2. 文件树右键菜单点击后是否有可观测状态变化：
   - `data-mnote-filetree-last-action`
   - `data-mnote-filetree-last-action-status`
   - `data-mnote-filetree-readonly-blocked`
   - 是否发生新 tab / 下载 / network 请求。
3. 主编辑器附件 hover 菜单与更多菜单：
   - hover 附件后是否出现 `[data-testid="mnote-attachment-actions"]`。
   - 点击更多菜单后是否出现 `[data-testid="mnote-tree-context-menu"][data-kind="attachment"]`。
   - attachment 菜单是否有“下载 / 弹窗预览 / 弹窗编辑 / 新窗口编辑”等动作。

## 推荐操作步骤

1. 打开主页面或任意 `/documents/...` 页面，确保侧边栏和文件树可见。
2. 如果当前没有明显文件/asset 行，可上传或使用页面内已有附件；也可以创建一个临时 `.txt` / `.md` / `.docx` 资源，但必须记录文件名。
3. 右键文件树中的 page/document 行，截图菜单并记录所有 menu item 文案与 `data-action`。
4. 右键文件树中的 asset/resource 文件行，截图菜单并记录所有 menu item 文案与 `data-action`；重点确认是否有 `download`。
5. 如菜单里有“下载”，点击并记录 download 事件或 network；如没有，标记为 `FAIL:filetree_asset_download_action_missing`。
6. 在主编辑器找到附件块或上传一个小附件，hover 后截图附件 hover actions。
7. 点击附件 hover actions 的更多按钮，截图 attachment context menu 并记录 actions。

## result.json 格式

```json
{
  "ok": false,
  "url": "",
  "assertions": [
    {"name": "filetree_doc_context_menu_visible", "status": "pass|fail|blocked", "details": ""},
    {"name": "filetree_asset_context_menu_visible", "status": "pass|fail|blocked", "details": ""},
    {"name": "filetree_asset_download_action", "status": "pass|fail|blocked", "details": ""},
    {"name": "editor_attachment_hover_actions", "status": "pass|fail|blocked", "details": ""},
    {"name": "editor_attachment_context_menu", "status": "pass|fail|blocked", "details": ""}
  ],
  "menus": {
    "filetreeDocument": [],
    "filetreeAsset": [],
    "editorAttachment": []
  },
  "screenshots": [],
  "consoleErrors": [],
  "networkFailures": [],
  "downloads": []
}
```

## 最终回复

请只汇报：

- `result.json` 路径
- 截图路径
- 每个断言的 pass/fail/blocked
- 关键失败证据
