{"release":{"tag":{"name":"0.2.4","path":"/sofqi/SyncHub/tags/0.2.4","tree_path":"/sofqi/SyncHub/tree/0.2.4","message":"","commit":{"id":"7c8e451db39ec8e5e3ef27df423fc94d01d9ffbd","short_id":"7c8e451","title":"chore(release): v0.2.4 —— 深度清理补成完整流程，并修掉两个会丢东西的 bug","title_markdown":"chore(release): v0.2.4 —— 深度清理补成完整流程，并修掉两个会丢东西的 bug","description":"\n用户第四次说「总结更新，发版」后完成。这一版把「深度清理」（重写历史）从一条\n半截流程补成能走完、能中断、能续做、并且说清代价的完整流程，修了四个真 bug\n（两个会丢东西），清理相关的报错全部中文化。\n\n版本改动：`CHANGELOG.md`（新增 `[0.2.4]` 段）、`manifest.json` / `package.json`\n→ `0.2.4`、`versions.json` 加 `\"0.2.4\": \"1.8.7\"`。\n\n发版前：`pnpm check` 八项全过、`typecheck`、`pnpm test` **94 文件 2011 用例全绿**、\n`verify:mobile`「没有在加载阶段抛错」、`build:both` 部署两库且产物里 manifest\n的版本是 0.2.4。","description_markdown":"用户第四次说「总结更新，发版」后完成。这一版把「深度清理」（重写历史）从一条\n半截流程补成能走完、能中断、能续做、并且说清代价的完整流程，修了四个真 bug\n（两个会丢东西），清理相关的报错全部中文化。\n版本改动：\u003Ccode\u003ECHANGELOG.md\u003C/code\u003E（新增 \u003Ccode\u003E\\[0.2.4\\]\u003C/code\u003E 段）、\u003Ccode\u003Emanifest.json\u003C/code\u003E / \u003Ccode\u003Epackage.json\u003C/code\u003E\n→ \u003Ccode\u003E0.2.4\u003C/code\u003E、\u003Ccode\u003Eversions.json\u003C/code\u003E 加 \u003Ccode\u003E\"0.2.4\": \"1.8.7\"\u003C/code\u003E。\n发版前：\u003Ccode\u003Epnpm check\u003C/code\u003E 八项全过、\u003Ccode\u003Etypecheck\u003C/code\u003E、\u003Ccode\u003Epnpm test\u003C/code\u003E \u003Cstrong\u003E94 文件 2011 用例全绿\u003C/strong\u003E、\n\u003Ccode\u003Everify:mobile\u003C/code\u003E「没有在加载阶段抛错」、\u003Ccode\u003Ebuild:both\u003C/code\u003E 部署两库且产物里 manifest\n的版本是 0.2.4。","message":"chore(release): v0.2.4 —— 深度清理补成完整流程，并修掉两个会丢东西的 bug\n\n用户第四次说「总结更新，发版」后完成。这一版把「深度清理」（重写历史）从一条\n半截流程补成能走完、能中断、能续做、并且说清代价的完整流程，修了四个真 bug\n（两个会丢东西），清理相关的报错全部中文化。\n\n版本改动：`CHANGELOG.md`（新增 `[0.2.4]` 段）、`manifest.json` / `package.json`\n→ `0.2.4`、`versions.json` 加 `\"0.2.4\": \"1.8.7\"`。\n\n发版前：`pnpm check` 八项全过、`typecheck`、`pnpm test` **94 文件 2011 用例全绿**、\n`verify:mobile`「没有在加载阶段抛错」、`build:both` 部署两库且产物里 manifest\n的版本是 0.2.4。\n","message_markdown":"chore(release): v0.2.4 —— 深度清理补成完整流程，并修掉两个会丢东西的 bug\n用户第四次说「总结更新，发版」后完成。这一版把「深度清理」（重写历史）从一条\n半截流程补成能走完、能中断、能续做、并且说清代价的完整流程，修了四个真 bug\n（两个会丢东西），清理相关的报错全部中文化。\n版本改动：\u003Ccode\u003ECHANGELOG.md\u003C/code\u003E（新增 \u003Ccode\u003E\\[0.2.4\\]\u003C/code\u003E 段）、\u003Ccode\u003Emanifest.json\u003C/code\u003E / \u003Ccode\u003Epackage.json\u003C/code\u003E\n→ \u003Ccode\u003E0.2.4\u003C/code\u003E、\u003Ccode\u003Eversions.json\u003C/code\u003E 加 \u003Ccode\u003E\"0.2.4\": \"1.8.7\"\u003C/code\u003E。\n发版前：\u003Ccode\u003Epnpm check\u003C/code\u003E 八项全过、\u003Ccode\u003Etypecheck\u003C/code\u003E、\u003Ccode\u003Epnpm test\u003C/code\u003E \u003Cstrong\u003E94 文件 2011 用例全绿\u003C/strong\u003E、\n\u003Ccode\u003Everify:mobile\u003C/code\u003E「没有在加载阶段抛错」、\u003Ccode\u003Ebuild:both\u003C/code\u003E 部署两库且产物里 manifest\n的版本是 0.2.4。","detail_path":"/sofqi/SyncHub/commit/7c8e451db39ec8e5e3ef27df423fc94d01d9ffbd","commits_path":"/sofqi/SyncHub/commits/7c8e451db39ec8e5e3ef27df423fc94d01d9ffbd","tree_path":"/sofqi/SyncHub/tree/7c8e451db39ec8e5e3ef27df423fc94d01d9ffbd","author":{"name":"烛知知","email":"790493242@qq.com","username":"sofqi","user_path":"/sofqi","enterprise_user_path":null,"image_path":"https://foruda.gitee.com/avatar/1792083584838973630/10322477_sofqi_1792083584.png!avatar30","is_gitee_user":true,"is_enterprise_user":null,"widget_url":""},"committer":{"name":"烛知知","email":"790493242@qq.com","username":"sofqi","user_path":"/sofqi","enterprise_user_path":null,"image_path":"https://foruda.gitee.com/avatar/1792083584838973630/10322477_sofqi_1792083584.png!avatar30","is_gitee_user":true,"is_enterprise_user":null,"widget_url":""},"authored_date":"2026-10-10T14:00:45+08:00","committed_date":"2026-10-10T14:00:45+08:00","signature":null,"build_state":null},"archive_path":"/sofqi/SyncHub/repository/archive/0.2.4","signature":null},"operating":{"edit":false,"download":true,"destroy":false,"enterprise_forbid_zip":false},"release":{"title":"0.2.4","path":"/sofqi/SyncHub/releases/tag/0.2.4","tag_path":"/sofqi/SyncHub/tree/0.2.4","project_id":50398986,"created_at":"2026-10-10T14:04:44+08:00","is_prerelease":false,"description":"这一版把「深度清理」（重写历史）从一条**半截流程**补成一条能走完、能中断、能续做、\n并且说清代价的完整流程。修了四个真 bug，其中两个会丢东西；顺手把清理相关的\n报错全部改成了中文。\n\n\u003E 起因是三条实测反馈：清理完之后点「立即同步」报一句英文的\n\u003E `refusing to merge unrelated histories`；第二次清理直接失败；\n\u003E 以及「清理完 `.gitignore` 多出目录，那这些目录以后岂不是不进同步了？」——\n\u003E 最后这个问题界面**从来没回答过**，而它恰恰是这个动作最要紧的后果。\n\n### 修复\n\n- **重写不再删掉你的本地文件。** `git filter-branch` 的最后一步会把工作区对齐到\n  改写后的 HEAD，于是**被剔除的目录会从磁盘上消失** —— 与「只清历史」的承诺正好相反。\n  勾一个装着笔记的目录，笔记就没了。现在重写之后会把它们放回磁盘（内容与重写前\n  一模一样），确认页也把这条写成了明确的承诺。\n- **第二次深度清理不再必然失败。** filter-branch 见到上一次重写留下的\n  `refs/original/` 就拒绝开始，而插件只在「丢弃备份并回收」里清它 —— 等于\n  「清理两次之间必须先丢弃备份」，与「备份引用带时间戳（因为用户可能清理多次）」\n  的设计意图相矛盾。现在重写时会自动覆盖那份中间引用。\n- **重写报错不再等于「什么都没发生」。** 引用是边改写边更新的，收尾那次工作区同步\n  失败会让命令报错、但历史**已经变了**。原来这种情况被报成「重写失败」，于是忽略规则\n  不写（下次同步把刚剔掉的路径原样提交回来）、结果页也不出现，而哈希全变、远端分叉\n  已经发生。现在按「引用动没动」判断。\n- **重写把整条历史清空时，分支会被自动还原。** 勾选的路径若覆盖了每个提交的全部内容，\n  没有提交能活下来，git 会把当前分支整个删掉、仓库落到「没有提交」的状态。\n  现在检测到就当场还原，并告诉你「库是好的，请少勾一些路径」。\n- **重写之后「立即同步」不再卡死。** 重写后本地与远端没有任何共同提交，拉取会报\n  `fatal: refusing to merge unrelated histories`。现在这句话有中文说明、并且**直接告诉你\n  该做什么**（强制推送）；拉取与 rebase 也会在动手之前就停下来（真跑起来会留下一仓库冲突）。\n- **清理相关的报错全部中文化**，不再出现 git 的英文原文。\n\n### 新增\n\n- **深度清理的四步收进一个窗口**：体检 → 重写 → **强制推送** → **确认库没问题后丢弃备份**。\n  推完自动进入收尾页；收尾页列出三件具体要检查的事（打开几篇笔记 / 图片能不能显示 /\n  别的设备重新 clone），然后才是「丢弃备份并回收」。**空间要到这一步才真正释放** ——\n  以前结果页的次要按钮写着「完成」，会让人以为整件事结束了。\n- **设置页「清理」一节多了「继续上次的清理」**：只要还有未完成的清理（重写备份还在），\n  它就可点，点进去**直接到收尾那一步**。中途关掉 Obsidian、甚至重启之后都能接着做。\n- **体检报告里，目录行会标出「N 篇笔记」**；确认页会明确告诉你：**剔掉的目录以后不再\n  跟着 git 同步**（会被写进 `.gitignore`），其他设备 clone 之后不会有它们。\n  如果勾中的目录里有笔记，会额外警告一次 —— 这是这个功能唯一会让人丢东西的路径。\n\n### 修复（进行中的可见性）\n\n- **重写进行中有进度可看了**：弹窗里显示「已用 X，预计总共约 N 分钟」，左下角状态栏与\n  「仓库同步」面板顶部也会一直显示「正在重写历史…」。窗口可以关掉，重写完成之后\n  结果页会自己弹回来（关掉它**不会**让结果丢掉）。\n- 进度**不报百分比**：重写是逐提交跑的，git 不会告诉你「处理到第几个提交」，\n  编一个百分比就是骗人。\n\n---","author":{"name":"烛知知","username":"sofqi","path":"/sofqi","avatar_url":"https://foruda.gitee.com/avatar/1792083584838973630/10322477_sofqi_1792083584.png!avatar30"},"attach_files":[{"download_url":"/sofqi/SyncHub/attach_files/3354239/download/main.js","name":"main.js","cli_download_url":"https://gitee.com/sofqi/SyncHub/releases/download/0.2.4/main.js","censor_failed":false,"censor_tip":null},{"download_url":"/sofqi/SyncHub/attach_files/3354240/download/manifest.json","name":"manifest.json","cli_download_url":"https://gitee.com/sofqi/SyncHub/releases/download/0.2.4/manifest.json","censor_failed":false,"censor_tip":null},{"download_url":"/sofqi/SyncHub/attach_files/3354241/download/styles.css","name":"styles.css","cli_download_url":"https://gitee.com/sofqi/SyncHub/releases/download/0.2.4/styles.css","censor_failed":false,"censor_tip":null}],"zip_download_url":"/sofqi/SyncHub/releases/tag/0.2.4.zip","tar_download_url":"/sofqi/SyncHub/releases/tag/0.2.4.tar.gz"}}}