模块知识库/Vibe-Trading 量化交易智能体平台/Vibe-Trading Desktop Electron 宿主进程/编码规范
- 所有 IPC 处理函数在入口处调用
assertMainWindowSender(event.sender) 校验发送者必须是当前主窗口,拒绝跨上下文调用。
- 对外部 URL 统一通过
safeOrigin / isSafeExternalUrl 解析后再判断是否允许导航或外链打开,禁止任意协议跳转。
- 后端可执行文件解析遵循严格优先级链:环境变量覆盖 → 打包资源目录白名单 → 源码模式下的
.venv 标记项目 → PATH 中精确文件名,不递归扫描祖先目录。
- 凭据写入采用原子持久化:先写
.pid.tmp 临时文件再 fs.rename 覆盖目标,避免并发写入导致损坏。
- 用户可见文本一律通过
locales.ts 的 getDesktopMessages / formatDesktopMessage 获取,错误与状态消息不硬编码字符串。
- 子进程通信通过
child_process.spawn + ipc channel 与 backend-watchdog.js 交互,主进程仅监听 message 事件并转发结构化消息类型(如 backend-started、backend-error)。