starmen1265
|
e136939a25
|
fix(stats): 添加文件锁(fcntl.flock)防止并发竞态
- 添加 _acquire_lock() 和 _release_lock() 辅助函数
- _load_stats_data() 和 _atomic_write() 使用文件锁保护
- 使用独立的 .lock 文件作为锁
- 防止并发读写导致数据损坏
|
2026-03-09 14:50:03 +08:00 |
|
starmen1265
|
9b15766ab3
|
fix(stats): _load_stats_data() JSON 解析失败时备份损坏文件
- JSON 解析失败时将损坏文件重命名为 .corrupted.{timestamp}.bak
- 保留损坏文件以便后续分析和恢复
- 分离 JSONDecodeError 和 IOError 的处理逻辑
|
2026-03-09 14:49:12 +08:00 |
|
starmen1265
|
d26ac7a88c
|
fix(stats): get_stats() 改用 .get() 访问字段
- 使用 .get() 安全访问 event 字段
- 为可能缺失的字段提供默认值
- 防止 KeyError 异常
|
2026-03-09 14:48:45 +08:00 |
|
starmen1265
|
e5304534e4
|
fix(stats): record_event() 添加 metadata 类型校验
- 如果 metadata 不是 dict 类型则抛出 TypeError
- 防止传入非法类型导致后续处理失败
|
2026-03-09 14:48:17 +08:00 |
|
starmen1265
|
3efe98e17d
|
feat: 添加 Cross 模式统计报告功能
- 添加 stats.py 统计模块
- 添加 dev_workflow.py CLI 工具
- 实现 record_event() 记录事件
- 实现 get_stats() 生成报告
- 支持敏感数据自动过滤
- 使用原子写入保证数据安全
- 添加 README 文档
|
2026-03-09 14:44:04 +08:00 |
|