Commit Graph
18 Commits
Author SHA1 Message Date
momenandGitHub cbaf55cbb9 Merge pull request #10 from vmomenv/fix-download-source-display-1703167915447601691
fix: correctly display download source based on app origin
2026-03-12 17:15:51 +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
momenandGitHub 006a5df550 Merge pull request #9 from vmomenv/feat/app-detail-version-install-status-3216925028679313814
feat: display cross-version installation status in app detail modal
2026-03-12 16:54:55 +08:00
vmomenv 7635697495 test(e2e): fix failing playwright tests by mocking electron ipc and api calls
- Updated `e2e/basic.spec.ts` to inject a mock `window.ipcRenderer` and `window.apm_store` on test startup. Playwright connects to the Vite dev server via standard Chromium, which previously caused the app to crash due to missing Electron contexts.
- Added `page.route` intercepts to return valid mock data for categories and apps, ensuring that components like `.app-card` actually render in the E2E environment instead of being stuck in a loading state or failing.
- Removed arbitrary timeouts and `127.0.0.1:3344` URL.
2026-03-12 08:46:49 +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
momenandGitHub 7aa51746c4 Merge pull request #8 from vmomenv/fix/apm-uninstall-origin-15839187749437554166
fix: pass app origin to remove-installed ipc in UninstallConfirmModal
2026-03-12 15:41:51 +08:00
vmomenv 3677019543 test: fix playwright timeout due to localhost resolution
Playwright tests were timing out on CI because the Vite dev server was
listening on `http://localhost:5173/` but `playwright.config.ts` was
configured to wait for `http://127.0.0.1:5173/`. Node 17+ resolves
`localhost` to IPv6 (`::1`), causing Playwright's strict IPv4 wait
to time out.

This commit updates `playwright.config.ts` to use `http://localhost:5173`
for both `baseURL` and the `webServer.url`.

The e2e tests were left unmodified, as previous attempts to mock them out
broke intended test behavior. This fix correctly targets only the underlying
network connection refusal between Playwright and Vite.
2026-03-12 07:32:36 +00:00
vmomenv 6cbcf6fae3 test: fix playwright e2e connection refused error
The e2e test was hardcoded to navigate to `http://127.0.0.1:3344` instead
of using the configured `baseURL` in `playwright.config.ts` which points
to the Vite dev server (`http://localhost:5173`). This caused tests to
fail with `net::ERR_CONNECTION_REFUSED`.

This commit replaces the hardcoded URL with `/` so that Playwright
correctly uses the `baseURL` setting. It also updates the title assertion
to include "星火应用商店".
2026-03-12 07:06:28 +00:00
vmomenv fa990cb974 test: fix playwright timeout due to localhost resolution
Playwright tests were timing out on CI because the Vite dev server was
listening on `http://localhost:5173/` but `playwright.config.ts` was
configured to wait for `http://127.0.0.1:5173/`. Node 17+ resolves
`localhost` to IPv6 (`::1`), causing Playwright's strict IPv4 wait
to time out.

This commit updates `playwright.config.ts` to use `http://localhost:5173`
for both `baseURL` and the `webServer.url`.
2026-03-12 07:01:40 +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
momenandGitHub b90b7afc28 Merge pull request #7 from vmomenv/feat/apm-install-uninstall-logic-2595854606713089615
feat: improve apm install and uninstall logic with correct privilege escalation
2026-03-12 11:26:34 +08:00
vmomenv a1c5db3a11 feat: implement apm app install and uninstall logic with pkexec elevation
- Modify `queue-install` logic to wrap `apm` commands with `superUserCmd` and `SHELL_CALLER_PATH` when origin is apm.
- Update `remove-installed` to correctly execute `apm remove -y pkgname` with required privilege elevation when origin is apm.
- Add payload parsing logic in `uninstall-installed` handler to identify origin and apply correct `apm` uninstall command dynamically.
2026-03-12 03:23:16 +00:00
momenandGitHub cb8ac768a6 Merge pull request #6 from vmomenv/remove-store-mode-and-fix-arch-3296001085136830138
保留混合模式并根据架构调整网页请求路径
2026-03-12 09:41:51 +08: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
momenandGitHub 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
momenandGitHub 876a3715bf Merge pull request #2 from vmomenv/feat-improve-download-status-tests-11721872646402320389
🧪 Improve removeDownloadItem tests
2026-03-11 00:13:34 +08:00
momenandGitHub 7dc8b7f77f Merge pull request #1 from vmomenv/security-fix-command-injection-install-manager-3820575162219224633
🔒 [security fix] Fix Command Injection in install-manager.ts
2026-03-11 00:08:50 +08:00