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

View File

@@ -4433,3 +4433,93 @@ let response = namespace.build_referral_response("\\server\\dfs\\path");
**结论**Phase 7 (CTDB 集群) 复杂度高(⚠️⚠️⚠️⚠️⚠️),建议根据实际需求决定是否实施。
---
**最后更新**2026-06-22
**版本**1.60MyFiles + VirtualFs + WebDAV Phase 21-22 完成)
## WebDAV Phase 21-22 + MyFiles + VirtualFs 完成2026-06-22⭐⭐⭐⭐⭐
**完成时间**:约 4 小时(跨 session
**新增代码量**~1603 行
**Git commits**14ed3d5, 6064991
### Phase 21WebDAV 改进 ⭐⭐⭐⭐⭐
| 功能 | 状态 |
|------|------|
| 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 22WebDAV 全面改进 ⭐⭐⭐⭐⭐
| 功能 | 状态 |
|------|------|
| flush fail 修复 + Drop warning | ✅ 完成 |
| RwLock 中毒 recoverytry_read/try_write | ✅ 完成 |
| 过期锁清理cleanup_expired_locks | ✅ 完成 |
| Mutex/RwLock recovery helpers | ✅ 完成 |
| Props VFS 持久化load_props/save_props via VFS | ✅ 完成 |
| COPY/MOVE dead props sync | ✅ 完成 |
| 原子 set_timesset_atime/set_mtime | ✅ 完成 |
| Async propsspawn_blocking | ✅ 完成 |
| DavHandler cachingCachedHandler, 300s TTL | ✅ 完成 |
| MKCOL 405 fixexists() check | ✅ 完成 |
| Quota enforcement | ✅ 完成 |
| Conditional/Range requestsdav-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 schemavirtual_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
---