Skip to content

修复:订阅源失败时保留节点与hosts缓存,策略组由SubBoost统一生成 - #108

Closed
QAQLeonard wants to merge 3 commits into
SubBoost:mainfrom
QAQLeonard:main
Closed

QAQLeonard wants to merge 3 commits into
SubBoost:mainfrom
QAQLeonard:main

Conversation

@QAQLeonard

Copy link
Copy Markdown

某个订阅源暂时关闭或获取失败时,当前实现可能丢失该源的节点;完整YAML中的hosts等连接配置也会在导入后丢失,导致节点解析到错误入口。本修改按源保存成功结果,失败时保留已有数据,其他源仍可独立更新。

最终导出的策略组和分流规则完全由SubBoost生成,不导入原订阅的策略组、规则、子规则或规则提供者,也不向SubBoost策略组追加原订阅组入口。节点连接参数保持不变,原始配置仅保存在源缓存中。

具体改动:

  • 成功时独立更新该源的节点、配置和响应信息;HTTP错误、空响应或解析失败时保留旧数据,沿用现有加密配置存储,无需数据库迁移。
  • 保留并合并hosts、DNS等连接所需配置,刷新域名别名并补齐到真实IP的映射;DNS解析最多4个并发,并限制映射数量、查询目标、遍历深度和处理量。
  • provider模式优先使用已有节点缓存;纯provider配置可正常导入、保存和生成,其provider直接加入SubBoost自己的策略组。指向被排除原订阅组的listener不导出,provider抓取策略不保留失效组引用。
  • 浏览器UA后备保持在原有4次请求预算内。正文获取失败时,配置的流量/到期信息接口仍独立更新;接口失败保留旧信息,按源汇总避免重复累计。

验证:115项相关离线测试全部通过,覆盖配置生成、策略组与规则不被原订阅污染、provider-only导入/预览/保存/更新/导出、失败保留、DNS并发与资源限制、请求预算和流量信息更新。TypeScript、ESLint和git diff --check通过。

本PR仅包含运行源码,测试和临时部署文件未提交。

@chatgpt-codex-connector

Copy link
Copy Markdown

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Credits must be used to enable repository wide code reviews.

@QAQLeonard QAQLeonard closed this Oct 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant