Skip to content

Dev - #2

Merged
codename-test merged 10 commits into
mainfrom
dev
Jul 28, 2026
Merged

Dev#2
codename-test merged 10 commits into
mainfrom
dev

Conversation

@codename-test

Copy link
Copy Markdown
Owner

No description provided.

@codename-test
codename-test merged commit 024501f into main Jul 28, 2026
1 check passed
codename-test added a commit that referenced this pull request Sep 26, 2026
v1.3.1 改进清单 #2。

- 根因:上传/PUT 内容直接 f.save()/open('w') 落盘,先写后校验;
  语法错误或 DB 冲突时旧插件文件已被覆盖丢失。
- 修复:新增 plugin_paths.atomic_upload / atomic_write_string,
  先写同目录临时文件 (.tmp_*.py) + 验证(parser_loader.validate_parser /
  channel_loader.validate_channel:语法 + 执行 + 必含 parse/Channel),
  验证通过才 os.replace() 原子替换到用户目录;失败清理临时文件、
  旧插件保持不变。
- 校验委托 lazy import parser_loader / channel_loader(避免循环导入)。
- api/parsers.py 新增同 filename 存在性预检(避免覆盖已有解析器)。
- 流内容可能为 bytes(Flask FileStorage / BytesIO),写入文本临时
  文件前 decode utf-8。
- 测试:新增 3 例(坏新插件不建文件、PUT 坏内容不覆盖旧解析器、
  PUT 坏内容不覆盖旧通道插件)。

全量 303 passed。

Co-Authored-by: QwenPaw <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant