diff --git a/IFLOW.md b/IFLOW.md
new file mode 100644
index 0000000..0cf42ad
--- /dev/null
+++ b/IFLOW.md
@@ -0,0 +1,94 @@
+# IFLOW 上下文文档
+
+## 项目概述
+
+这是一个基于 **Vite + Vue 3 + Electron** 的桌面应用程序开发模板,名为 **Vutron**。它提供了一个快速搭建跨平台桌面应用的环境,内置了热重载、TypeScript 支持、多语言支持、主题切换(暗黑/明亮)、全局状态管理(Pinia)等功能。
+
+项目使用 `pnpm` 作为包管理器,主要技术栈包括:
+
+- 前端框架:Vue 3 (Composition API)
+- 构建工具:Vite
+- 桌面应用框架:Electron
+- UI 库:Vuetify
+- 状态管理:Pinia
+- 国际化:vue-i18n
+- 自动更新:electron-updater
+
+## 项目结构
+
+```
+src/
+├── main/ # Electron 主进程代码
+│ ├── AutoUpdater.ts # 自动更新功能
+│ ├── IPCs.ts # IPC 通信处理
+│ ├── MainRunner.ts # 主窗口和错误窗口创建
+│ ├── index.dev.ts # 开发环境入口
+│ ├── index.ts # 生产环境入口
+│ ├── tray.ts # 系统托盘功能
+│ └── utils/
+│ └── Constants.ts # 常量定义
+├── preload/ # Electron 预加载脚本
+├── public/ # 静态资源
+└── renderer/ # 渲染进程(Vue 应用)
+ ├── App.vue # 根组件
+ ├── main.ts # Vue 应用入口
+ ├── components/ # 公共组件
+ ├── screens/ # 页面组件
+ ├── plugins/ # 插件配置(vuetify, i18n, pinia)
+ ├── router/ # 路由配置
+ ├── store/ # Pinia 状态管理
+ ├── locales/ # 语言包
+ └── utils/ # 工具函数
+
+buildAssets/ # 构建相关资源
+docs/ # 项目文档
+tests/ # 测试文件
+```
+
+## 构建和运行
+
+### 开发环境
+
+1. 安装依赖:
+
+ ```bash
+ pnpm install
+ ```
+
+2. 启动开发服务器:
+
+ ```bash
+ pnpm dev
+ ```
+
+ 这将启动 Vite 开发服务器,并在 Electron 中打开应用。
+
+3. 构建项目:
+
+ ```bash
+ pnpm build
+ ```
+
+ 构建应用到 `dist/` 目录,并使用 `electron-builder` 打包成可执行文件。
+
+4. 运行测试:
+ ```bash
+ pnpm test
+ ```
+ 运行 Playwright 自动化测试。
+
+### 生产环境
+
+构建后的应用位于 `release/` 目录下,根据不同平台生成对应的安装包。
+
+## 开发约定
+
+- 使用 TypeScript 进行开发,类型检查通过 `vue-tsc` 完成。
+- 代码风格遵循 ESLint 和 Prettier 规范。
+- 使用 Pinia 进行全局状态管理。
+- 国际化支持通过 vue-i18n 实现。
+- 主进程与渲染进程通过 IPC 进行通信。
+- 日志记录使用 `electron-log` 模块。
+- 自动更新功能通过 `electron-updater` 实现。
+
+如果有修改代码,任务结束前需要先运行 `pnpm typecheck` 检查类型错误。不要直接运行 `pnpm dev` 或 `pnpm build`。
diff --git a/src/renderer/App.vue b/src/renderer/App.vue
index cd1d162..75ab147 100644
--- a/src/renderer/App.vue
+++ b/src/renderer/App.vue
@@ -2,6 +2,7 @@
import { DefaultLayout } from '@/renderer/components/layout'
import GlobalDialog from '@/renderer/components/GlobalDialog.vue'
import UpdateDialog from '@/renderer/components/UpdateDialog.vue'
+import GlobalSnackbar from '@/renderer/components/GlobalSnackbar.vue'
import { onMounted } from 'vue'
import { useAppStore } from '@/renderer/store/app'
@@ -75,6 +76,7 @@ const checkForUpdates = async () => {
+