fix(sync): (Codex) Sync digest consistency / eventual consistency#1393
Merged
Conversation
Member
Code reviewFound 1 issue:
Concretely, in scriptcat/src/app/service/service_worker/synchronize.ts Lines 432 to 440 in 68f3606 scriptcat/src/app/service/service_worker/synchronize.ts Lines 549 to 560 in 68f3606 scriptcat/src/app/service/service_worker/synchronize.ts Lines 617 to 625 in 68f3606 🤖 Generated with Claude Code - If this code review was useful, please react with 👍. Otherwise, react with 👎. |
云端 list 已能返回原生 digest 时不应被本地 md5 覆盖。webdav/onedrive/s3 返回 etag、dropbox 返回 content_hash,与 md5OfText 格式不一致,强制覆盖 会让下次同步比对必失败,导致未变动脚本被反复识别为已变动。改为只在云端 列表暂时漏掉刚上传的文件时用本地 md5 兜底。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
同步流程不再完全依赖“上传后立刻重新
list()云端文件”来刷新file_digest。现在pushScript()会在脚本和.meta.json成功写入后,返回这两个文件的内容摘要;syncOnce()会收集所有成功上传的摘要,并在updateFileDigest()里把它们合并进云端列表结果。即使 Google Drive / S3 这类存储刚上传后目录列表短暂漏掉新文件,本地 digest 也会保留刚刚确认写入的文件,避免下次同步误判为缺失或变更后重复上传。也同步处理了安装脚本触发的单次上传路径:
scriptInstall()现在同样会把pushScript()返回的摘要传给updateFileDigest()。