diff --git a/AGENTS.md b/AGENTS.md index ded12a4..ab12c2e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -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/.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 + +---