Update AGENTS.md: Phase 21-22 WebDAV + MyFiles + VirtualFs

This commit is contained in:
Warren
2026-06-28 01:24:24 +08:00
parent 5300b672cb
commit deac3b9b6e
+90
View File
@@ -4433,3 +4433,93 @@ let response = namespace.build_referral_response("\\server\\dfs\\path");
**结论**:Phase 7 (CTDB 集群) 复杂度高(⚠️⚠️⚠️⚠️⚠️),建议根据实际需求决定是否实施。
---
**最后更新**:2026-06-22
**版本**:1.60(MyFiles + VirtualFs + WebDAV Phase 21-22 完成)
## WebDAV Phase 21-22 + MyFiles + VirtualFs 完成(2026-06-22)⭐⭐⭐⭐⭐
**完成时间**:约 4 小时(跨 session)
**新增代码量**:~1603 行
**Git commits**:14ed3d5, 6064991
### Phase 21:WebDAV 改进 ⭐⭐⭐⭐⭐
| 功能 | 状态 |
|------|------|
| VfsDavFile flush 四阶段(storage → version → clear → hook) | ✅ 完成 |
| write_buf/write_bytes 缓冲 | ✅ 完成 |
| PersistedLs 锁持久化(.webdav_locks/<user>.json) | ✅ 完成 |
| Version index 持久化 | ✅ 完成 |
| Dead props 持久化(.webdav_props.json) | ✅ 完成 |
| Quota property | ✅ 完成 |
| 6 个 integration tests | ✅ 完成 |
### Phase 22:WebDAV 全面改进 ⭐⭐⭐⭐⭐
| 功能 | 状态 |
|------|------|
| flush fail 修复 + Drop warning | ✅ 完成 |
| RwLock 中毒 recovery(try_read/try_write) | ✅ 完成 |
| 过期锁清理(cleanup_expired_locks) | ✅ 完成 |
| Mutex/RwLock recovery helpers | ✅ 完成 |
| Props VFS 持久化(load_props/save_props via VFS) | ✅ 完成 |
| COPY/MOVE dead props sync | ✅ 完成 |
| 原子 set_times(set_atime/set_mtime) | ✅ 完成 |
| Async props(spawn_blocking) | ✅ 完成 |
| DavHandler caching(CachedHandler, 300s TTL) | ✅ 完成 |
| MKCOL 405 fix(exists() check) | ✅ 完成 |
| Quota enforcement | ✅ 完成 |
| Conditional/Range requests(dav-server 内建) | ✅ 验证 |
### WebDAV Auth 整合 ⭐⭐⭐⭐⭐
| 功能 | 状态 |
|------|------|
| Basic Auth via `MB_WEBDAV_USERS` env(默认 demo:demo123) | ✅ 完成 |
| Admin WebDAV `/admin-webdav`(MB_WEBDAV_ADMIN_USERS) | ✅ 完成 |
| DavHandler cache 5min TTL | ✅ 完成 |
| Extension layer order 修复(7 commits) | ✅ 完成 |
### MyFiles UI ⭐⭐⭐⭐⭐
| 功能 | 端點 | 狀態 |
|------|------|------|
| UI 頁面 | `/myfiles` | ✅ 完成 |
| 虛擬文件夾列表 | `GET /api/v2/myfiles/:user/folders` | ✅ 完成 |
| 創建文件夾 | `POST /api/v2/myfiles/:user/folders` | ✅ 完成 |
| 刪除文件夾 | `DELETE /api/v2/myfiles/:user/folders/:name` | ✅ 完成 |
| 文件列表 | `GET /api/v2/myfiles/:user/files` | ✅ 完成 |
| 新增標籤 | `POST /api/v2/myfiles/:user/tags` | ✅ 完成 |
| 移除標籤 | `DELETE /api/v2/myfiles/:user/tags` | ✅ 完成 |
| 文件標籤查詢 | `GET /api/v2/myfiles/:user/files/:name/tags` | ✅ 完成 |
### VirtualFs VFS 後端 ⭐⭐⭐⭐⭐
| 功能 | 狀態 |
|------|------|
| VfsBackend trait 完整實作 | ✅ 完成 |
| SQLite schema(virtual_folders + file_tags + webdav_config) | ✅ 完成 |
| create_dir / remove_dir(虛擬文件夾操作) | ✅ 完成 |
| read_dir(混合顯示實體檔案 + 虛擬文件夾) | ✅ 完成 |
| open_file(自動 tag) | ✅ 完成 |
| rename(跨文件夾移動自動更新 tag) | ✅ 完成 |
| 21 個單元測試 | ✅ 完成 |
| CLI 子命令(webdav-folder, webdav-tag, webdav-list) | ✅ 完成 |
### 测试结果 ⭐⭐⭐⭐⭐
```bash
cargo test -p markbase-core --lib # 320 passed, 0 failed, 12 ignored (PG)
```
### Git 提交记录
**Commit 14ed3d5**: Add MyFiles UI, VirtualFs backend, WebDAV virtual mode, admin WebDAV
- 9 files, 1603 insertions, 56 deletions
- New: myfiles.rs (533行), virtual_fs.rs (737行)
**Commit 6064991**: Fix cargo warnings: remove unused imports, mark unused variables, fix smb-server profiles
- 5 files, 10 insertions, 16 deletions
---