mirror of
https://github.com/OpenListTeam/OpenList.git
synced 2026-11-10 20:50:50 +08:00
* fix(webdav): correct COPY/MOVE semantics with named copy support Signed-off-by: Lythen <intro-iu@outlook.com> * feat(webdav): persist dead properties with MOVE migration Signed-off-by: Lythen <intro-iu@outlook.com> * fix(webdav): enforce locks on resolved paths, support shared locks Signed-off-by: Lythen <intro-iu@outlook.com> * fix(fs): fall back to transfer task for same-dir copy Signed-off-by: Lythen <intro-iu@outlook.com> * fix(webdav): escape LIKE patterns, check dstDir is dir, bound PROPFIND body Signed-off-by: Lythen <intro-iu@outlook.com> * fix(webdav): escape backslash in LIKE, reduce dead prop retry Signed-off-by: Lythen <intro-iu@outlook.com> * fix(webdav): isolate shared lock instances - Track each lock token with independent details and expiry state.\n- Keep resource nodes for path conflict accounting only.\n- Cover independent shared-lock expiration in memLS tests. * fix(webdav): preserve dead property lifecycle - Copy and replace dead properties with COPY destinations.\n- Remove dead-property subtrees after successful DELETE.\n- Stage MOVE properties before clearing the destination subtree.\n- Add database-backed regression coverage for copy and delete. * fix(webdav): protect overwrite copy and move - Validate source objects before touching overwrite destinations.\n- Stage COPY content under a collision-free name and restore destinations on failure.\n- Preserve MOVE destinations with a backup until the resource operation succeeds.\n- Route named same-storage copies through the direct destination-name transfer path. * fix(webdav): harden overwrite staging - Skip NoOverwriteUpload backup handling for collision-free internal COPY staging.\n- Treat post-commit overwrite backup cleanup failures as warnings. * test(webdav): update lock lookup expectations - Compare lookup results with independent lock instances.\n- Keep invalid token expectations nil after the lock state split. * fix(webdav): complete litmus compliance - Preserve named same-storage collection copies with isolated native staging.\n- Evaluate WebDAV ETag conditions and distinguish 412 from 423 lock failures.\n- Return 201 for lock-null resources and cover the new condition behavior. * fix(fs): harden named copy staging - retry staging cleanup from the deferred path and report residual directories - document hook context semantics and wrap staging operation errors Signed-off-by: Lythen <intro-iu@outlook.com> * fix(core): support Go 1.27 checks - Replace dynamic format strings with explicit format verbs and guard optional network configuration. - Stabilize multipart cleanup, proxy, search, and MCP tests. Co-authored-by: Codex <267193182+codex@users.noreply.github.com> * fix(webdav): coordinate file and property transactions - Keep MOVE, COPY, and DELETE file changes coordinated with dead-property transactions. - Compensate filesystem changes when file operations or database commits fail. - Add WebDAV coverage for transaction and recovery failures. Co-authored-by: Codex <267193182+codex@users.noreply.github.com> * fix(webdav): reject writes without parent collections - Require an existing parent collection for PUT. - Reject MKCOL when its parent is missing or not a collection. Co-authored-by: Codex <267193182+codex@users.noreply.github.com> * fix(webdav): refresh parent before delete checks - Refresh the parent listing before checking whether a DELETE target exists. - Return 404 for missing resources, including storage-not-found errors. Co-authored-by: Codex <267193182+codex@users.noreply.github.com> --------- Signed-off-by: Lythen <intro-iu@outlook.com> Co-authored-by: Intro <Intro-iu@outlook.com> Co-authored-by: Codex <267193182+codex@users.noreply.github.com>