# Changelog — 文件管理二期(递归 chmod + 不可读提示) | 项 | 内容 | |----|------| | 日期 | 2026-06-01 | | 类型 | 功能 | ## 摘要 - `POST /sync/chmod` 支持 `recursive`:仅目录、`test -d` 校验,禁止对 `/` 等系统路径递归;超时 300s。 - 权限对话框:目录可勾选「同时修改子项」并二次确认。 - 文件页:根据 `files-capability`、读失败与 ls 权限显示顶部提示条;不可读文件行内 `mdi-shield-lock`。 ## 动机 完成设计文档 §4.5 二期与 L1 不可读场景可观测性。 ## 涉及文件 - `server/utils/files_chmod_policy.py`(新建) - `server/api/schemas.py`、`server/api/sync_v2.py` - `frontend/src/utils/fileMode.ts` - `frontend/src/components/FilePermissionDialog.vue` - `frontend/src/pages/FilesPage.vue` - `tests/test_file_permissions.py` - `docs/design/plans/2026-06-01-files-phase2-recursive-read-hint.md` ## 迁移 / 重启 - 无 DB 变更;需重启后端并重新构建前端。 ## 验证 ```bash pytest tests/test_file_permissions.py -q ``` 浏览器:选非 root 服务器 → 顶栏提示;目录 chmod 勾选递归;打开无读权限文件触发提示更新。