Commit Graph

80 Commits

Author SHA1 Message Date
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
21ea334e79 feat:修复基础格式问题 2026-03-09 23:56:44 +08:00
a9a6b6bdc6 fix:首页推荐软件安装失败问题 2026-02-28 02:28:50 +08:00
749cf3d3bf feat:引入懒加载,防止弱网情况下无法正常加载应用图标或详情页图片 2026-02-27 23:25:38 +08:00
88670be15e feat:针对弱网环境,侧边栏添加并行加载,重试机制,初始化优化 2026-02-27 23:18:06 +08:00
6ea628d869 feat: 修改应用信息界面,对于已安装应用,安装按钮变为打开按钮,并添加卸载按钮 2026-02-27 23:03:10 +08:00
21b069d7ef 添加主页功能,支持加载和展示首页数据,包括链接和推荐应用列表 2026-02-25 20:46:28 +08:00
b72f5f8da6 完成 -apm 的全部更改,实现 spk://search,移除 spk://store 2026-02-19 19:56:32 +08:00
3165304016 修改应用名称 2026-02-19 19:27:19 +08:00
1cf729e7fd 优化启动速度 2026-02-19 19:22:18 +08:00
69d9c23cff 完成aptss对接 2026-02-19 18:35:41 +08:00
d16dec09a6 修改上游链接 2026-02-19 17:56:30 +08:00
Elysia
c27c1f1697 feat: add sidebar toggle functionality
Signed-off-by: Elysia <a.elysia@proton.me>
2026-02-17 23:23:20 +08:00
Elysia
ed92145f91 fix(app): floor download progress percentage 2026-02-14 23:56:49 +08:00
Elysia
7a97333bf7 refactor(download): update download management comments and behavior 2026-02-14 23:33:36 +08:00
Elysia
a3f18bb593 feat(app): add download count display 2026-02-14 23:22:41 +08:00
Elysia
5ac9376200 feat: support download statistics
close #15
2026-02-14 23:11:43 +08:00
Elysia
9f50e25dc0 feat(app): add cache buster for API requests
close #16
2026-02-14 18:58:29 +08:00
Elysia
74c4eb4fbc feat(install): add metalink download support and progress tracking
close #12
2026-02-14 00:16:18 +08:00
Elysia
7aeb3d5dd4 feat(theme): add system theme support
close #13
2026-02-13 14:49:41 +08:00
Elysia
1d808b035a refactor(app): change to sequential loading and increase timeout
Co-authored-by: shenmo <jifengshenmo@outlook.com>
Signed-off-by: elysia-best <a.elysia@proton.me>
2026-02-13 14:11:13 +08:00
Elysia
d5266c6af8 feat: 更新搜索逻辑
现在更换app类别时将默认清空搜索。
2026-02-12 20:11:54 +08:00
Elysia
9a2d3a8ac1 refactor: fix typo in module path 2026-02-12 19:21:17 +08:00
Elysia
6622e70033 refactor: improve code formatting and consistency across components
- Updated button and span elements in ThemeToggle.vue and TopActions.vue for better readability.
- Enhanced UninstallConfirmModal.vue and UpdateAppsModal.vue with consistent indentation and spacing.
- Refactored downloadStatus.ts and storeConfig.ts for improved code clarity.
- Standardized string quotes and spacing in typedefinition.ts and processInstall.ts.
- Ensured consistent use of arrow functions and improved variable declarations throughout the codebase.
2026-02-12 18:32:41 +08:00
Elysia
e11740ad4c feat: 添加 ESLint 配置并优化代码风格,移除未使用的功能 2026-02-12 18:31:09 +08:00
Delta1035
b43c6117ec fix: 修复应用还没有安装完,按钮就重新变成可安装状态 (#11)
fix:先用比较简单的方案解决安装之后卸载了还是显示已安装的问题

fix: 在安装成功的ipc信息之后再删除安装队列的任务

删除pnpm workspace
2026-02-04 13:06:01 +08:00
Elysia
0d1d4e5679 feat: 添加重复任务检查,避免重复下载任务 2026-01-31 20:19:52 +08:00
Elysia
6154d75fa6 feat: add app launching functionality and update related components 2026-01-31 18:21:16 +08:00
Elysia
39e40ff946 feat: enhance application type definitions and improve app management logic 2026-01-31 17:48:06 +08:00