Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
129 commits
Select commit Hold shift + click to select a range
077b274
feat: 文件支持标签
xream Aug 17, 2025
7934286
feat: Gist 备份选项
xream Aug 19, 2025
7746554
fix: 简单兼容下组合订阅里取不到单条订阅的情况
xream Aug 21, 2025
9bb1b06
style: 增加单元格指针样式以提升交互体验
arfaWong Aug 28, 2025
0633d73
Merge pull request #143 from arfaWong/patch-1
xream Aug 28, 2025
20acf76
doc: changelog
xream Aug 28, 2025
bea8d1a
feat: 恢复数据后清除 PWA 缓存
xream Aug 30, 2025
3b86c4a
fix: 修复PWA下标签栏样式问题(订阅管理、文件管理)
hsingyin Sep 8, 2025
52d4a21
fix: 更新分享管理删除接口参数
hsingyin Oct 21, 2025
47194cd
fix: 订阅流量信息中无用量时 不展示
xream Oct 22, 2025
3064a4d
fix: 增加分享管理中对SUB_STORE_FRONTEND_BACKEND_PATH校验,新增部分文案i18n
hsingyin Oct 31, 2025
9f55029
chore: 文案
xream Nov 9, 2025
844e4ca
fix: 增加透传请求的User-Agent开关的判断逻辑(透传时禁用自定义 UA)
hsingyin Nov 10, 2025
17eb5a8
chore(action): enable run the workflow manually
sionnx Nov 11, 2025
e40e54b
chore(action): 将 vercel cli 版本更新到 48.9.0
sionnx Nov 11, 2025
d32cfee
chore(action): 开启 vercel cli debug 模式
sionnx Nov 11, 2025
665634b
Merge pull request #145 from sion-codin/master
sionnx Nov 12, 2025
6c3a226
chore(action): 增加workflow: 更新 Vercel 项目设置
sionnx Nov 12, 2025
986021f
Merge pull request #146 from sion-codin/master
sionnx Nov 12, 2025
b107636
feat: 加载时读取之前保存的 ua, 提示传请求的 ua 和 自定义 ua 互斥
xream Nov 12, 2025
760c7f0
feat: 支持使用 query 参数 concurrency 设置并发数, <=0 则为清除自定义设置, 默认为 3. 若因并发导致爆内…
xream Nov 27, 2025
daa4ede
feat: 支持 sudoku
xream Nov 28, 2025
d8ece45
fix: 修复关闭系统动画效果后的动画样式异常
hsingyin Dec 7, 2025
6dcb454
feat: 优化订阅信息获取逻辑 史诗级提速
xream Jan 1, 2026
b5a9e72
docs: script placeholder demo
xream Jan 3, 2026
984dd17
feat: 预览界面增加报错的响应内容
xream Jan 7, 2026
7992d0c
fix: 修复组合订阅切换标签时已选项丢失的问题
hsingyin Jan 9, 2026
011b1db
fix: 修复订阅编辑刷新报错
xream Jan 9, 2026
6b81d38
feat: 增加操作图标
xream Jan 10, 2026
a29ed72
feat: 支持使用 query 参数 timeout 设置接口检测超时, <=0 则为清除自定义设置, 默认为 3000
xream Jan 11, 2026
9f355a0
feat: 无效分享返回假节点(防客户端缓存)(后端 >= 2.20.81)
xream Jan 11, 2026
4af0447
feat: 编辑组合订阅时去除不存在的单条订阅数据
xream Jan 13, 2026
5b96b01
feat: 配置改版, 支持前端配置和缓存配置(后端>=2.21.0)
xream Jan 14, 2026
227e054
feat: 订阅中的订阅流量信息链接也支持响应头的数据
xream Jan 14, 2026
aaca810
chore: 脚本过滤和脚本操作 placeholder 文案分离
xream Jan 14, 2026
b1ec715
feat: 支持使用脚本删除响应头字段
xream Jan 14, 2026
5481f08
feat: 调整关于页
xream Jan 14, 2026
709b9fb
chore: 文案
xream Jan 15, 2026
ffc2957
chroe: 文案
xream Jan 16, 2026
5f4119d
style: 搜索匹配样式调整
xream Jan 20, 2026
5aee4ca
fix: 优化节点操作样式
hsingyin Jan 21, 2026
a837f0b
feat: 节点去重支持多字度和 lodash get 语法(后端 >= 2.21.15)
xream Jan 24, 2026
693ee51
feat: 协议过滤支持 TrustTunnel
xream Jan 27, 2026
98c9e22
feat: 协议过滤支持 MASQUE
xream Feb 8, 2026
89288f7
feat: 优化分享功能
xream Feb 12, 2026
f840b0a
feat: 远程链接支持完全自定义请求头(后端 >= 2.21.25)
xream Feb 16, 2026
467f2c7
style: 增强同步页面样式兼容性,统一导航栏温馨提示交互(由 Toast 改为 Dialog 形式)
hsingyin Feb 25, 2026
e4ef986
feat: 支持 Egern 图标
xream Feb 26, 2026
e571052
chore: 文案
xream Mar 1, 2026
e5fc684
feat: trust-tunnel -> trusttunnel
xream Mar 2, 2026
808e992
fix: 增加分享管理拖拽排序
hsingyin Mar 5, 2026
31b362e
fix: 修复无后缀路径后端地址的兼容性
xream Mar 16, 2026
875b6e5
feat: 协议过滤支持 Tailscale
xream Mar 23, 2026
5f2e188
feat: 分享管理支持多选
xream Mar 24, 2026
5a3b4df
feat: 分享管理支持一键选中所有已过期项
xream Mar 24, 2026
017b53b
feat: 优化分享管理界面和导航栏
xream Mar 27, 2026
fa3a6df
chore: 文案
xream Mar 27, 2026
c1468a7
fix: 修复第一次报错时不显示的问题
xream Mar 28, 2026
edc0494
feat: 同步页面改为新页面编辑, 支持标签和备注
xream Mar 28, 2026
f989ed4
feat: 同步页面改为新页面编辑, 支持标签和备注
xream Mar 28, 2026
6ca64ad
fix: 修复订阅编辑对缺数据情况的兼容性
xream Mar 28, 2026
9e92292
feat: 分享管理样式
xream Mar 29, 2026
07682bf
feat: 支持调整新创建的项目在最上面还是最下面
xream Mar 29, 2026
f81373c
feat: 支持展示找不到关联项; 分享支持标签
xream Mar 29, 2026
a139cb4
feat: 优化排序
xream Mar 30, 2026
89dd196
fix: 修复同步配置样式
xream Mar 30, 2026
245e967
feat: 分享管理支持全选整个类型
xream Mar 30, 2026
b22edcd
feat: 支持归档(回收站)
xream Mar 30, 2026
0ec3ff8
style: 修复PWA下导航栏多选icon样式问题
hsingyin Mar 30, 2026
ee94aff
feat: 分享管理调整删除按钮
xream Mar 31, 2026
e73eab5
fix(wip): 修复底部空白, 预览错位
xream Apr 1, 2026
bc0587c
fix: 修复控制台warning
hsingyin Apr 1, 2026
713fe6a
feat: 优化 IP API 相关逻辑
xream Apr 1, 2026
924d82f
feat: 优化预览刷新相关逻辑
xream Apr 2, 2026
cba4a59
feat: 增加预览组件的刷新按钮
hsingyin Apr 2, 2026
b426b7b
feat: 优化图标库加载逻辑
xream Apr 3, 2026
1ecf6bc
feat(wip): 所有匹配的远程资源都能使用 GitHub 加速服务
xream Apr 3, 2026
bd77664
feat: 图标库优化
xream Apr 4, 2026
d3522bb
feat: 导航栏使用响应式布局
xream Apr 4, 2026
78c5148
fix: 修复即时预览顶部和预览点击复制样式
xream Apr 4, 2026
948f17e
feat: 响应式布局双列模式
xream Apr 5, 2026
b781499
chore: 文案
xream Apr 5, 2026
b537df0
chore: 文案样式
xream Apr 6, 2026
45a7095
fix: 尝试修复订阅流量信息导致的订阅显示问题
xream Apr 7, 2026
dc244dc
feat: 列表页的即时订阅自动获取流量信息, 编辑详情里的即时订阅不再获取流量信息
xream Apr 10, 2026
fbbadd9
feat: 支持订阅/文件级别的自定义缓存时长
xream Apr 10, 2026
93e53ff
feat: 导航栏左侧按钮点击区域扩大
xream Apr 10, 2026
d981c2e
feat: 宽屏模式下可切换回窄屏模式
xream Apr 10, 2026
4abc9ac
feat: 优化响应式布局展示
xream Apr 10, 2026
e30534a
feat: 优化桌面端选择器交互
xream Apr 13, 2026
4607301
feat: 完善组合订阅中单条订阅排序
xream Apr 15, 2026
9c1c48e
feat: 订阅失败处理新增兜底通知和兜底静默. 需后端 2.22.3
xream Apr 19, 2026
27340d9
feat: 分享功能优化
xream Apr 20, 2026
4df0e9d
feat: 分享支持直接设置到期时间(后端>=2.22.6); 同步时间差在一分钟内都视为刚刚
xream Apr 21, 2026
e8bb41c
fix: 修复即时预览里域名过长时的展示问题
xream Apr 22, 2026
7822bca
feat: 支持查看日志(后端>=2.22.7)
xream Apr 24, 2026
497bd36
feat: 日志界面的最近条数/定时刷新开关状态/定时刷新间隔保存在前端
xream Apr 24, 2026
537ad86
feat: 重构日志页为可复用面板并支持浮层化展示
xream Apr 25, 2026
0c6d1b5
fix: 优化后端连接配置逻辑
hsingyin Apr 26, 2026
375f62b
feat: 新增流量查询默认 UA 设置; 优化订阅刷新和组合订阅空状态提示; 预览界面支持开关状态持久化, 支持开启可读性更高的 YAM…
xream Apr 27, 2026
73e9d3f
chroe: 文案
xream Apr 28, 2026
de16a61
feat: 优化所有导航栏按钮样式
xream Apr 28, 2026
289ff0b
feat: 调整即时预览界面
xream Apr 28, 2026
f571541
chrore: 文案
xream Apr 28, 2026
deb4e2a
fix: 修复图标仓库弹窗组件展示问题
hsingyin Apr 28, 2026
d0c7f9c
feat: 调整日志入口和语言切换
xream Apr 29, 2026
06dfca4
feat: 更换最大保存日志条数图标
xream Apr 29, 2026
8419db1
feat: 即时预览右侧增加日志入口
xream Apr 29, 2026
de10efe
Update issue templates
xream Apr 29, 2026
2946252
chore: 文案
xream Apr 29, 2026
8e4c7e0
feat: 即时预览新增复制全部节点名, 复制 AI 修改节点示范提示词
xream Apr 29, 2026
5a3f3b2
fix: 尝试修复 pwa 右侧按钮错位
xream Apr 29, 2026
a3700b2
feat: 已保存的后端列表优化 支持重命名
xream May 3, 2026
518c7b9
feat: 常用配置 支持展开/收起/隐藏; 组合订阅里的手动选择订阅 支持展开/收起
xream May 3, 2026
86174b5
feat: 手动订阅页支持自动恢复并对齐分组,保持用户选择记忆
xream May 3, 2026
bdc6970
feat: 列表页支持搜索筛选
xream May 3, 2026
2c05dbc
feat: 组合订阅可设置是否透传单条订阅的流量信息(后端 >= 2.22.17)
xream May 4, 2026
dade118
chore: 文案
xream May 5, 2026
34c63f5
fix: 修复 PWA 下导航栏顶部适配问题,补齐 iPad 安全区场景
hsingyin May 5, 2026
78d3ce5
feat: 优化 PWA 缓存规则并更新版本
xream May 5, 2026
845250d
fix(wip): 尝试修复响应式布局无 tabbar 问题
xream May 5, 2026
f0fd7ad
release: bump version
xream May 5, 2026
15be202
chore: issue 模板
xream May 6, 2026
23a69bc
chroe: 文案
xream May 6, 2026
73459fc
feat: 完善订阅流量信息配置文案与使用提示
xream May 6, 2026
f1d7d76
feat: 支持配置自定义 GitHub API 地址并优化 Gist 同步配置
xream May 8, 2026
34cf1c6
feat: 同步配置里也支持 "更易读的 YAML" 开关
xream May 8, 2026
5c6b2b3
feat: 改善删除配置后的提示文案并兼容新旧提示场景
xream May 8, 2026
d6f9637
chore: 在 GitHub API 地址 的说明里加上项目推荐
xream May 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions .github/ISSUE_TEMPLATE/功能建议.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: 功能建议
description: 改进或新功能等
title: "[FR] "
body:
- type: dropdown
id: request-type
attributes:
label: 建议类型
description: 请选择最接近的类型。
multiple: false
options:
- 新功能
- 现有功能改进
- UI/交互优化
- 文档/示例改进
- 其他
validations:
required: true
- type: dropdown
id: runtime
attributes:
label: 运行环境
description: 请选择这个建议涉及的运行环境。
multiple: false
options:
- Node.js
- Android
- Docker
- 自部署
- Surge
- Loon
- Quantumult X
- Stash
- Shadowrocket
- 其他
validations:
required: true
- type: dropdown
id: affected-areas
attributes:
label: 影响范围
description: 可多选,请选择这个建议涉及的部分。
multiple: true
options:
- 后端
- 前端
- 订阅转换
- 节点/策略组
- 同步/缓存
- 配置/部署
- 代理 App 兼容
- 文档
- 其他
validations:
required: true
- type: textarea
id: requirement
attributes:
label: 需求描述
description: 建议把需求讲清楚,不要一下子跳到一个解决方案。
validations:
required: true
- type: textarea
id: proposed-solution
attributes:
label: 解决方案
description: 建议先把上面的需求讲清楚,然后根据需求提解决方案。
validations:
required: true
- type: textarea
id: additional-context
attributes:
label: 其他信息
description: 例如参考链接、截图、替代方案或额外背景。
104 changes: 104 additions & 0 deletions .github/ISSUE_TEMPLATE/问题反馈.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: 问题反馈
description: 先读完排查方法再反馈
title: "[BUG] "
body:
- type: markdown
attributes:
value: |
**先读我**

[排查方法](https://t.me/zhetengsha/218)
- type: checkboxes
id: read-troubleshooting
attributes:
label: 阅读确认
options:
- label: 我已阅读上方排查方法
required: true
- type: dropdown
id: runtime
attributes:
label: 运行环境
description: 请选择主要出现问题的运行环境。
multiple: false
options:
- Node.js
- Android
- Docker
- 自部署
- Surge
- Loon
- Quantumult X
- Stash
- Shadowrocket
- 其他
validations:
required: true
- type: dropdown
id: affected-areas
attributes:
label: 影响范围
description: 可多选,请选择和问题相关的部分。
multiple: true
options:
- 后端
- 前端
- 订阅转换
- 节点/策略组
- 同步/缓存
- 配置/环境变量
- 代理 App
- 其他
validations:
required: true
- type: input
id: runtime-version
attributes:
label: 上述运行环境版本/App 版本
description: 例如 Node.js 版本、Android 版本、Docker 镜像版本或代理 App 版本。
validations:
required: true
- type: input
id: backend-version
attributes:
label: 后端版本
description: 填写当前使用的后端版本。
validations:
required: true
- type: input
id: frontend-version
attributes:
label: 前端版本
description: 填写当前使用的前端版本。
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: 复现方式
description: 请按步骤说明如何复现。
value: |
1.
2.
3.
validations:
required: true
- type: textarea
id: expected-behavior
attributes:
label: 期望表现
description: 描述你认为应该发生什么。
validations:
required: true
- type: textarea
id: actual-behavior
attributes:
label: 实际表现
description: 描述实际发生了什么。
validations:
required: true
- type: textarea
id: additional-context
attributes:
label: 其他信息
description: 例如截图、日志、配置片段或相关链接。
4 changes: 3 additions & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
name: build
on:
workflow_dispatch:
push:
branches:
- master
Expand Down Expand Up @@ -35,10 +36,11 @@ jobs:
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }} # Required
# github-token: ${{ secrets.GITHUB_TOKEN }} # Optional
vercel-args: "--prod" # Optional
vercel-args: "--prod --debug" # Optional
vercel-org-id: ${{ secrets.ORG_ID}} # Required
vercel-project-id: ${{ secrets.PROJECT_ID}} # Required
working-directory: dist
vercel-version: '48.9.0'
- name: zip
run: |
zip -r dist.zip dist
Expand Down
16 changes: 16 additions & 0 deletions .github/workflows/update-vercel-project-settings.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# 该 workflow 用于更新 Vercel 项目的 Node.js 版本
name: Update Vercel project settings
on:
workflow_dispatch:

jobs:
update-nodejs-version:
runs-on: ubuntu-latest
steps:
- name: Update Vercel project Node.js version
run: |
curl --request PATCH \
--url https://api.vercel.com/v9/projects/${{ secrets.PROJECT_ID }} \
--header 'Authorization: Bearer ${{ secrets.VERCEL_TOKEN }}' \
--header 'Content-Type: application/json' \
--data '{ "nodeVersion":"22.x"}'
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# Logs
logs
!src/api/logs/
!src/api/logs/**
*.log
npm-debug.log*
yarn-debug.log*
Expand All @@ -23,3 +25,7 @@ dist-ssr
*.sln
*.sw?
.vercel
CODEMAP.md
CONTEXT_BUNDLE.md
mydocs
.github/copilot-instructions.md
49 changes: 1 addition & 48 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,54 +16,7 @@ Advanced Subscription Manager for QX, Loon, Surge, Stash and ShadowRocket.

Core functionalities:

1. Conversion among various formats.
2. Subscription formatting.
3. Collect multiple subscriptions in one URL.

## 1. Subscription Conversion

### Supported Input Formats

- [x] SS URI
- [x] SSR URI
- [x] SSD URI
- [x] V2RayN URI
- [x] QX (SS, SSR, VMess, Trojan, HTTP)
- [x] Loon (SS, SSR, VMess, Trojan, HTTP)
- [x] Surge (SS, VMess, Trojan, HTTP)
- [x] Stash & Clash (SS, SSR, VMess, Trojan, HTTP)

### Supported Target Platforms

- [x] QX
- [x] Loon
- [x] Surge
- [x] Stash & Clash
- [x] ShadowRocket

## 2. Subscription Formatting

### Filtering

- [x] **Regex filter**
- [x] **Discard regex filter**
- [x] **Region filter**
- [x] **Type filter**
- [x] **Useless proxies filter**
- [x] **Script filter**

### Proxy Operations

- [x] **Set property operator**: set some proxy properties such as `udp`,`tfo`
, `skip-cert-verify` etc.
- [x] **Flag operator**: add flags or remove flags for proxies.
- [x] **Sort operator**: sort proxies by name.
- [x] **Regex sort operator**: sort proxies by keywords (fallback to normal
sort).
- [x] **Regex rename operator**: replace by regex in proxy names.
- [x] **Regex delete operator**: delete by regex in proxy names.
- [x] **Script operator**: modify proxy by script.

[Sub-Store](https://github.com/sub-store-org/Sub-Store)

### Development

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
---
date: 2026-05-04
topic: collection-first-sub-flow
---

# 组合订阅单条订阅流量透传

## Summary

在组合订阅编辑页增加一个集合级开关,用来控制是否透传单条订阅的流量信息,并保持现有默认开启行为。

## Problem Frame

组合订阅当前默认透传第一个单条订阅的流量信息。用户如果不希望继承这份流量信息,需要一个可见、可按组合订阅单独配置的控制项,而不是依赖隐藏数据修改或脚本。

## Requirements

- R1. 组合订阅编辑页展示一个名为“透传单条订阅流量信息”的开关。
- R2. 新建组合订阅时默认开启;已有组合订阅未存储该值时也按开启处理。
- R3. 开关开启时,组合订阅下载继续透传第一个单条订阅的流量信息。
- R4. 开关关闭时,组合订阅下载不透传单条订阅流量信息,但组合订阅自身手动配置的流量信息仍然生效。
- R5. 开关提供 tips,说明默认透传第一个单条订阅流量信息;如需合并组合订阅中所有单条订阅的流量,可使用 https://t.me/zhetengsha/3070 的脚本。
- R6. tips 包含“查看”按钮,点击后在新窗口打开 https://t.me/zhetengsha/3070。

## Acceptance Examples

- AE1. **Covers R1, R2.** 用户新建组合订阅时,编辑页可见该开关,并且开关处于开启状态。
- AE2. **Covers R2, R3.** 已有组合订阅未存储该配置时,下载行为保持现状,继续透传第一个单条订阅的流量信息。
- AE3. **Covers R4.** 组合订阅关闭该开关后,下载时不透传单条订阅流量信息。
- AE4. **Covers R5, R6.** 用户打开开关 tips 后,点击“查看”会打开 Telegram 脚本链接。

## Success Criteria

- 用户能在组合订阅编辑页直接发现并修改流量透传行为。
- 旧组合订阅在用户主动关闭开关前保持原有行为。
- 需求边界足够清晰,不需要规划或评审时再发明内置合并所有单条订阅流量的行为。

## Scope Boundaries

- 不内置实现合并所有单条订阅流量信息。
- 不修改单条订阅编辑页。
- 不重构现有流量信息处理链路。

## Key Decisions

- 复用后端已有行为字段作为组合订阅开关,前端只暴露当前运行时能力,不引入并行配置。
- 默认开启,以保证向后兼容。
1 change: 1 addition & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<head>
<meta charset="UTF-8" />
<meta name="version" content="__SUB_STORE_FRONT_END_VERSION__">
<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<!-- <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "sub-store-front-end",
"version": "2.15.66",
"version": "2.16.96",
"private": true,
"scripts": {
"dev": "vite --host",
Expand All @@ -25,6 +25,7 @@
"@lezer/javascript": "^1.4.13",
"@nutui/nutui": "^3.3.8",
"@replit/codemirror-indentation-markers": "^6.5.0",
"@vuepic/vue-datepicker": "10.0.0",
"@vueuse/core": "^8.9.2",
"@vueuse/integrations": "^8.9.2",
"axios": "^0.27.2",
Expand Down
Loading