feat: 系统化补齐老 image_generator.py 遗漏的逻辑 + 完整 logtrace
# 启动序列(与旧 main() 1:1 对齐)
新增 core/runtime.py 抽 6 个启动期工具:
- flush_logs / cleanup_clipboard_tempfiles
- get_crash_log_path / enable_crash_diagnostics
- log_system_info / init_logging(RotatingFileHandler 5MB×5)
main_qml.py 完整 8-phase boot:
Phase 0 enable_crash_diagnostics(faulthandler / excepthook / Qt msgHandler)
Phase 1 init_logging → logs/app.log
Phase 2 log_system_info(OS/Python/PySide6/Qt/Pillow/google-genai 版本)
Phase 2.5 cleanup_clipboard_tempfiles(24h+ 旧文件)
Phase 3 config 路径 + frozen 时从 bundle 拷贝 + sync_bundled_api_key
Phase 4 QGuiApplication + 窗口图标(zb100_windows.ico / zb100_mac.icns)
Phase 4.5 preflight_check(失败弹错退出,不让用户进登录页才撞错)
Phase 5 业务核心 + Phase 5.5 init_audit_logger 单例
Phase 6 桥层 + 信号串联
Phase 7 QML 装载
Phase 8 aboutToQuit hook → audit shutdown flush
# 完整 logtrace(异常带 stack 落到 app.log)
bridges/* + core/* 所有 try/except 统一改:
logger.error(f"...: {e}") → logger.exception("...")
logger.warning(f"...: {e}") → logger.exception("...")
共 24 处。Qt 警告 / fatal / segfault 也通过 enable_crash_diagnostics
落到 app.log 和 crash_log.txt。
# 桥层补齐遗漏的功能(对照旧 ImageGeneratorWindow / LoginDialog)
ImageGenBridge:
- validateImageFile/validateImageFiles:扩展名 + ≤10MB + QPixmap 完整性,
与旧 validate_image_file 等价;normalizeFileUrls 内置同样校验
- toggleSavedPrompt / isSavedPrompt:收藏切换(已收藏点了取消,与旧
toggle_favorite + check_favorite_status 等价)
HistoryBridge:
- clearAll:shutil.rmtree(base_path) + 重建空目录 + reset model
对应旧 clear_history
AuthBridge:
- _get_public_ip:登录后同步拿公网 IP(3 个 API 兜底各 3s timeout),
audit log_login 现在带 public_ip,对应旧 get_public_ip
# QML wiring
ImageGenTab:
- 收藏按钮:
收藏 / ✓ 已收藏 toggle,根据 promptArea.text + savedPrompts 实时切
- addUrlsValidated 统一"加 + 校验 + 反馈":用户拖 5 张图 3 张超 10MB 时
显示"已添加 2 张,丢弃 3 张(不支持 / 超 10MB / 损坏)"
- 粘贴也走 validateImageFiles,路径 A 拿用户文件时拦截超大
HistoryTab:
- 顶部加
️ 清空 按钮(带 MessageDialog 确认)
- 列表项右键菜单(QtQuick.Dialogs Menu):在文件管理器中打开 / 复制提示词 / 删除此项
- 单条删除也走 MessageDialog 确认
# 验证
启动序列 app.log 完整:
Phase 0..8 全部正确执行,窗口图标已设,audit logger 启动,QML 装载成功。
系统信息日志记录 PySide6 6.10.1 / Qt 6.10.1 / Pillow 11.1.0 / google-genai 1.52.0。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Showing
14 changed files
with
447 additions
and
94 deletions
This diff is collapsed.
Click to expand it.
core/runtime.py
0 → 100644
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
This diff is collapsed.
Click to expand it.
-
Please register or sign in to post a comment