用途:为 Electron 桌面应用提供“真正重启”的入口与实现路径,避免把渲染器刷新、会话重启或退出再打开误当作完整重启。
适用触发:用户要求在菜单中增加重启、提到 app.relaunch、Cmd+R、reload、relaunch 混用需要修复,或要求让 Electron 开发态重启可靠时激活。仅需刷新页面或恢复渲染器错误边界时不应使用,应走渲染器 reload;重启某条 Agent/终端会话应走会话生命周期或 PTY 工作流。
使用方式(按顺序执行):
- 明确意图:把每个 UI 入口映射到唯一意图——渲染器刷新、完整应用重启或更新安装交接;不要把标准刷新快捷键误绑定到完整重启,Electron 内置 View reload role 通常占用 Cmd+R/Ctrl+R;实现前先阅读 references/relaunch-contract.md。
- 集中重启路径:把完整重启放在主进程单一函数中,由原生菜单或类型化 IPC 调用。打包生产环境调用 app.relaunch() 后再 app.quit();开发态用启动应用的 Node 可执行文件与参数重启真实开发入口,不要假设存在打包可执行文件;渲染器刷新保持独立并在 UI 中标注。
- 保持进程归属:让主进程关闭钩子按产品会话策略完成;不要用普通重启函数安装更新,更新器须在清理与暂存完成后再接管;存在子进程、PTY、本地服务器或单实例锁时,定义各自是存活、关闭还是重启后重新挂接。
- 验证真实实例:为开发命令构造和生产重启路径添加聚焦测试;运行应用记录 PID、可执行路径、工作目录与启动时间;触发原生菜单项一次,确认出现启动时间更新的替代实例且可执行文件符合预期。不接受 bundle 文本、菜单存在、渲染器刷新或构建成功作为完整重启的证据。
依赖:Electron 主进程可访问 app,以及目标项目的开发命令。
通用反馈闭环:用户提出修改意见时,先判断是仅本次还是可复用;仅本次只改当前任务不改 Skill;可复用先确定作用域并更新对应 Skill 或共享规范,完成规则更新、版本、lint 与分发核验后再应用到当前任务;可复用修改会使此前的确认失效,完成当前产物修改与回读后停下等待用户下一步指示,不自动进入发布或提交。