Commit Graph

108 Commits

Author SHA1 Message Date
b5d7708b58 feat(组件): 为应用详情模态框添加网站链接点击功能 2026-04-05 10:08:45 +08:00
4e9fc30616 feat(storeConfig): 添加配置文件存在标记并调整默认优先级规则
添加 hasPriorityConfigFile 标记以区分服务器是否存在配置文件
当没有配置文件时默认优先 Spark,有配置文件但规则为空时默认优先 APM
移除未使用的 matchesRule 方法并添加 isConfigEmpty 方法
2026-04-05 09:55:47 +08:00
d74e05a327 feat(store): 实现混合仓库优先级配置功能
添加优先级配置文件支持,根据配置决定默认展示的仓库版本
新增优先级规则匹配逻辑,支持包名、分类和标签匹配
修改应用详情和合并应用的默认来源判断逻辑
2026-04-05 09:52:06 +08:00
b836392ffb update:应用列表中,spark软件列表加入图标 2026-03-31 20:31:45 +08:00
fdb5f4a51c update:apm管理改为应用管理 2026-03-31 20:25:44 +08:00
57410370b7 feat(apm): 在安装和更新应用前检查并提示安装APM
添加APM可用性检查逻辑,在安装或更新APM应用时,若检测到APM未安装,则弹出对话框提示用户安装
安装流程完成后显示成功提示并告知需要重启电脑
2026-03-30 18:39:03 +08:00
0dedd0faf0 feat(组件): 添加虚拟滚动优化应用网格性能
为AppGrid组件添加vue-virtual-scroller实现虚拟滚动功能,当应用数量超过50个时自动启用
更新package.json添加vue-virtual-scroller依赖
添加vue-virtual-scroller的类型声明
优化网格布局响应式处理,根据窗口宽度动态调整列数
2026-03-29 19:43:53 +08:00
f382e6d75d feat(组件): 添加应用商店过滤功能并优化来源标识显示
在AppGrid组件中添加storeFilter属性以支持应用商店过滤
重构AppCard组件的来源标识显示逻辑,新增合并标识显示
当storeFilter为'both'时显示合并标识,否则显示单独标识
2026-03-29 19:34:38 +08:00
dd0a17d674 style(组件): 优化应用详情模态框按钮样式和布局
- 调整按钮圆角、内边距和阴影样式
- 修改安装按钮颜色方案
- 重构已安装应用的按钮布局为水平排列
- 更新卸载按钮样式为轮廓风格
- 统一图标大小
2026-03-29 18:31:14 +08:00
cbea4745a5 fix(InstalledAppsModal): 添加点击遮罩层关闭模态框功能 2026-03-29 18:26:39 +08:00
29460e727b feat(组件): 添加搜索结果为空时的提示界面 2026-03-29 17:25:15 +08:00
e7fb8e689a feat(应用详情): 增强应用详情页功能并优化代码格式
重构应用详情页逻辑,支持从首页和深度链接直接打开应用时自动获取完整信息
优化应用卡片来源标识显示,支持同时显示多个来源
统一代码格式,修复多行字符串和模板字符串的换行问题
2026-03-29 17:21:17 +08:00
94f4307783 perf(安装日志): 优化安装日志处理性能
添加日志缓冲和批量发送机制以减少IPC通信次数
限制前端日志条目数量防止内存泄漏
2026-03-29 16:36:58 +08:00
ad5562700f feat: 优化应用商店界面布局和交互体验
refactor(HomeView): 调整网格布局和卡片样式,增加欢迎页面
refactor(AppDetailModal): 重构应用详情弹窗布局,增加元数据展示和返回按钮
fix(spark-store): 添加dpkg命令检查逻辑
style: 统一调整部分间距和颜色样式
2026-03-29 15:22:55 +08:00
5b2d96cf0a feat: 实现搜索结果的分类计数功能
添加搜索关键词时显示匹配结果数量的功能,同时优化了应用卡片和网格的UI样式
2026-03-29 14:21:48 +08:00
d144d0d398 feat(UI): 优化应用加载体验和界面样式
改进应用网格布局的边距设置
在App.vue中改为非阻塞方式加载数据
为侧边栏添加内边距
在HomeView中优化图片加载状态显示和条件渲染
2026-03-29 14:07:54 +08:00
3f9447d2cc feat(deep-link): 支持通过 store 协议直接打开应用详情
添加对 legacy store 协议格式的支持,当收到 spk://store/category/pkgname 格式的 deep link 时,忽略 category 直接使用 pkgname 查找并打开应用详情。如果应用未找到,则回退到搜索模式。
2026-03-29 13:58:52 +08:00
aec1faf964 fix(install): 允许添加不同来源的安装相同包名任务
改进任务重复检查逻辑,现在会同时检查软件包名称和来源
修复取消下载时未正确处理任务状态的问题
```

```msg
ci: 添加测试和构建的GitHub Actions配置文件

添加test.yml和build.yml的备份文件,包含单元测试、E2E测试和构建流程
2026-03-29 12:23:32 +08:00
d638ef7122 fix:修复取消下载后无法重试下载的问题,修复重试下载后没有日志输出的问题 2026-03-27 11:39:36 +08:00
d314ad6548 去除应用计数 2026-03-24 21:26:31 +08:00
d8758834c3 APM 应用管理界面不再随着滚轮滚动 2026-03-24 21:20:59 +08:00
308f5b7ce6 feat: 通过 IPC 实现应用版本号获取功能
移除预加载脚本中的版本号获取逻辑,改为通过 IPC 从主进程获取
2026-03-24 20:58:15 +08:00
7b71522afb refactor: 简化安装完成回调函数的条件判断 2026-03-24 20:50:38 +08:00
7ff079276e feat: 添加 APM 应用管理功能并优化界面
- 新增 APM 应用管理功能,支持显示已安装应用及其依赖项
- 优化已安装应用列表界面,增加应用图标和名称显示
- 调整顶部操作栏布局,将设置和关于按钮移至搜索框旁
- 修复类型定义,增加 isDependency 字段和更多应用信息
- 改进暗色模式下的界面显示效果
2026-03-24 20:47:55 +08:00
cd43f34cbd feat: 添加关于对话框并优化主题切换按钮样式
- 新增 AboutModal 组件显示应用版本和相关信息
- 重构 ThemeToggle 组件为更简洁的图标按钮
- 在侧边栏添加关于按钮并实现打开对话框功能
- 通过预加载脚本获取 package.json 版本号
- 支持命令行参数 --version/-v 显示版本号
2026-03-22 19:18:19 +08:00
c7761e8468 fix(下载): 增强aria2c下载的稳定性和重试机制
添加连接超时、下载超时和重试参数配置
实现0%卡死检测和自动重试逻辑
移除冗余的dpkg-query检测代码
优化安装按钮状态判断逻辑
更新版本号至4.9.9alpha4
2026-03-22 18:35:41 +08:00
6729e321a6 去除界面优化 2026-03-15 17:00:58 +08:00
dbfe86aa64 feat: enhance UI and functionality across components
- Added Google Fonts preconnect and stylesheet link in `index.html` for improved typography.
- Updated version in `package.json` to `4.9.9alpha3`.
- Refined launch configuration by removing deprecated arguments.
- Improved app detail modal and card components for better accessibility and visual consistency.
- Enhanced download queue and sidebar components with updated styles and functionality.
- Implemented new utility classes for better styling control in CSS.
- Adjusted various components for improved responsiveness and user experience.
2026-03-15 15:21:29 +08:00
7e1f85c058 修复切换页签时会清空搜索框的问题 2026-03-15 14:47:48 +08:00
b3ca2973f1 feat: implement store filter based on launch arguments
- Added a new function to determine the store filter based on the `--no-apm` and `--no-spark` launch arguments.
- Integrated IPC to retrieve the store filter in the main process and updated the Vue component to reflect the selected filter.
- Adjusted logic in the app loading functions to conditionally display apps based on the determined filter.
2026-03-15 11:04:22 +08:00
4ecea4a8b8 feat: enhance app detail modal to prioritize installed version based on installation status
- Updated `openDetail` function to check installation status for both Spark and APM versions, setting `viewingOrigin` accordingly.
- Modified logic to determine which app version to display in screenshots based on installation status.
- Improved handling of `viewingOrigin` in `AppDetailModal.vue` to default to Spark if no specific version is installed.
2026-03-15 10:54:33 +08:00
vmomenv
16066d0b5f fix: correctly display download source based on app origin
When downloading applications, the download source was incorrectly
hardcoded to always show "APM Store" in the DownloadDetail component.
This changes it to use the `download.origin` property to accurately
display either "Spark Store" or "APM Store" based on the application's
origin, without altering any underlying download logic.
2026-03-12 09:12:38 +00:00
vmomenv
034f86b82f fix: add origin property to DownloadResult and update test config
- Updated `src/global/typedefinition.ts` to include optional `origin` property in `DownloadResult` to fix TypeScript compilation error where `remove-complete` payload didn't have it defined.
- Added `origin` payload in `electron/main/backend/install-manager.ts`.
- Updated `e2e/basic.spec.ts` URL to `/` and expecting title including `星火应用商店` to match E2E setup.
2026-03-12 08:27:37 +00:00
vmomenv
1fb81c0409 feat: display cross-version installation status in app detail modal
- Replaced single `currentAppIsInstalled` boolean with `currentAppSparkInstalled` and `currentAppApmInstalled` in global store.
- Updated `checkAppInstalled` logic in `App.vue` to fetch the installation status for both Spark and APM versions via `ipcRenderer`.
- Passed both flags to `AppDetailModal.vue` as props.
- Enhanced `AppDetailModal.vue` to compute the "install" button text dynamically: if viewing Spark and APM is installed, it displays `(已安装apm版)`; if viewing APM and Spark is installed, it displays `(已安装spark版)`. The button is also disabled in these scenarios to prevent duplicate cross-version installations.
2026-03-12 08:19:37 +00:00
vmomenv
3995d2bbc0 fix: pass app origin to remove-installed ipc in UninstallConfirmModal
When triggering the uninstall process from the uninstall confirmation modal,
only the package name string was passed. This caused the backend to
default the origin to 'spark', which meant APM applications were incorrectly
attempted to be uninstalled using `aptss remove` instead of `apm remove`.

This commit changes the `remove-installed` ipc payload in
`UninstallConfirmModal.vue` to an object containing both `pkgname` and
`origin`, ensuring the backend correctly routes the uninstallation
through the APM package manager with `pkexec` when needed.
2026-03-12 06:55:48 +00:00
vmomenv
70cab0182d feat: 仅保留混合模式并根据架构动态构建请求路径
- 删除 AppSidebar.vue 中的 StoreModeSwitcher 引入并删除该组件。
- 强制设置当前商店模式为 'hybrid'。
- 修复了因为 `window.apm_store.arch` 包含 `-store` 或 `-apm` 后缀导致路径替换异常的问题,现在会通过动态添加后缀来构建资源请求路径,以兼容 Spark Store 和 APM Store 服务器不同的资源组织结构。
2026-03-12 01:39:00 +00:00
16f7b62491 fix:修复商店无法调起apm软件的问题 2026-03-11 16:08:51 +08:00
b3cef63bf5 feat:混合模式下,当点击“Spark”或“APM”的子开关时,也会刷新是否已安装逻辑 2026-03-11 14:24:14 +08:00
207334608c fix:已安装的软件不显示打开软件的按钮问题 2026-03-11 14:20:23 +08:00
momen
a68638ef51 Merge pull request #4 from vmomenv/cleanup-process-install-dead-code-708801762184763180
🧹 [code health improvement] Remove dead code in processInstall.ts
2026-03-11 10:36:43 +08:00
google-labs-jules[bot]
51bf8b9304 refactor(modules): remove commented-out console.log in IPC listener
This block of code in `src/modules/processInstall.ts` was leftover debug
code and is no longer needed. Removing it improves the maintainability
and readability of the file.

Co-authored-by: vmomenv <51269338+vmomenv@users.noreply.github.com>
2026-03-11 02:34:36 +00:00
5bc68f5a9a update:修复github工作流问题 2026-03-11 09:38:28 +08:00
d24a5225de update:在商店混合模式下,同包名的软件合并在同一个详情页面并加入切换开关 2026-03-11 09:18:59 +08:00
66bf0124bd fix:修复混合模式下计数器问题 2026-03-11 08:51:10 +08:00
257065018b fix:当用户切换商店模式(星火、APM、混合)时,目前应用会通过 window.location.reload() 重新加载整个页面。这会导致性能损耗和重复的网络请求。本计划旨在取消页面重载,并实现模式数据的缓存。 2026-03-11 08:45:28 +08:00
edd9368c56 update:添加apm与普通商店双支持 2026-03-11 08:36:24 +08:00
google-labs-jules[bot]
4dafedec12 test: improve removeDownloadItem tests
Expanded the test suite for `removeDownloadItem` in `src/__tests__/unit/downloadStatus.test.ts` to include:
- Removing multiple items with the same pkgname.
- Handling non-matching and non-existent pkgnames.
- Removing from an empty list.
- Ensuring exact string matching.
- Removing items from the start, middle, and end of the list.

Introduced a `createMockDownload` helper to reduce boilerplate in tests.

Co-authored-by: vmomenv <51269338+vmomenv@users.noreply.github.com>
2026-03-10 16:09:31 +00:00
bee046dcf2 修复编译不通过的问题 2026-03-10 18:46:56 +08:00
d206c79c24 fix:通过E2E测试 2026-03-10 00:52:59 +08:00
cef68a95d9 chore: add comprehensive documentation and testing infrastructure
## 文档(全部中文)
- AGENTS.md - 完整的 AI 编码指南(中文版)
- CONTRIBUTING.md - 贡献指南
- DEVELOPMENT.md - 开发文档
- DEPLOYMENT.md - 部署文档
- TESTING.md - 测试文档
- TROUBLESHOOTING.md - 问题排查指南
- FAQ.md - 常见问题
- WORKFLOW.md - 标准开发流程文档
## AI 工作流(9个详细工作流)
- feature-development.md - 新功能开发流程
- bug-fix.md - Bug 修复流程
- code-review.md - 代码审查流程
- testing.md - 测试编写流程
- release.md - 发布流程
- refactoring.md - 代码重构流程
- documentation.md - 文档更新流程
- performance-optimization.md - 性能优化流程
- security-audit.md - 安全审计流程
## 测试基础设施
- vitest.config.ts - Vitest 单元测试配置
- playwright.config.ts - Playwright E2E 测试配置
- src/__tests__/setup.ts - 测试环境设置
- src/__tests__/unit/downloadStatus.test.ts - 示例单元测试
- e2e/basic.spec.ts - 示例 E2E 测试
## CI/CD
- .github/workflows/test.yml - 新建测试 CI 工作流
- .github/workflows/build.yml - 更新构建工作流,添加测试步骤
## Issue 模板
- 更新 bug_report.md 为标准 Bug 报告模板
- 更新 help_wanted.md 为标准功能请求模板
## 配置更新
- package.json - 添加测试依赖和 7 个新的 npm 脚本
- .gitignore - 添加测试相关忽略项
## 新增 npm 脚本
- test - 运行单元测试
- test:watch - 监听模式
- test:coverage - 生成覆盖率报告
- test:e2e - 运行 E2E 测试
- test:e2e:ui - E2E UI 模式
- test:e2e:debug - E2E 调试模式
- test:all - 运行所有测试
## 新增测试依赖
- @playwright/test ^1.40.0
- @testing-library/jest-dom ^6.1.5
- @testing-library/vue ^8.0.1
- @vitest/coverage-v8 ^1.0.0
- @vue/test-utils ^2.4.3
- jsdom ^23.0.1
- vitest ^1.0.0
2026-03-10 00:42:56 +08:00