Skip to content

[pull] master from Peng-YM:master#5

Open
pull[bot] wants to merge 1453 commits into
Cold5721:masterfrom
sub-store-org:master
Open

[pull] master from Peng-YM:master#5
pull[bot] wants to merge 1453 commits into
Cold5721:masterfrom
sub-store-org:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull Bot commented Sep 14, 2021

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull Bot added ⤵️ pull merge-conflict Resolve conflicts manually labels Sep 14, 2021
@Peng-YM Peng-YM force-pushed the master branch 2 times, most recently from dd642b3 to 5035712 Compare May 2, 2022 03:08
@Peng-YM Peng-YM force-pushed the master branch 6 times, most recently from b69776e to e28e440 Compare May 30, 2022 05:48
@Peng-YM Peng-YM force-pushed the master branch 11 times, most recently from 6319f40 to 7aa3518 Compare June 7, 2022 08:37
@Peng-YM Peng-YM force-pushed the master branch 7 times, most recently from 02eec83 to 730e599 Compare June 16, 2022 10:31
xream and others added 30 commits May 9, 2026 10:38
- 新增 `.node-version`(26.1.0)并在 GitHub Action 中改为按文件读取 Node 版本
- backend 版本号提升到 2.22.27,Mocha 升级到 ^11.7.5 并同步更新 lockfile
- 重构 Gist 错误信息提取逻辑,统一返回 `ERROR: HTTP 状态码: 消息`,便于定位 API 问题
- Gist 同步前补充上传摘要日志(文件数、总大小、最大文件),同步失败时输出失败上下文
- 同步异常日志改为输出完整错误栈,便于排查
- 同步到 Gist 的失败场景与新增日志行为补充单测覆盖
- 将 artifact 同步上传流程改为分批执行,新增 artifactSyncBatchSize 配置项(默认 10,可自定义),避免一次上传量过大
- 提取并复用 Gist 响应日志打印与文件链接解析逻辑(兼容 GitHub/GitLab),减少重复代码
- cron 同步和手动同步都改为调用统一批量上传能力,批次失败时仍继续下一批,提升同步稳定性
- 上传成功/失败数量改为按实际成功上传批次统计,并保留失败明细
- 新增/扩展测试:batch size 归一化、批次上传失败后还能继续处理后续批次
- Resolve Domain Operator 新增并发控制参数 `concurrency`(默认 15,超 20 会 warning),并将解析流程改为基于 worker 池执行,避免重复解析
- 新增域名解析结果缓存命中分流逻辑,命中缓存的域名不再参与并发解析,同时补强并发参数校验与空值兼容
- 调整 Domain Resolver 日志与 Settings 读取,兼容 `$.read(SETTINGS_KEY)` 可能为空的场景
- ClashMeta producer 调整 tailscale 兼容条件,不再把 tailscale 一律过滤掉
- sing-box producer 增加 `control-http-client` 支持映射到 `control_http_client`,新增 `state-dir` 兼容,且在存在 control client 时跳过 legacy 的 `detour`/`dialer-proxy`/`ip_version`/`domain_resolver` 映射以避免字段冲突
- 新增 `resolve-domain.spec.js` 覆盖并发上限、缓存命中、无效参数、告警场景,以及 sing-box 结构化测试补充 tailscale control_http_client 与 legacy 字段互斥校验
- 后端版本号升级到 `2.23.4`,并补充 demo 注释说明 `control_http_client` 的使用方式
The producer (producers/surgemac.js) already supports a merge mode
that emits N SOCKS5 listeners + one shared mihomo external process,
avoiding the "one mihomo process per node" pattern. However the only
way to enable it today is to write a per-proxy script operator that
sets `_merge = true`.

For users on networks where many subscription nodes are unreachable
(e.g. CERNET / 校园网 to overseas VPS), the current default spawns
dozens of idle-but-stuck mihomo subprocesses, each accumulating
~8s GFW-timeout outbound attempts that can cause system-wide
slowdown.

This patch wires two new URL query parameters into `produceOpts`:

- `mihomoMerge=true|1` — enables the existing merge mode
- `mihomoMergeName=<name>` — optional name for the merged entry

Both only take effect when `target=SurgeMac` (i.e. when
`useMihomoExternal` is already on).

No behavior change for existing requests; default is unchanged.
- 新增 Surge h2-connect 节点解析与导出能力,完整支持 root headers 透传
- 支持 Surge/TrustTunnel/HTTP/HTTPS 的 headers 配置解析,支持占位符文本原样保留
- 统一在输出阶段对 headers 与 h2-connect 做平台能力判断,不支持时默认过滤并输出错误提示
- Egern 的 HTTP/HTTPS 透传 root headers,不再静默丢失
- Mihomo 明确过滤不支持的 h2-connect / TrustTunnel header 变体,并保留 `include-unsupported-proxy` 可选行为
- 修复并扩展 parser/producer 的结构化与文本测试覆盖,覆盖 include-unsupported-proxy 下边界行为
- 补充本次需求的 brainstorm 文档,记录验收标准与兼容性边界
feat(wip): expose mihomoMerge / mihomoMergeName via URL query
- 下载接口新增 SurgeMac 专属参数提取方法,统一处理 `mihomoMerge / mihomoMergeName / mihomoExternal`
- `downloadSubscription` 与 `downloadCollection` 都透传这些参数到生成配置逻辑,且保留现有默认行为
- SurgeMac 生产器支持通过 `opts.mihomoExternal` 控制 mihomo 输出,并在 fallback 场景下安全返回空字符串兜底
- `SurgeMac` 日志增加 `mihomoMerge / mihomoMergeName / mihomoExternal` 可观测输出,排障更清晰
- 新增下载路由测试:单订阅与组合订阅下的默认/合并/链接参数场景覆盖
- 解析器增强 Surge headers 的分段与转义处理,修复包含分号、逗号、引号、反斜杠的场景解析失败
- 支持 quoted header key/value 与 `headers="..."` / `headers='...'` 外层包裹的解析,避免误截断
- 生成器输出 headers 时统一加外层引号,并对值内双引号进行转义,降低往返转换不一致风险
- 通过 proxy parser/producers 测试覆盖复杂 headers(嵌套引号、quoted key、quote-start key)并新增 round-trip 校验
- 补充 README Surge 支持列表,加入 HTTPS 与 HTTP/2 CONNECT
- 调整 sing-box 的 network 解析:`_network` 显式为 `tcp/udp` 时直接生效,并提高优先级,避免和 `udp` 冲突。
- 增加 Mihomo 风格兼容:当节点配置 `udp: false` 时,对支持 `network` 的协议写入 `network: "tcp"`。
- 为 shadowTLS 与 SSR 补齐 network 解析,确保这两类协议也能应用 UDP/TCP 映射规则。
- 移除 anytls、tailscale、wireguard 的 network 映射,避免输出不支持的字段导致配置不合法。
- 新增结构化产物测试,验证:
  - `udp: true/false` 与 `_network` 的行为差异与优先级;
  - 不支持 network 的协议不会被误加 `network` 字段。
- 更新 demo 注释说明 `_network` 生效协议列表、`udp` 与 `_network` 的关系。
- 新增云配置同步策略:定时任务在缺少 GitHub Token 时会跳过需要上传的条目,但仍执行“仅本地生成”(upload=false)的条目
- 同步逻辑支持 `upload: false`:配置仍会生成和更新时间,但不上传到 Gist,并会清理旧的远端 URL
- 上传批次改为仅处理可上传条目;当无可上传条目时直接提示并跳过上传
- 同步日志和通知区分“上传成功/仅生成未上传/因缺少 token 跳过”,统计更准确
- 删除配置的远端删除条件调整为更合理:没有远端 URL 且仅本地运行的条目不会再尝试远端删除
- 新增/扩展测试覆盖了:
  - cron 同步策略判断
  - 批量上传时跳过 `upload: false`
  - 单条同步时仅更新运行时间且不上传
  - 无远端 URL 时删除行为
- 在 SS URI 解析中新增 `gost=` 参数解析,支持 address/port/route/host/path/route 的标准化映射
- `route=ws|wss|websocket` 时自动转换为 `plugin-opts.mode`,并在 wss 场景下启用 tls
- 增加 mihomo 风格输出对 `plugin-opts.mux` 的布尔化处理(兼容 0/1、true/false、字符串等输入)
- 补充 parser 和 producer 测试:覆盖 gost-plugin 解析、mihomo mux 归一化与保留
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

⤵️ pull merge-conflict Resolve conflicts manually

Projects

None yet

Development

Successfully merging this pull request may close these issues.

9 participants