Skip to content

feat: 启动时文件完整性检查与自动修复 - #150

Open
ikunshare988 wants to merge 1 commit into
Rvosy:devfrom
ikunshare988:feat/file-integrity-check-dev
Open

ikunshare988 wants to merge 1 commit into
Rvosy:devfrom
ikunshare988:feat/file-integrity-check-dev

Conversation

@ikunshare988

Copy link
Copy Markdown

概述

在启动流程中新增文件完整性检查功能,通过 SHA-256 基线备份对比检测核心文件是否被修改或丢失,并在确认后自动修复。

变更内容

新增文件

  • \�pp/core/file_backup.py\:完整的文件备份、完整性校验与自动修复模块
    • 首次启动:扫描所有非排除文件,创建 SHA-256 哈希基线清单并备份到安全位置
    • 每次启动:对比当前文件与基线清单,发现差异时弹窗提示用户
    • 自动修复:用户确认后从备份恢复被修改或丢失的文件
    • 性能优化:目录遍历结果全局缓存(60s TTL)、多线程并行哈希、元数据快筛(mtime+size)
    • 安全保护:备份目录设置 Windows ACL 拒绝删除(同时兼容 Linux/macOS)

修改文件

  • \main.py\:
    • 导入 \FileBackup\
    • 新增 _run_integrity_check()\ 和 _integrity_progress_logger()\ 函数
    • 在 \main()\ 中 \ orce_light_palette\ 之后、启动自检之前执行完整性检查

排除项

  • \characters/\、
    untime/\、_pycache_/\
  • \data/\ 下的所有运行时目录(logs/、cache/、chat_history/ 等)
  • .pyc\、.log\、.tmp\、.crash\ 文件

测试

  • 单元测试:929 passed, 4 skipped
  • 集成测试:147 passed
  • UI 测试:379 passed

- 新增 app/core/file_backup.py:首次启动创建 SHA-256 基线备份,
  之后每次启动对比清单,发现被修改/丢失文件时提示并自动修复
- main.py 在启动自检前执行完整性检查;备份目录位于项目目录之外
  的同盘隐藏目录,并设置 ACL 防误删
- 使用 runtime_log.log_event 记录开始/进度/结束/结果日志
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