v6.2.1 - 修复 Windows 下写章提交偶发的「拒绝访问」
发版范围
本次发布覆盖 v6.2.0..v6.2.1,核心是修复 issue #125。
给作者看的变化
- 修复 Windows 上写章提交时偶发的
WinError 5(拒绝访问):.webnovel/memory_scratchpad.json、state.json等故事资料文件在被 VSCode、杀毒软件或同步盘短暂占用时,系统现在会自动等待并重试,不再直接失败(#125)。 - 若项目放在 VSCode 工作区内,建议顺手把
**/.webnovel/**加入files.watcherExclude,可进一步降低占用冲突;项目尽量不要放在 OneDrive 等同步目录里。
是否需要改旧项目
不需要。已有书项目继续使用,无需任何迁移。
给维护者
security_utils.atomic_write_json:os.replace遇PermissionError改为指数退避重试(20ms→500ms 共 10 次,约 2.6 秒窗口),穷尽后如实抛错,其余异常不吞;全部 JSON 投影(state.json / memory_scratchpad.json / summaries 等)共用该写入函数,一并受益。- 新增
scripts/tests/test_security_utils_atomic.py四个用例:瞬时占用自愈与退避序列、持续占用穷尽抛AtomicWriteError且原文完好、测试沙箱降级分支行为保持、Windows 真实句柄占用复现(win32 only)。 - 版本元数据同步到
6.2.1。
验证
python -m pytest(774 passed)python -X utf8 webnovel-writer/scripts/sync_plugin_version.py --check --expected-version 6.2.1python -X utf8 webnovel-writer/scripts/validate_release_notes.py --version 6.2.1python -X utf8 webnovel-writer/scripts/validate_plugin_package.pygit diff --check