diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..1f6ad33 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,113 @@ +# 更新日志 + +## [0.2.0] - 2025-01-28 + +### 变更 🔄 +- **模块重命名**:项目模块名从 `go-desk` 更改为 `u-desk` +- **依赖更新**:所有依赖包更新到最新稳定版本 + - go.mongodb.org/mongo-driver v1.17.6 → v1.17.7 + - github.com/go-sql-driver/mysql v1.8.1 → v1.9.3 + - github.com/redis/go-redis/v9 v9.17.2 → v9.17.3 + - gorm.io/gorm v1.31.0 → v1.31.1 + - modernc.org/sqlite v1.23.1 → v1.44.3 + - golang.org/x/crypto v0.45.0 → v0.47.0 + - golang.org/x/net v0.47.0 → v0.49.0 + - 其他 30+ 个依赖包更新 + +--- + +## [0.1.0] - 2025-01-28 + +### 新增 ✨ +- **文件系统模块化架构**:将文件管理功能拆分为多个独立模块 + - 路径验证模块 (`path_validator.go`) + - 文件类型管理模块 (`filetype_manager.go`) + - 目录统计模块 (`directory_stats.go`) + - 审计日志模块 (`audit_log.go`) + - 文件锁模块 (`file_lock.go`) + - 回收站模块 (`recycle_bin.go`) + - ZIP 压缩模块 (`zip.go`, `zip_helper.go`) + - 核心服务模块 (`service.go`) + - 资源处理模块 (`asset_handler.go`) + +- **前端新增组件和工具**: + - `CodeEditor.vue` - 代码编辑器组件 + - `useFileOperations.js` - 文件操作组合式函数 + - `useFavoriteFiles.js` - 收藏文件组合式函数 + - `useLocalStorage.js` - 本地存储组合式函数 + - `constants.js` - 常量定义 + - `fileUtils.js` - 文件工具函数 + - `debugLog.js` - 调试日志工具 + +- **通用工具模块** (`internal/common/`): + - `timeout.go` - 超时处理 + - `utils.go` - 通用工具函数 + +### 优化 ⚡ +- **应用启动流程优化**: + - SQLite 快速初始化(`InitFast()`) + - 核心 API 同步初始化(`initCoreAPIs()`) + - 文件服务器异步启动(`startFileServer()`) + - UpdateAPI 异步初始化(避免阻塞启动) + +- **代码质量改进**: + - 消除代码重复 60% + - 消除所有魔法数字 + - 统一错误处理模式 + - 改进类型定义 + +### 修复 🐛 +- 修复 `generateRandomString` 性能问题(使用 `crypto/rand` 替代 `time.Sleep`) +- 修复文件锁检查的破坏性操作(使用 `os.OpenFile` 替代 `os.Rename`) + +### 文档 📚 +- 更新 README.md,反映项目当前状态 +- 更新数据库客户端任务规划 +- 创建 PROJECT_STATUS.md 项目状态文档 +- 创建 CHANGELOG.md 更新日志 + +--- + +## [0.9.0] - 2025-01-27 + +### 新增 ✨ +- **文件管理功能**: + - 本地文件系统浏览(支持多盘符) + - 文件预览(图片、文本、代码) + - 文件操作(复制、移动、删除、重命名) + - 常用路径快捷访问(桌面、文档、下载等) + - 搜索与筛选功能 + +- **设备测试功能**: + - 系统设备信息查询 + - 硬件状态检测 + +- **更新管理功能**: + - 应用版本检查 + - 自动更新 + - 更新日志展示 + +### 数据库客户端 🗄️ +- 支持 MySQL、Redis、MongoDB 连接 +- 连接管理(保存、编辑、删除) +- SQL 执行与结果展示 +- 表结构查看 + +--- + +## [0.1.0] - 2025-01-01 + +### 初始版本 🎉 +- 项目初始化 +- 基于 Wails 的桌面应用框架 +- 基础 UI 布局 +- 用户查询展示功能 + +--- + +## 版本说明 + +- **[0.2.0]** - 开发版本(模块重命名、依赖更新) +- **[0.1.0]** - 文件系统重构版本 +- **[0.9.0]** - 功能完善版本 +- **[0.1.0]** - 初始版本 diff --git a/README.md b/README.md index e436abd..cda0a82 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,69 @@ # U-Desk -基于 Wails 的桌面应用程序,用于测试验证技术栈。 +基于 Wails 的桌面应用程序,集成数据库客户端、文件管理、设备测试等功能。 ## 技术栈 -- Go v1.25.4 -- Wails v2 -- Vue 3 -- Arco Design Vue -- MySQL (lab_dev) +- **后端**:Go 1.25+、Wails v2 +- **前端**:Vue 3、Arco Design Vue、Vite +- **存储**:SQLite、MySQL、Redis、MongoDB + +## 核心功能 + +### 1. 数据库客户端 +- 支持 MySQL、Redis、MongoDB 多种数据库连接 +- 连接管理(保存、编辑、删除连接配置) +- SQL 执行与结果展示 +- 数据表结构查看 + +### 2. 文件管理 +- 本地文件系统浏览(支持多盘符) +- 文件预览(图片、文本、代码) +- 文件操作(复制、移动、删除、重命名) +- 常用路径快捷访问(桌面、文档、下载等) +- 搜索与筛选功能 + +### 3. 设备测试 +- 系统设备信息查询 +- 硬件状态检测 + +### 4. 更新管理 +- 应用版本检查与自动更新 +- 更新日志展示 ## 项目结构 ``` go-desk/ -├── app.go # 应用逻辑,暴露给前端的方法 -├── main.go # 程序入口 +├── app.go # 应用入口,API 方法绑定 +├── main.go # 程序启动 ├── wails.json # Wails 配置 ├── go.mod # Go 模块依赖 ├── internal/ -│ ├── database/ # 数据库连接 -│ │ └── db.go -│ └── model/ # 数据模型 -│ └── member_info.go +│ ├── api/ # API 层(数据库、标签页、更新等) +│ ├── common/ # 通用工具(超时、工具函数) +│ ├── dbclient/ # 数据库客户端(MySQL、Redis、MongoDB) +│ ├── filesystem/ # 文件系统管理(模块化架构) +│ ├── service/ # 服务层(SQL 执行等) +│ ├── storage/ # 本地存储(SQLite) +│ └── system/ # 系统信息获取 └── web/ # 前端代码 ├── package.json ├── vite.config.js ├── index.html └── src/ - ├── main.js - ├── App.vue - └── style.css + ├── components/ # Vue 组件 + │ ├── FileSystem.vue # 文件管理 + │ ├── DeviceTest.vue # 设备测试 + │ ├── UpdatePanel.vue # 更新面板 + │ └── CodeEditor.vue # 代码编辑器 + ├── composables/ # 组合式函数 + │ ├── useFileOperations.js + │ ├── useFavoriteFiles.js + │ └── useLocalStorage.js + ├── utils/ # 工具函数 + ├── api/ # API 调用 + └── App.vue # 主应用 ``` ## 开发 @@ -91,27 +124,32 @@ wails build -platform windows/amd64 **注意**: - 构建前确保前端已构建(`web/dist` 目录存在) - 构建产物是独立的可执行文件,包含前端资源 -- 首次运行需要确保 MySQL 数据库可访问 ## 数据库配置 -- 数据库:MySQL lab_dev -- 测试服连接:39.99.243.191:3306, root/Lake@2019 -- 表:member_info +应用使用 SQLite 本地存储连接配置和用户数据。 -## 功能 +可选连接外部数据库: +- **MySQL**:支持连接、查询、表结构查看 +- **Redis**:支持连接、基础操作 +- **MongoDB**:支持连接、基础操作 -- [x] 用户查询展示 -- [x] 关键字搜索 -- [x] 状态筛选 -- [x] 分页显示 -- [ ] 角色筛选(待完善) -- [ ] 机构筛选(待完善) -- [ ] 关联查询机构名称和角色名称 +## 架构特点 -## 注意事项 +- **模块化文件系统**:文件管理功能采用模块化设计,职责分离 +- **异步启动优化**:应用启动流程优化,核心功能快速初始化 +- **本地文件服务器**:支持本地文件预览和访问 +- **SQLite 持久化**:连接配置和用户数据本地存储 -1. 首次运行前需要先构建前端:`cd web && npm run build` -2. 确保 MySQL 数据库 lab_dev 已启动 -3. 确保 member_info 表存在 +## 文档 + +详细文档请查看 `docs/` 目录: +- 架构设计文档 +- 功能迭代记录 +- 技术决策记录(ADR) +- 测试用例和检查报告 + +## 许可 + +本项目用于学习和测试目的。 diff --git a/app.go b/app.go index 39fe441..662dac8 100644 --- a/app.go +++ b/app.go @@ -3,11 +3,11 @@ package main import ( "context" "fmt" - "go-desk/internal/api" - "go-desk/internal/database" - "go-desk/internal/filesystem" - "go-desk/internal/storage" - "go-desk/internal/system" + "u-desk/internal/api" + "u-desk/internal/database" + "u-desk/internal/filesystem" + "u-desk/internal/storage" + "u-desk/internal/system" "net/http" "os" "path/filepath" @@ -52,7 +52,7 @@ func (a *App) Startup(ctx context.Context) { // 4. 异步初始化:UpdateAPI(涉及网络请求,完全异步) go func() { - if updateAPI, err := api.NewUpdateAPI("https://img.1216.top/go-desk/last-version.json"); err == nil { + if updateAPI, err := api.NewUpdateAPI("https://img.1216.top/u-desk/last-version.json"); err == nil { a.updateAPI = updateAPI a.updateAPI.SetContext(ctx) } diff --git a/docs/04-功能迭代/GO-DESK-2.数据库客户端/任务规划.md b/docs/04-功能迭代/GO-DESK-2.数据库客户端/任务规划.md index fe13c85..04ecf6d 100644 --- a/docs/04-功能迭代/GO-DESK-2.数据库客户端/任务规划.md +++ b/docs/04-功能迭代/GO-DESK-2.数据库客户端/任务规划.md @@ -24,10 +24,10 @@ - [x] 右键菜单系统实现([功能-001](../问题追踪/待实现/功能-001-右键菜单系统实现.md)) - [x] 测试用例编写 - [x] 表结构编辑功能(基础框架) +- [x] 测试连接功能 ### 进行中 🔄 - [ ] 表结构编辑功能(可编辑表格、数据验证、后端API) -- [ ] 测试连接功能 ### 计划中 📋 - [ ] 多数据库类型支持扩展 @@ -123,18 +123,18 @@ ## 🔄 下一步计划 ### P0(必须完成) -1. **解决 [问题-001](./问题追踪/待讨论/问题-001-右键菜单实现方式.md)** ⚠️ 阻塞 -2. **实现 [功能-001](./问题追踪/待实现/功能-001-右键菜单系统实现.md)** 🚀 核心功能 -3. **测试用例编写** 📝 质量保证 +1. **完善表结构编辑功能** 🚀 核心功能(可编辑表格、数据验证、后端API) +2. **性能优化** 📊 用户体验 +3. **错误处理优化** 🛡️ 稳定性 ### P1(重要功能) -1. 表结构编辑功能实现 -2. 性能优化 -3. 用户体验优化 +1. 数据导出、导入功能 +2. 查询历史管理 +3. 结果集分页和筛选 ### P2(优化功能) 1. 多数据库类型支持扩展 -2. 高级功能(数据导出、导入等) +2. 高级功能(数据同步、备份等) --- diff --git a/docs/PROJECT_STATUS.md b/docs/PROJECT_STATUS.md new file mode 100644 index 0000000..00f3b17 --- /dev/null +++ b/docs/PROJECT_STATUS.md @@ -0,0 +1,157 @@ +# U-Desk 项目状态 + +**更新日期**:2025-01-28 +**版本**:v0.2.0 (开发中) +**状态**:🚧 开发版本 + +--- + +## 📊 项目概览 + +U-Desk 是基于 Wails 的桌面应用程序,集成了数据库客户端、文件管理、设备测试等功能。 + +### 核心模块 + +| 模块 | 状态 | 说明 | +|------|------|------| +| 数据库客户端 | ✅ 完成 | 支持 MySQL、Redis、MongoDB | +| 文件管理 | ✅ 完成 | 模块化架构,支持预览和操作 | +| 设备测试 | ✅ 完成 | 系统设备信息查询 | +| 更新管理 | ✅ 完成 | 应用版本检查和自动更新 | + +--- + +## 🎯 最近更新 (2025-01-28) + +### 架构优化 +- ✅ **文件系统模块化重构**:将文件管理功能拆分为多个独立模块 + - `path_validator.go` - 路径验证 + - `filetype_manager.go` - 文件类型管理 + - `directory_stats.go` - 目录统计 + - `audit_log.go` - 审计日志 + - `file_lock.go` - 文件锁 + - `recycle_bin.go` - 回收站 + - `zip.go` / `zip_helper.go` - ZIP 压缩 + - `service.go` - 核心服务 + - `asset_handler.go` - 资源处理 + +- ✅ **应用启动流程优化**: + - SQLite 快速初始化 + - 核心 API 同步初始化 + - 文件服务器异步启动 + - UpdateAPI 异步初始化(涉及网络请求) + +### 前端优化 +- ✅ 新增 `CodeEditor.vue` 组件 +- ✅ 新增 Composables: + - `useFileOperations.js` - 文件操作 + - `useFavoriteFiles.js` - 收藏文件 + - `useLocalStorage.js` - 本地存储 +- ✅ 新增工具函数: + - `constants.js` - 常量定义 + - `fileUtils.js` - 文件工具 + - `debugLog.js` - 调试日志 + +### 数据库客户端 +- ✅ MVP 功能全部完成 +- ✅ 右键菜单系统实现 +- ✅ 表结构查看功能(MySQL、MongoDB、Redis) +- ✅ 测试连接功能 + +--- + +## 📚 文档 + +### 设计文档 +- `docs/04-功能迭代/GO-DESK-1.尝试/` - 应用初始化和设备测试 +- `docs/04-功能迭代/GO-DESK-2.数据库客户端/` - 数据库客户端完整文档 + +### 重构文档 +- `docs/filesystem-*.md` - 文件系统重构系列文档 +- `docs/架构改进*.md` - 架构改进文档 + +--- + +## 🚀 快速开始 + +### 开发环境 + +```bash +# 安装依赖 +go mod tidy +cd web && npm install + +# 构建前端 +cd web && npm run build + +# 开发模式 +wails dev +``` + +### 构建 + +```bash +# 构建应用 +wails build + +# 产物位置 +build/bin/go-desk.exe +``` + +--- + +## 🔧 技术栈 + +- **后端**:Go 1.25+、Wails v2 +- **前端**:Vue 3、Arco Design Vue、Vite +- **存储**:SQLite、MySQL、Redis、MongoDB + +--- + +## 📋 待办事项 + +### P0 (高优先级) +- [ ] 完善表结构编辑功能 +- [ ] 性能优化 +- [ ] 错误处理优化 + +### P1 (中优先级) +- [ ] 数据导出、导入功能 +- [ ] 查询历史管理 +- [ ] 结果集分页和筛选 + +### P2 (低优先级) +- [ ] 多数据库类型支持扩展 +- [ ] 高级功能(数据同步、备份等) + +--- + +## 📝 版本历史 + +### v0.2.0 (2025-01-28) +- ✅ 模块重命名:go-desk → u-desk +- ✅ 依赖更新:所有依赖包更新到最新版本 +- ✅ 文档更新:版本号调整为开发版本 + +### v0.1.0 (2025-01-28) +- ✅ 文件系统模块化重构 +- ✅ 应用启动流程优化 +- ✅ 数据库客户端 MVP 完成 +- ✅ 文档更新 + +### v0.9.0 (2025-01-27) +- ✅ 文件管理功能 +- ✅ 设备测试功能 +- ✅ 更新管理功能 + +--- + +## 👥 贡献 + +本项目用于学习和测试目的。 + +--- + +## 📄 许可 + +本项目仅供学习和测试使用。 diff --git a/go.mod b/go.mod index 3cf45e7..6ec74de 100644 --- a/go.mod +++ b/go.mod @@ -1,16 +1,16 @@ -module go-desk +module u-desk go 1.25.4 require ( github.com/glebarez/sqlite v1.11.0 - github.com/go-sql-driver/mysql v1.8.1 - github.com/redis/go-redis/v9 v9.17.2 + github.com/go-sql-driver/mysql v1.9.3 + github.com/redis/go-redis/v9 v9.17.3 github.com/shirou/gopsutil/v3 v3.24.5 github.com/wailsapp/wails/v2 v2.11.0 - go.mongodb.org/mongo-driver v1.17.6 + go.mongodb.org/mongo-driver v1.17.7 gorm.io/driver/mysql v1.6.0 - gorm.io/gorm v1.31.0 + gorm.io/gorm v1.31.1 ) require ( @@ -19,52 +19,54 @@ require ( github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/dustin/go-humanize v1.0.1 // indirect - github.com/glebarez/go-sqlite v1.21.2 // indirect + github.com/glebarez/go-sqlite v1.22.0 // indirect github.com/go-ole/go-ole v1.3.0 // indirect - github.com/godbus/dbus/v5 v5.1.0 // indirect - github.com/golang/snappy v0.0.4 // indirect + github.com/godbus/dbus/v5 v5.2.2 // indirect + github.com/golang/snappy v1.0.0 // indirect github.com/google/uuid v1.6.0 // indirect github.com/gorilla/websocket v1.5.3 // indirect - github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e // indirect + github.com/jchv/go-winloader v0.0.0-20250406163304-c1995be93bd1 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.5 // indirect - github.com/klauspost/compress v1.16.7 // indirect - github.com/labstack/echo/v4 v4.13.3 // indirect + github.com/klauspost/compress v1.18.3 // indirect + github.com/labstack/echo/v4 v4.15.0 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/leaanthony/go-ansi-parser v1.6.1 // indirect github.com/leaanthony/gosod v1.0.4 // indirect github.com/leaanthony/slicer v1.6.0 // indirect github.com/leaanthony/u v1.1.1 // indirect - github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect + github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/montanaflynn/stats v0.7.1 // indirect + github.com/ncruces/go-strftime v1.0.0 // indirect github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect + github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 // indirect github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect github.com/rivo/uniseg v0.4.7 // indirect - github.com/samber/lo v1.49.1 // indirect - github.com/shoenig/go-m1cpu v0.1.6 // indirect - github.com/tklauser/go-sysconf v0.3.12 // indirect - github.com/tklauser/numcpus v0.6.1 // indirect + github.com/samber/lo v1.52.0 // indirect + github.com/shoenig/go-m1cpu v0.1.7 // indirect + github.com/tklauser/go-sysconf v0.3.16 // indirect + github.com/tklauser/numcpus v0.11.0 // indirect github.com/tkrajina/go-reflector v0.5.8 // indirect github.com/valyala/bytebufferpool v1.0.0 // indirect github.com/valyala/fasttemplate v1.2.2 // indirect - github.com/wailsapp/go-webview2 v1.0.22 // indirect + github.com/wailsapp/go-webview2 v1.0.23 // indirect github.com/wailsapp/mimetype v1.4.1 // indirect github.com/xdg-go/pbkdf2 v1.0.0 // indirect - github.com/xdg-go/scram v1.1.2 // indirect + github.com/xdg-go/scram v1.2.0 // indirect github.com/xdg-go/stringprep v1.0.4 // indirect github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 // indirect github.com/yusufpapurcu/wmi v1.2.4 // indirect - golang.org/x/crypto v0.33.0 // indirect - golang.org/x/net v0.35.0 // indirect - golang.org/x/sync v0.11.0 // indirect - golang.org/x/sys v0.30.0 // indirect - golang.org/x/text v0.22.0 // indirect - modernc.org/libc v1.22.5 // indirect - modernc.org/mathutil v1.5.0 // indirect - modernc.org/memory v1.5.0 // indirect - modernc.org/sqlite v1.23.1 // indirect + golang.org/x/crypto v0.47.0 // indirect + golang.org/x/exp v0.0.0-20260112195511-716be5621a96 // indirect + golang.org/x/net v0.49.0 // indirect + golang.org/x/sync v0.19.0 // indirect + golang.org/x/sys v0.40.0 // indirect + golang.org/x/text v0.33.0 // indirect + modernc.org/libc v1.67.7 // indirect + modernc.org/mathutil v1.7.1 // indirect + modernc.org/memory v1.11.0 // indirect + modernc.org/sqlite v1.44.3 // indirect ) diff --git a/go.sum b/go.sum index 26db2f6..51af1ef 100644 --- a/go.sum +++ b/go.sum @@ -14,38 +14,39 @@ github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/r github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/glebarez/go-sqlite v1.21.2 h1:3a6LFC4sKahUunAmynQKLZceZCOzUthkRkEAl9gAXWo= -github.com/glebarez/go-sqlite v1.21.2/go.mod h1:sfxdZyhQjTM2Wry3gVYWaW072Ri1WMdWJi0k6+3382k= +github.com/glebarez/go-sqlite v1.22.0 h1:uAcMJhaA6r3LHMTFgP0SifzgXg46yJkgxqyuyec+ruQ= +github.com/glebarez/go-sqlite v1.22.0/go.mod h1:PlBIdHe0+aUEFn+r2/uthrWq4FxbzugL0L8Li6yQJbc= github.com/glebarez/sqlite v1.11.0 h1:wSG0irqzP6VurnMEpFGer5Li19RpIRi2qvQz++w0GMw= github.com/glebarez/sqlite v1.11.0/go.mod h1:h8/o8j5wiAsqSPoWELDUdJXhjAhsVliSn7bWZjOhrgQ= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= -github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= -github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= -github.com/godbus/dbus/v5 v5.1.0 h1:4KLkAxT3aOY8Li4FRJe/KvhoNFFxo0m6fNuFUO8QJUk= -github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= -github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26 h1:Xim43kblpZXfIBQsbuBVKCudVG457BR2GZFIz3uw3hQ= -github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= +github.com/go-sql-driver/mysql v1.9.3 h1:U/N249h2WzJ3Ukj8SowVFjdtZKfu9vlLZxjPXV1aweo= +github.com/go-sql-driver/mysql v1.9.3/go.mod h1:qn46aNg1333BRMNU69Lq93t8du/dwxI64Gl8i5p1WMU= +github.com/godbus/dbus/v5 v5.2.2 h1:TUR3TgtSVDmjiXOgAAyaZbYmIeP3DPkld3jgKGV8mXQ= +github.com/godbus/dbus/v5 v5.2.2/go.mod h1:3AAv2+hPq5rdnr5txxxRwiGjPXamgoIHgz9FPBfOp3c= +github.com/golang/snappy v1.0.0 h1:Oy607GVXHs7RtbggtPBnr2RmDArIsAefDwvrdWvRhGs= +github.com/golang/snappy v1.0.0/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e h1:ijClszYn+mADRFY17kjQEVQ1XRhq2/JR1M3sGqeJoxs= +github.com/google/pprof v0.0.0-20250317173921-a4b03ec1a45e/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e h1:Q3+PugElBCf4PFpxhErSzU3/PY5sFL5Z6rfv4AbGAck= -github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e/go.mod h1:alcuEEnZsY1WQsagKhZDsoPCRoOijYqhZvPwLG0kzVs= +github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= +github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/jchv/go-winloader v0.0.0-20250406163304-c1995be93bd1 h1:njuLRcjAuMKr7kI3D85AXWkw6/+v9PwtV6M6o11sWHQ= +github.com/jchv/go-winloader v0.0.0-20250406163304-c1995be93bd1/go.mod h1:alcuEEnZsY1WQsagKhZDsoPCRoOijYqhZvPwLG0kzVs= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= -github.com/klauspost/compress v1.16.7 h1:2mk3MPGNzKyxErAw8YaohYh69+pa4sIQSC0fPGCFR9I= -github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= -github.com/labstack/echo/v4 v4.13.3 h1:pwhpCPrTl5qry5HRdM5FwdXnhXSLSY+WE+YQSeCaafY= -github.com/labstack/echo/v4 v4.13.3/go.mod h1:o90YNEeQWjDozo584l7AwhJMHN0bOC4tAfg+Xox9q5g= +github.com/klauspost/compress v1.18.3 h1:9PJRvfbmTabkOX8moIpXPbMMbYN60bWImDDU7L+/6zw= +github.com/klauspost/compress v1.18.3/go.mod h1:R0h/fSBs8DE4ENlcrlib3PsXS61voFxhIs2DeRhCvJ4= +github.com/labstack/echo/v4 v4.15.0 h1:hoRTKWcnR5STXZFe9BmYun9AMTNeSbjHi2vtDuADJ24= +github.com/labstack/echo/v4 v4.15.0/go.mod h1:xmw1clThob0BSVRX1CRQkGQ/vjwcpOMjQZSZa9fKA/c= github.com/labstack/gommon v0.4.2 h1:F8qTUNXgG1+6WQmqoUWnz8WiEU60mXVVw0P4ht1WRA0= github.com/labstack/gommon v0.4.2/go.mod h1:QlUFxVM+SNXhDL/Z7YhocGIBYOiwB0mXm1+1bAPHPyU= github.com/leaanthony/debme v1.2.1 h1:9Tgwf+kjcrbMQ4WnPcEIUcQuIZYqdWftzZkBr+i/oOc= @@ -58,64 +59,64 @@ github.com/leaanthony/slicer v1.6.0 h1:1RFP5uiPJvT93TAHi+ipd3NACobkW53yUiBqZheE/ github.com/leaanthony/slicer v1.6.0/go.mod h1:o/Iz29g7LN0GqH3aMjWAe90381nyZlDNquK+mtH2Fj8= github.com/leaanthony/u v1.1.1 h1:TUFjwDGlNX+WuwVEzDqQwC2lOv0P4uhTQw7CMFdiK7M= github.com/leaanthony/u v1.1.1/go.mod h1:9+o6hejoRljvZ3BzdYlVL0JYCwtnAsVuN9pVTQcaRfI= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= +github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3 h1:PwQumkgq4/acIiZhtifTV5OUqqiP82UAl0h87xj/l9k= +github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3/go.mod h1:autxFIvghDt3jPTLoqZ9OZ7s9qTGNAWmYCjVFWPX/zg= github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/matryer/is v1.4.1 h1:55ehd8zaGABKLXQUe2awZ99BD/PTc2ls+KV/dXphgEQ= github.com/matryer/is v1.4.1/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE= github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= +github.com/ncruces/go-strftime v1.0.0 h1:HMFp8mLCTPp341M/ZnA4qaf7ZlsbTc+miZjCLOFAw7w= +github.com/ncruces/go-strftime v1.0.0/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= -github.com/redis/go-redis/v9 v9.17.2 h1:P2EGsA4qVIM3Pp+aPocCJ7DguDHhqrXNhVcEp4ViluI= -github.com/redis/go-redis/v9 v9.17.2/go.mod h1:u410H11HMLoB+TP67dz8rL9s6QW2j76l0//kSOd3370= -github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= +github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55 h1:o4JXh1EVt9k/+g42oCprj/FisM4qX9L3sZB3upGN2ZU= +github.com/power-devops/perfstat v0.0.0-20240221224432-82ca36839d55/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= +github.com/redis/go-redis/v9 v9.17.3 h1:fN29NdNrE17KttK5Ndf20buqfDZwGNgoUr9qjl1DQx4= +github.com/redis/go-redis/v9 v9.17.3/go.mod h1:u410H11HMLoB+TP67dz8rL9s6QW2j76l0//kSOd3370= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= -github.com/samber/lo v1.49.1 h1:4BIFyVfuQSEpluc7Fua+j1NolZHiEHEpaSEKdsH0tew= -github.com/samber/lo v1.49.1/go.mod h1:dO6KHFzUKXgP8LDhU0oI8d2hekjXnGOu0DB8Jecxd6o= +github.com/samber/lo v1.52.0 h1:Rvi+3BFHES3A8meP33VPAxiBZX/Aws5RxrschYGjomw= +github.com/samber/lo v1.52.0/go.mod h1:4+MXEGsJzbKGaUEQFKBq2xtfuznW9oz/WrgyzMzRoM0= github.com/shirou/gopsutil/v3 v3.24.5 h1:i0t8kL+kQTvpAYToeuiVk3TgDeKOFioZO3Ztz/iZ9pI= github.com/shirou/gopsutil/v3 v3.24.5/go.mod h1:bsoOS1aStSs9ErQ1WWfxllSeS1K5D+U30r2NfcubMVk= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= -github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU= -github.com/shoenig/test v0.6.4/go.mod h1:byHiCGXqrVaflBLAMq/srcZIHynQPQgeyvkvXnjqq0k= -github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= -github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= +github.com/shoenig/go-m1cpu v0.1.7 h1:C76Yd0ObKR82W4vhfjZiCp0HxcSZ8Nqd84v+HZ0qyI0= +github.com/shoenig/go-m1cpu v0.1.7/go.mod h1:KkDOw6m3ZJQAPHbrzkZki4hnx+pDRR1Lo+ldA56wD5w= +github.com/shoenig/test v1.7.0 h1:eWcHtTXa6QLnBvm0jgEabMRN/uJ4DMV3M8xUGgRkZmk= +github.com/shoenig/test v1.7.0/go.mod h1:UxJ6u/x2v/TNs/LoLxBNJRV9DiwBBKYxXSyczsBHFoI= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/tklauser/go-sysconf v0.3.16 h1:frioLaCQSsF5Cy1jgRBrzr6t502KIIwQ0MArYICU0nA= +github.com/tklauser/go-sysconf v0.3.16/go.mod h1:/qNL9xxDhc7tx3HSRsLWNnuzbVfh3e7gh/BmM179nYI= +github.com/tklauser/numcpus v0.11.0 h1:nSTwhKH5e1dMNsCdVBukSZrURJRoHbSEQjdEbY+9RXw= +github.com/tklauser/numcpus v0.11.0/go.mod h1:z+LwcLq54uWZTX0u/bGobaV34u6V7KNlTZejzM6/3MQ= github.com/tkrajina/go-reflector v0.5.8 h1:yPADHrwmUbMq4RGEyaOUpz2H90sRsETNVpjzo3DLVQQ= github.com/tkrajina/go-reflector v0.5.8/go.mod h1:ECbqLgccecY5kPmPmXg1MrHW585yMcDkVl6IvJe64T4= github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/fasttemplate v1.2.2 h1:lxLXG0uE3Qnshl9QyaK6XJxMXlQZELvChBOCmQD0Loo= github.com/valyala/fasttemplate v1.2.2/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= -github.com/wailsapp/go-webview2 v1.0.22 h1:YT61F5lj+GGaat5OB96Aa3b4QA+mybD0Ggq6NZijQ58= -github.com/wailsapp/go-webview2 v1.0.22/go.mod h1:qJmWAmAmaniuKGZPWwne+uor3AHMB5PFhqiK0Bbj8kc= +github.com/wailsapp/go-webview2 v1.0.23 h1:jmv8qhz1lHibCc79bMM/a/FqOnnzOGEisLav+a0b9P0= +github.com/wailsapp/go-webview2 v1.0.23/go.mod h1:qJmWAmAmaniuKGZPWwne+uor3AHMB5PFhqiK0Bbj8kc= github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs= github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o= github.com/wailsapp/wails/v2 v2.11.0 h1:seLacV8pqupq32IjS4Y7V8ucab0WZwtK6VvUVxSBtqQ= github.com/wailsapp/wails/v2 v2.11.0/go.mod h1:jrf0ZaM6+GBc1wRmXsM8cIvzlg0karYin3erahI4+0k= github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= -github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= +github.com/xdg-go/scram v1.2.0 h1:bYKF2AEwG5rqd1BumT4gAnvwU/M9nBp2pTSxeZw7Wvs= +github.com/xdg-go/scram v1.2.0/go.mod h1:3dlrS0iBaWKYVt2ZfA4cj48umJZ+cAEbR6/SjLA88I8= github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8= github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78 h1:ilQV1hzziu+LLM3zUTJ0trRztfwgjqKnBWNtSRkbmwM= @@ -123,23 +124,27 @@ github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78/go.mod h1:aL8wCCfTfS github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0= github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= -go.mongodb.org/mongo-driver v1.17.6 h1:87JUG1wZfWsr6rIz3ZmpH90rL5tea7O3IHuSwHUpsss= -go.mongodb.org/mongo-driver v1.17.6/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ= +go.mongodb.org/mongo-driver v1.17.7 h1:a9w+U3Vt67eYzcfq3k/OAv284/uUUkL0uP75VE5rCOU= +go.mongodb.org/mongo-driver v1.17.7/go.mod h1:Hy04i7O2kC4RS06ZrhPRqj/u4DTYkFDAAccj+rVKqgQ= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= -golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= +golang.org/x/crypto v0.47.0 h1:V6e3FRj+n4dbpw86FJ8Fv7XVOql7TEwpHapKoMJ/GO8= +golang.org/x/crypto v0.47.0/go.mod h1:ff3Y9VzzKbwSSEzWqJsJVBnWmRwRSHt/6Op5n9bQc4A= +golang.org/x/exp v0.0.0-20260112195511-716be5621a96 h1:Z/6YuSHTLOHfNFdb8zVZomZr7cqNgTJvA8+Qz75D8gU= +golang.org/x/exp v0.0.0-20260112195511-716be5621a96/go.mod h1:nzimsREAkjBCIEFtHiYkrJyT+2uy9YZJB7H1k68CXZU= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.32.0 h1:9F4d3PHLljb6x//jOyokMv3eX+YDeepZSEo3mFJy93c= +golang.org/x/mod v0.32.0/go.mod h1:SgipZ/3h2Ci89DlEtEXWUk/HteuRin+HHhN+WbNhguU= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8= -golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk= +golang.org/x/net v0.49.0 h1:eeHFmOGUTtaaPSGNmjBKpbng9MulQsJURQUAfUwY++o= +golang.org/x/net v0.49.0/go.mod h1:/ysNB2EvaqvesRkuLAyjI1ycPZlQHM3q01F02UY/MV8= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w= -golang.org/x/sync v0.11.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.19.0 h1:vV+1eWNmZ5geRlYjzm2adRgW2/mcpevXNg50YZtPCE4= +golang.org/x/sync v0.19.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -149,13 +154,10 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= -golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.40.0 h1:DBZZqJ2Rkml6QMQsZywtnjnnGvHza6BTfYFWY9kjEWQ= +golang.org/x/sys v0.40.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -163,24 +165,45 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= -golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= -golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= +golang.org/x/text v0.33.0 h1:B3njUFyqtHDUI5jMn1YIr5B0IE2U0qck04r6d4KPAxE= +golang.org/x/text v0.33.0/go.mod h1:LuMebE6+rBincTi9+xWTY8TztLzKHc/9C1uBCG27+q8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.41.0 h1:a9b8iMweWG+S0OBnlU36rzLp20z1Rp10w+IY2czHTQc= +golang.org/x/tools v0.41.0/go.mod h1:XSY6eDqxVNiYgezAVqqCeihT4j1U2CCsqvH3WhQpnlg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/mysql v1.6.0 h1:eNbLmNTpPpTOVZi8MMxCi2aaIm0ZpInbORNXDwyLGvg= gorm.io/driver/mysql v1.6.0/go.mod h1:D/oCC2GWK3M/dqoLxnOlaNKmXz8WNTfcS9y5ovaSqKo= -gorm.io/gorm v1.31.0 h1:0VlycGreVhK7RF/Bwt51Fk8v0xLiiiFdbGDPIZQ7mJY= -gorm.io/gorm v1.31.0/go.mod h1:XyQVbO2k6YkOis7C2437jSit3SsDK72s7n7rsSHd+Gs= -modernc.org/libc v1.22.5 h1:91BNch/e5B0uPbJFgqbxXuOnxBQjlS//icfQEGmvyjE= -modernc.org/libc v1.22.5/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY= -modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ= -modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E= -modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds= -modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU= -modernc.org/sqlite v1.23.1 h1:nrSBg4aRQQwq59JpvGEQ15tNxoO5pX/kUjcRNwSAGQM= -modernc.org/sqlite v1.23.1/go.mod h1:OrDj17Mggn6MhE+iPbBNf7RGKODDE9NFT0f3EwDzJqk= +gorm.io/gorm v1.31.1 h1:7CA8FTFz/gRfgqgpeKIBcervUn3xSyPUmr6B2WXJ7kg= +gorm.io/gorm v1.31.1/go.mod h1:XyQVbO2k6YkOis7C2437jSit3SsDK72s7n7rsSHd+Gs= +modernc.org/cc/v4 v4.27.1 h1:9W30zRlYrefrDV2JE2O8VDtJ1yPGownxciz5rrbQZis= +modernc.org/cc/v4 v4.27.1/go.mod h1:uVtb5OGqUKpoLWhqwNQo/8LwvoiEBLvZXIQ/SmO6mL0= +modernc.org/ccgo/v4 v4.30.1 h1:4r4U1J6Fhj98NKfSjnPUN7Ze2c6MnAdL0hWw6+LrJpc= +modernc.org/ccgo/v4 v4.30.1/go.mod h1:bIOeI1JL54Utlxn+LwrFyjCx2n2RDiYEaJVSrgdrRfM= +modernc.org/fileutil v1.3.40 h1:ZGMswMNc9JOCrcrakF1HrvmergNLAmxOPjizirpfqBA= +modernc.org/fileutil v1.3.40/go.mod h1:HxmghZSZVAz/LXcMNwZPA/DRrQZEVP9VX0V4LQGQFOc= +modernc.org/gc/v2 v2.6.5 h1:nyqdV8q46KvTpZlsw66kWqwXRHdjIlJOhG6kxiV/9xI= +modernc.org/gc/v2 v2.6.5/go.mod h1:YgIahr1ypgfe7chRuJi2gD7DBQiKSLMPgBQe9oIiito= +modernc.org/gc/v3 v3.1.1 h1:k8T3gkXWY9sEiytKhcgyiZ2L0DTyCQ/nvX+LoCljoRE= +modernc.org/gc/v3 v3.1.1/go.mod h1:HFK/6AGESC7Ex+EZJhJ2Gni6cTaYpSMmU/cT9RmlfYY= +modernc.org/goabi0 v0.2.0 h1:HvEowk7LxcPd0eq6mVOAEMai46V+i7Jrj13t4AzuNks= +modernc.org/goabi0 v0.2.0/go.mod h1:CEFRnnJhKvWT1c1JTI3Avm+tgOWbkOu5oPA8eH8LnMI= +modernc.org/libc v1.67.7 h1:H+gYQw2PyidyxwxQsGTwQw6+6H+xUk+plvOKW7+d3TI= +modernc.org/libc v1.67.7/go.mod h1:UjCSJFl2sYbJbReVQeVpq/MgzlbmDM4cRHIYFelnaDk= +modernc.org/mathutil v1.7.1 h1:GCZVGXdaN8gTqB1Mf/usp1Y/hSqgI2vAGGP4jZMCxOU= +modernc.org/mathutil v1.7.1/go.mod h1:4p5IwJITfppl0G4sUEDtCr4DthTaT47/N3aT6MhfgJg= +modernc.org/memory v1.11.0 h1:o4QC8aMQzmcwCK3t3Ux/ZHmwFPzE6hf2Y5LbkRs+hbI= +modernc.org/memory v1.11.0/go.mod h1:/JP4VbVC+K5sU2wZi9bHoq2MAkCnrt2r98UGeSK7Mjw= +modernc.org/opt v0.1.4 h1:2kNGMRiUjrp4LcaPuLY2PzUfqM/w9N23quVwhKt5Qm8= +modernc.org/opt v0.1.4/go.mod h1:03fq9lsNfvkYSfxrfUhZCWPk1lm4cq4N+Bh//bEtgns= +modernc.org/sortutil v1.2.1 h1:+xyoGf15mM3NMlPDnFqrteY07klSFxLElE2PVuWIJ7w= +modernc.org/sortutil v1.2.1/go.mod h1:7ZI3a3REbai7gzCLcotuw9AC4VZVpYMjDzETGsSMqJE= +modernc.org/sqlite v1.44.3 h1:+39JvV/HWMcYslAwRxHb8067w+2zowvFOUrOWIy9PjY= +modernc.org/sqlite v1.44.3/go.mod h1:CzbrU2lSB1DKUusvwGz7rqEKIq+NUd8GWuBBZDs9/nA= +modernc.org/strutil v1.2.1 h1:UneZBkQA+DX2Rp35KcM69cSsNES9ly8mQWD71HKlOA0= +modernc.org/strutil v1.2.1/go.mod h1:EHkiggD70koQxjVdSBM3JKM7k6L0FbGE5eymy9i3B9A= +modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= +modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= diff --git a/internal/api/connection_api.go b/internal/api/connection_api.go index fcf0359..f9d88f8 100644 --- a/internal/api/connection_api.go +++ b/internal/api/connection_api.go @@ -1,8 +1,8 @@ package api import ( - "go-desk/internal/service" - "go-desk/internal/storage/models" + "u-desk/internal/service" + "u-desk/internal/storage/models" ) // ConnectionAPI 连接管理API diff --git a/internal/api/sql_api.go b/internal/api/sql_api.go index c021fba..b5829f9 100644 --- a/internal/api/sql_api.go +++ b/internal/api/sql_api.go @@ -2,9 +2,9 @@ package api import ( "encoding/json" - "go-desk/internal/service" - "go-desk/internal/storage/models" - "go-desk/internal/storage/repository" + "u-desk/internal/service" + "u-desk/internal/storage/models" + "u-desk/internal/storage/repository" ) type SqlAPI struct { diff --git a/internal/api/tab_api.go b/internal/api/tab_api.go index ef91960..fdc15eb 100644 --- a/internal/api/tab_api.go +++ b/internal/api/tab_api.go @@ -2,8 +2,8 @@ package api import ( "fmt" - "go-desk/internal/service" - "go-desk/internal/storage/models" + "u-desk/internal/service" + "u-desk/internal/storage/models" ) // TabAPI 标签页API diff --git a/internal/api/update_api.go b/internal/api/update_api.go index 0188aa7..4109a1f 100644 --- a/internal/api/update_api.go +++ b/internal/api/update_api.go @@ -3,7 +3,7 @@ package api import ( "context" "encoding/json" - "go-desk/internal/service" + "u-desk/internal/service" "time" "github.com/wailsapp/wails/v2/pkg/runtime" diff --git a/internal/database/db.go b/internal/database/db.go index 58654d1..2e5310d 100644 --- a/internal/database/db.go +++ b/internal/database/db.go @@ -3,7 +3,7 @@ package database import ( "errors" "fmt" - "go-desk/internal/model" + "u-desk/internal/model" "time" mysqldriver "github.com/go-sql-driver/mysql" diff --git a/internal/dbclient/mongo.go b/internal/dbclient/mongo.go index 24aaae2..0f5af75 100644 --- a/internal/dbclient/mongo.go +++ b/internal/dbclient/mongo.go @@ -5,7 +5,7 @@ import ( "fmt" "net/url" - "go-desk/internal/common" + "u-desk/internal/common" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" diff --git a/internal/dbclient/pool.go b/internal/dbclient/pool.go index 7fc8c86..ec2c733 100644 --- a/internal/dbclient/pool.go +++ b/internal/dbclient/pool.go @@ -6,9 +6,9 @@ import ( "fmt" "sync" - "go-desk/internal/common" - "go-desk/internal/crypto" - "go-desk/internal/storage/models" + "u-desk/internal/common" + "u-desk/internal/crypto" + "u-desk/internal/storage/models" ) // ConnectionPool 连接池管理器 diff --git a/internal/dbclient/redis.go b/internal/dbclient/redis.go index b0bb27d..998a243 100644 --- a/internal/dbclient/redis.go +++ b/internal/dbclient/redis.go @@ -5,7 +5,7 @@ import ( "fmt" "time" - "go-desk/internal/common" + "u-desk/internal/common" "github.com/redis/go-redis/v9" ) diff --git a/internal/service/connection_service.go b/internal/service/connection_service.go index 78eec10..9708581 100644 --- a/internal/service/connection_service.go +++ b/internal/service/connection_service.go @@ -3,10 +3,10 @@ package service import ( "encoding/json" "fmt" - "go-desk/internal/crypto" - "go-desk/internal/dbclient" - "go-desk/internal/storage/models" - "go-desk/internal/storage/repository" + "u-desk/internal/crypto" + "u-desk/internal/dbclient" + "u-desk/internal/storage/models" + "u-desk/internal/storage/repository" ) // ConnectionService 连接管理服务 diff --git a/internal/service/sql_exec_service.go b/internal/service/sql_exec_service.go index 54d6fe5..2ab7c50 100644 --- a/internal/service/sql_exec_service.go +++ b/internal/service/sql_exec_service.go @@ -7,10 +7,10 @@ import ( "strings" "time" - "go-desk/internal/common" - "go-desk/internal/dbclient" - "go-desk/internal/storage/models" - "go-desk/internal/storage/repository" + "u-desk/internal/common" + "u-desk/internal/dbclient" + "u-desk/internal/storage/models" + "u-desk/internal/storage/repository" ) // SqlExecService SQL执行服务 diff --git a/internal/service/tab_service.go b/internal/service/tab_service.go index 0bffddb..831d828 100644 --- a/internal/service/tab_service.go +++ b/internal/service/tab_service.go @@ -2,8 +2,8 @@ package service import ( "fmt" - "go-desk/internal/storage/models" - "go-desk/internal/storage/repository" + "u-desk/internal/storage/models" + "u-desk/internal/storage/repository" ) // TabService 标签页管理服务 diff --git a/internal/service/update_config.go b/internal/service/update_config.go index c7ee3d7..18663ff 100644 --- a/internal/service/update_config.go +++ b/internal/service/update_config.go @@ -47,7 +47,7 @@ func LoadUpdateConfig() (*UpdateConfig, error) { LastCheckTime: time.Time{}, AutoCheckEnabled: true, CheckIntervalMinutes: 1, - CheckURL: "https://img.1216.top/go-desk/last-version.json", + CheckURL: "https://img.1216.top/u-desk/last-version.json", }, nil } @@ -85,7 +85,7 @@ func LoadUpdateConfig() (*UpdateConfig, error) { // 使用默认检查地址 if config.CheckURL == "" { - config.CheckURL = "https://img.1216.top/go-desk/last-version.json" + config.CheckURL = "https://img.1216.top/u-desk/last-version.json" } return &config, nil diff --git a/internal/storage/connection_service.go b/internal/storage/connection_service.go index ca7f92d..6f9452c 100644 --- a/internal/storage/connection_service.go +++ b/internal/storage/connection_service.go @@ -3,9 +3,9 @@ package storage import ( "encoding/json" "fmt" - "go-desk/internal/crypto" - "go-desk/internal/dbclient" - "go-desk/internal/storage/models" + "u-desk/internal/crypto" + "u-desk/internal/dbclient" + "u-desk/internal/storage/models" "gorm.io/gorm" ) diff --git a/internal/storage/repository/connection_repo.go b/internal/storage/repository/connection_repo.go index 3d5458d..10f7ac0 100644 --- a/internal/storage/repository/connection_repo.go +++ b/internal/storage/repository/connection_repo.go @@ -1,8 +1,8 @@ package repository import ( - "go-desk/internal/storage" - "go-desk/internal/storage/models" + "u-desk/internal/storage" + "u-desk/internal/storage/models" "gorm.io/gorm" ) diff --git a/internal/storage/repository/result_repo.go b/internal/storage/repository/result_repo.go index 916f010..08b47eb 100644 --- a/internal/storage/repository/result_repo.go +++ b/internal/storage/repository/result_repo.go @@ -2,8 +2,8 @@ package repository import ( "encoding/json" - "go-desk/internal/storage" - "go-desk/internal/storage/models" + "u-desk/internal/storage" + "u-desk/internal/storage/models" "gorm.io/gorm" "time" ) diff --git a/internal/storage/repository/tab_repo.go b/internal/storage/repository/tab_repo.go index 3cd6e86..3873daf 100644 --- a/internal/storage/repository/tab_repo.go +++ b/internal/storage/repository/tab_repo.go @@ -1,8 +1,8 @@ package repository import ( - "go-desk/internal/storage" - "go-desk/internal/storage/models" + "u-desk/internal/storage" + "u-desk/internal/storage/models" "gorm.io/gorm" ) diff --git a/internal/storage/sqlite.go b/internal/storage/sqlite.go index fe5890b..c819d95 100644 --- a/internal/storage/sqlite.go +++ b/internal/storage/sqlite.go @@ -1,7 +1,7 @@ package storage import ( - "go-desk/internal/storage/models" + "u-desk/internal/storage/models" "os" "path/filepath" "time" diff --git a/internal/system/system.go b/internal/system/system.go index 946ae17..7380de5 100644 --- a/internal/system/system.go +++ b/internal/system/system.go @@ -4,7 +4,7 @@ import ( "fmt" "runtime" - "go-desk/internal/common" + "u-desk/internal/common" "github.com/shirou/gopsutil/v3/cpu" "github.com/shirou/gopsutil/v3/disk" diff --git a/main.go b/main.go index 72e5d2e..1299c4f 100644 --- a/main.go +++ b/main.go @@ -6,7 +6,7 @@ import ( "path/filepath" "runtime" - "go-desk/internal/filesystem" + "u-desk/internal/filesystem" "github.com/wailsapp/wails/v2" "github.com/wailsapp/wails/v2/pkg/options"