shenmo7192
f3728eae00
feat(detail): 应用详情默认展开已安装版本
2026-08-15 16:46:32 +08:00
xiyidaiwa
cdd94c650d
fix(security): PR 审查整改 - setWindowOpenHandler 域名白名单 / openWebsite 协议校验 / 批量云端安装并发控制
...
- electron/main/index.ts: setWindowOpenHandler 增加 ALLOWED_EXTERNAL_HOSTS 域名后缀白名单,仅可信 https 域名可 shell.openExternal(阻断项2)
- AppDetailModal.vue: openWebsite 增加 http/https 协议校验 + noopener,noreferrer(改进项5)
- useAccountSync.ts: installCloudItems 改为分批(BATCH_SIZE=3) + Promise.allSettled 错误收集(改进项2)
- 审查误报/未改动项已贴代码实证:阻断1 v-html 已用 textContent 转义;改进3 resolveCloudInstallCandidate 已有降级匹配链;改进4 单窗口无 HMR 不重复注册;改进1 暂停/恢复主进程无 handler 维持 TODO
2026-08-13 22:38:26 +08:00
xiyidaiwa
d7bdcf3680
fix: 标签策略启动初始化加固 + 已安装应用过滤/统计性能优化
...
- 标签优先显示策略 initTagPriorityStrategy 提到 App.vue onMounted 统一调用,
消除组件挂载顺序导致先读内存默认 auto 的竞态窗口(AppDetailModal 移除重复调用)
- InstalledAppsModal 过滤逻辑合并为单次遍历(保留 hasOrigin 双来源语义)
- 统计 apm/spark/total 改为基于 searchFilteredApps 单次遍历
- canOpenDetail 补充业务含义注释与可读性变量
- 将 App.vue 重构的 9 个 composable 纳入版本管理
- 验证:vue-tsc 0 / eslint 0 / dpkg-buildpackage 打包 spark-store_5.2.1.24-test 成功
2026-08-12 23:16:17 +08:00
xiyidaiwa
8888afd4f5
fix: PR 审查真实缺陷修复(图标错位/定时器清理/并发/统计同步)
...
- AppDetailModal: iconPath 改用 viewingOrigin 动态计算,修复合并源切换时图标与数据错位
- App.vue: onUnmounted 清理 saveBoundsTimer 防抖定时器,避免组件销毁后悬空 IPC 调用
- App.vue: loadHomeListEntries 串行 for-of 改 Promise.all 并发拉取,缩短首页入口加载
- InstalledAppsModal: 顶部统计徽章基于搜索过滤结果实时计算,修复搜索时数字不同步
(审查误报项已核实未改: fetchAppFromStore 已有 encodeURIComponent + AbortSignal)
2026-08-11 00:20:19 +08:00
xiyidaiwa
102ac72d89
fix: 安全加固 + 首页推荐优先加载解耦
...
- install-manager: queue-install JSON.parse 加 try-catch 防异常 payload
- App.vue: openExternalUrl 协议白名单(http/https) 防恶意 scheme
- AppDetailModal: sanitizeMoreContent 改用 textContent 防 v-html XSS
- storeConfig: loadPriorityConfig 校验顶层结构,畸形数据回退 APM
- App.vue onMounted: 首页推荐(loadHome+preloadHomeListApps) 与全量
应用加载(loadApps) 解耦,进入软件即优先显示首页推荐
2026-08-10 23:40:21 +08:00
xiyidaiwa
3f22207505
fix/refactor: 更新中心扫描与多项安全加固(经专业审计)
...
更新中心扫描修复:
- updateCenter.ts: 抽出 runSystemUpdateThenLoad, open/refresh 共用,
打开时即刷新双源(aptss ssupdate + apm update), 失败仅告警不阻断扫描
- shell-caller.sh: ssupdate 分支 exit $? 恒 0 吞掉刷新失败, 改为 exit $exit_code
- update-center/query.ts: 移除 nextVersion===currentVersion 误删真实更新项逻辑,
信任 aptss 上游 upgradable 判断
安全加固:
- AppDetailModal.vue: 新增 sanitizeMoreContent 剥除 HTML 标签后再 v-html, 防 XSS
- InstalledAppsModal.vue: ALLOWED_LOCAL_ICON_PREFIXES 收紧为具体子目录, 缩小
本地文件读取面
- install-manager.ts: filename 用 path.basename 防路径遍历; 包名/文件名 PKGNAME_PATTERN 校验
- index.ts: 临时目录改用 spark-store-${pid} 隔离, will-quit 清理对应目录
经 7 维度专业审计(安全/功能/类型/可维护/资源/性能/兼容)通过。
2026-08-10 21:42:36 +08:00
xiyidaiwa
7ac1b2f0b6
refactor: 按代码审查清理标签优先显示策略相关代码
...
- 移除 AppDetailModal auto 决策分支的调试 console.log(生产不残留调试日志)
- 删除 storeConfig 中无读取方的 isPriorityConfigLoaded/hasPriorityConfigFile
死变量,并修正 catch 分支借 resetPriorityConfig 误标 loaded 的语义矛盾
- getHybridDefaultOrigin 对合并应用子版匹配时,子版 category 为空则
回退顶层 app.category,避免分类规则漏匹配
- 补充 forceViewingOrigin 强制来源不随设置策略实时切换的注释(设计行为)
2026-08-10 08:11:13 +08:00
xiyidaiwa
b3eb1d01d9
fix: 标签优先显示策略 auto 模式按服务端优先级配置展示
...
- auto 模式用合并应用自身(含 sparkApp/apmApp)匹配 priority-config.json,
不再仅取单一子版,避免漏匹配。
- openDetail 区分「已安装页显式来源强制」与「其他页面按策略」;
非强制分支清除 forceViewingOrigin 粘性标志,避免跨入口状态泄漏。
- AppDetailModal 按 TagPriorityStrategy 响应式重算默认来源;
手动切标签仅本次会话预览,不持久。
- storeConfig.loadPriorityConfig 改用 axios(与渲染进程一致),
修复 Electron 下全局 fetch 失败导致配置为空、auto 全部回退 APM 的问题。
- 首页推荐列表 parseAppList 从 jsonUrl 提取分类,避免 category 误为 unknown。
2026-08-07 18:21:39 +08:00
xiyidaiwa
88499a56f8
feat: 新增「标签优先显示策略」设置(自动选择/Spark优先/APM优先,默认自动选择)
...
需求:在应用设置中新增标签优先显示策略配置,进入应用详情页时按所选策略决定
默认展示的来源(Spark/APM)标签;选中的标签即为安装时对应的来源。
实现:
- 新增 src/global/tagPriority.ts:策略('auto'|'spark'|'apm')共享模块,localStorage 持久化,
通过共享 ref 在设置页与详情页间同步(纯前端显示偏好,不触及后端安装脚本)。
- SettingsModal.vue:在「安装设置」中新增三选项分段控件(默认选中「自动选择」),
打开时加载、变更时即时保存。
- AppDetailModal.vue:新增 computeDefaultViewingOrigin,按策略计算默认 viewingOrigin:
自动选择→getHybridDefaultOrigin(应用配置优先级);Spark/APM 优先→优先选中对应标签,
若应用无该来源标签则回退优先级策略;仅有一个来源标签时默认展示该标签;
父组件显式指定的 viewingOrigin 仍具最高优先级。
vue-tsc --noEmit 通过。
2026-08-07 10:45:44 +08:00
xiyidaiwa
b89c001401
refactor: 基于 upstream/Erotica 重新整合本地功能(来源选择/合并详情/计数/窗口/首页)
...
将本地在 upstream !408(已安装应用合并+统计)之上的后续改动重新整合到最新 upstream/Erotica:
- 已安装应用:卸载/打开按 APM/Spark 来源选择;计数总数=APM+Spark 包数(双来源计为独立包)
- 查看详情:已安装页复用所有应用页合并详情视图(单来源优先已装类型,双来源自动模式)
- 窗口:恢复阈值改为 1600x900,过大回退默认尺寸并居中,不自动最大化
- 首页推荐:致谢卡片移至其他内容下方,加大标题/卡片/致谢间距
- 隐藏排行榜/荣耀榜侧栏入口(代码保留,v-if=false)
- 新增 scripts/test-build.sh 测试打包脚本(版本末段+1 加 -test)并更新 AGENTS.md
冲突文件(index.ts/App.vue/InstalledAppsModal.vue)均取本地完整实现(为上游版本的超集)。
2026-08-03 11:06:28 +08:00
shenmo7192
bcf3252e4a
style(app-detail): add tooltip text for install buttons
...
为应用详情页和详情弹窗的两个安装按钮分别添加了对应的提示文案,提升用户体验
2026-07-24 10:26:40 +08:00
shenmo7192
937c0554ad
chore: 暂时关闭云端同步、收藏和评论功能
...
调整了多个页面的相关UI和逻辑代码,注释掉并隐藏了收藏、评论以及云端同步相关的按钮和实现逻辑,同时修改了侧边栏的品牌文案展示。
2026-07-14 14:21:35 +08:00
shenmo7192
7420466d92
style: 统一代码格式与字符串引号风格
...
1. 替换单引号为双引号统一字符串格式
2. 拆分过长的函数调用与条件判断行提升可读性
3. 简化多行console.log调用为单行格式
4. 为侧边栏添加条目计数标签展示功能
2026-07-14 13:59:55 +08:00
shenmo7192
750e1d89e4
feat: add SPK share link support and optimize category count calculation
...
- add SPK share button in app detail pages and support parsing SPK links in search box
- fix category total count to exclude the all entry
- remove redundant count badge from sidebar tabs
- rewrite category count calculation with proper filtering of all entry
- update search category count logic to use base apps for all tab count
2026-07-14 13:39:20 +08:00
shenmo7192
bfa959ca1d
style: 移除所有组件的backdrop-blur和半透明背景效果
...
统一调整多处UI元素的样式,去掉不必要的backdrop-blur滤镜以及bg的透明度后缀,让界面视觉风格更简洁统一
2026-07-13 18:31:14 +08:00
shenmo7192
2bafa66004
style(ui): 调整弹窗和提交窗口的样式与布局
...
1. 为提交根容器添加overflow-y-auto防止内容溢出
2. 放大应用详情弹窗最大宽度从5xl到6xl
3. 提升弹窗和滚动区域的最大高度从85vh到90vh
4. 移除应用详情描述区域多余的overflow-y-auto
2026-07-13 18:28:27 +08:00
momen
439af8c26f
feat(account): polish reviews favorites and account UI
2026-05-29 21:34:42 +08:00
momen
d03c8aab61
fix(ui): pin detail modal sidebar
2026-05-19 16:04:47 +08:00
momen
fd17fc127d
fix(reviews): restore modal detail review gating
2026-05-19 12:22:52 +08:00
shenmo7192
c907fbb5d4
refactor(AppDetailModal): 优化应用详情弹窗的布局和样式
...
将版本号和下载量合并显示,并调整应用来源切换的布局结构
2026-04-16 00:21:38 +08:00
momen
f9aa31d257
fix(update-center): align modal actions and tests
2026-04-15 22:21:35 +08:00
shenmo7192
ca7520cb2e
fix(modal): 修复模态框滚动和点击事件处理
...
为多个模态框组件添加滚动和点击事件处理,防止背景滚动时内容滚动
当点击模态框背景时关闭模态框,同时阻止事件冒泡到内容区域
2026-04-12 21:34:51 +08:00
shenmo7192
ba10f90dde
fix(滚动): 为多个组件添加overscroll-contain并处理滚轮事件
...
为多个模态框和列表组件添加overscroll-contain类以防止滚动链
添加处理函数阻止模态框背景的滚轮事件传播到内容区域
2026-04-12 21:30:33 +08:00
momen
0b17ada45a
feat(update-center): 实现集中式软件更新中心功能
...
新增更新中心模块,支持管理 APM 和传统 deb 软件更新任务
- 添加更新任务队列管理、状态跟踪和日志记录功能
- 实现更新项忽略配置持久化存储
- 新增更新确认对话框和迁移提示
- 优化主窗口关闭时的任务保护机制
- 添加单元测试覆盖核心逻辑
2026-04-09 08:19:51 +08:00
shenmo7192
b5d7708b58
feat(组件): 为应用详情模态框添加网站链接点击功能
2026-04-05 10:08:45 +08:00
shenmo7192
d74e05a327
feat(store): 实现混合仓库优先级配置功能
...
添加优先级配置文件支持,根据配置决定默认展示的仓库版本
新增优先级规则匹配逻辑,支持包名、分类和标签匹配
修改应用详情和合并应用的默认来源判断逻辑
2026-04-05 09:52:06 +08:00
shenmo7192
dd0a17d674
style(组件): 优化应用详情模态框按钮样式和布局
...
- 调整按钮圆角、内边距和阴影样式
- 修改安装按钮颜色方案
- 重构已安装应用的按钮布局为水平排列
- 更新卸载按钮样式为轮廓风格
- 统一图标大小
2026-03-29 18:31:14 +08:00
shenmo7192
e7fb8e689a
feat(应用详情): 增强应用详情页功能并优化代码格式
...
重构应用详情页逻辑,支持从首页和深度链接直接打开应用时自动获取完整信息
优化应用卡片来源标识显示,支持同时显示多个来源
统一代码格式,修复多行字符串和模板字符串的换行问题
2026-03-29 17:21:17 +08:00
shenmo7192
ad5562700f
feat: 优化应用商店界面布局和交互体验
...
refactor(HomeView): 调整网格布局和卡片样式,增加欢迎页面
refactor(AppDetailModal): 重构应用详情弹窗布局,增加元数据展示和返回按钮
fix(spark-store): 添加dpkg命令检查逻辑
style: 统一调整部分间距和颜色样式
2026-03-29 15:22:55 +08:00
shenmo7192
7ff079276e
feat: 添加 APM 应用管理功能并优化界面
...
- 新增 APM 应用管理功能,支持显示已安装应用及其依赖项
- 优化已安装应用列表界面,增加应用图标和名称显示
- 调整顶部操作栏布局,将设置和关于按钮移至搜索框旁
- 修复类型定义,增加 isDependency 字段和更多应用信息
- 改进暗色模式下的界面显示效果
2026-03-24 20:47:55 +08:00
shenmo7192
c7761e8468
fix(下载): 增强aria2c下载的稳定性和重试机制
...
添加连接超时、下载超时和重试参数配置
实现0%卡死检测和自动重试逻辑
移除冗余的dpkg-query检测代码
优化安装按钮状态判断逻辑
更新版本号至4.9.9alpha4
2026-03-22 18:35:41 +08:00
shenmo7192
6729e321a6
去除界面优化
2026-03-15 17:00:58 +08:00
shenmo7192
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
shenmo7192
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
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
70cab0182d
feat: 仅保留混合模式并根据架构动态构建请求路径
...
- 删除 AppSidebar.vue 中的 StoreModeSwitcher 引入并删除该组件。
- 强制设置当前商店模式为 'hybrid'。
- 修复了因为 `window.apm_store.arch` 包含 `-store` 或 `-apm` 后缀导致路径替换异常的问题,现在会通过动态添加后缀来构建资源请求路径,以兼容 Spark Store 和 APM Store 服务器不同的资源组织结构。
2026-03-12 01:39:00 +00:00
momen
16f7b62491
fix:修复商店无法调起apm软件的问题
2026-03-11 16:08:51 +08:00
momen
b3cef63bf5
feat:混合模式下,当点击“Spark”或“APM”的子开关时,也会刷新是否已安装逻辑
2026-03-11 14:24:14 +08:00
momen
5bc68f5a9a
update:修复github工作流问题
2026-03-11 09:38:28 +08:00
momen
d24a5225de
update:在商店混合模式下,同包名的软件合并在同一个详情页面并加入切换开关
2026-03-11 09:18:59 +08:00
momen
edd9368c56
update:添加apm与普通商店双支持
2026-03-11 08:36:24 +08:00
momen
21ea334e79
feat:修复基础格式问题
2026-03-09 23:56:44 +08:00
momen
749cf3d3bf
feat:引入懒加载,防止弱网情况下无法正常加载应用图标或详情页图片
2026-02-27 23:25:38 +08:00
momen
6ea628d869
feat: 修改应用信息界面,对于已安装应用,安装按钮变为打开按钮,并添加卸载按钮
2026-02-27 23:03:10 +08:00
shenmo7192
69d9c23cff
完成aptss对接
2026-02-19 18:35:41 +08:00
Elysia
ed92145f91
fix(app): floor download progress percentage
2026-02-14 23:56:49 +08:00
Elysia
a3f18bb593
feat(app): add download count display
2026-02-14 23:22:41 +08:00
Elysia
74c4eb4fbc
feat(install): add metalink download support and progress tracking
...
close #12
2026-02-14 00:16:18 +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
Delta1035 and GitHub
b43c6117ec
fix: 修复应用还没有安装完,按钮就重新变成可安装状态 ( #11 )
...
fix:先用比较简单的方案解决安装之后卸载了还是显示已安装的问题
fix: 在安装成功的ipc信息之后再删除安装队列的任务
删除pnpm workspace
2026-02-04 13:06:01 +08:00