Skip to content

release: SubBoost v2.6.0#54

Merged
Ryson-32 merged 8 commits into
mainfrom
ryan/dev
Jul 11, 2026
Merged

release: SubBoost v2.6.0#54
Ryson-32 merged 8 commits into
mainfrom
ryan/dev

Conversation

@Ryson-32

Copy link
Copy Markdown
Contributor

Summary

  • improve advanced proxy-group member management and counts
  • improve Clash/Mihomo YAML and ECH parameter compatibility
  • make self-hosted backups fail safely and support configurable retention
  • bump the public release version to v2.6.0

Verification

  • npm run lint
  • npm run test:unit
  • npm run check:local-app

Copilot AI review requested due to automatic review settings July 11, 2026 18:07
@Ryson-32
Ryson-32 merged commit ebc40a2 into main Jul 11, 2026
11 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR prepares the SubBoost v2.6.0 release by improving advanced proxy-group member management in the UI, expanding parser compatibility for Clash/Mihomo YAML and ECH parameters, hardening self-hosted backup behavior, and bumping versions/docs to 2.6.0.

Changes:

  • Adds bulk add/remove/restore controls for advanced proxy-group members, plus more accurate node/proxy-group counting and cycle avoidance.
  • Improves subscription parsing compatibility (inline flow YAML proxy lists, indentation repair) and standardizes ECH handling across protocols + sanitization.
  • Makes self-hosted backups fail safely, adds configurable retention, and bumps release versions/badges/notes to v2.6.0.

Reviewed changes

Copilot reviewed 40 out of 42 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
scripts/selfhost-release-assets.cjs Hardens installer default replacement and clarifies image tag defaults.
README.md Updates version badge to 2.6.0.
README-CN.md Updates version badge to 2.6.0 (CN).
packages/ui/src/styles/globals.css Adds responsive container-query styling for new proxy-group member toolbar/actions.
packages/ui/src/store/config-store/actions/proxy-group-rule-set-helpers.ts Removes now-unused module-rules import.
packages/ui/src/store/config-store/actions/custom-actions.ts Extracts state typing and clarifies variable naming in rule-set cleanup.
packages/ui/src/product/converter/use-subscription-sources-controller.ts Introduces shared controller hook for quick/advanced source management.
packages/ui/src/product/converter/quick-mode/sources-section.tsx Refactors quick-mode source UI to use the shared controller.
packages/ui/src/product/converter/advanced-mode/sections/proxy-groups-rules-library.test.ts Formatting/indent normalization in test mocks.
packages/ui/src/product/converter/advanced-mode/sections/proxy-groups-custom-rules.tsx Avoids accidental state drift by snapshotting rule type during add.
packages/ui/src/product/converter/advanced-mode/sections/proxy-groups-custom-groups-panel.tsx Removes unused ProxyGroupTypeMenu import (types only).
packages/ui/src/product/converter/advanced-mode/sections/proxy-groups-categories.tsx Fixes node-count logic to count only real nodes (exclude DIRECT/REJECT/group refs).
packages/ui/src/product/converter/advanced-mode/sections/proxy-groups-categories.test.ts Updates tests for corrected node-count behavior.
packages/ui/src/product/converter/advanced-mode/sections/proxy-groups-added-rule-sets.tsx Removes unused addModuleRules prop.
packages/ui/src/product/converter/advanced-mode/sections/proxy-group-member-section-header.tsx Adds reusable member-section header with bulk actions + counts.
packages/ui/src/product/converter/advanced-mode/sections/proxy-group-member-bulk.ts Adds bulk member manipulation helpers + cycle detection utilities.
packages/ui/src/product/converter/advanced-mode/sections/proxy-group-member-bulk.test.ts Adds test coverage for bulk member helpers and cycle blocking.
packages/ui/src/product/converter/advanced-mode/sections/proxy-group-advanced-panel.tsx Implements bulk node/group actions, restore-default confirmation, and cycle-safe additions.
packages/ui/src/product/converter/advanced-mode/sections/proxy-group-advanced-panel.test.ts Updates rendering tests for new member toolbar and labels.
packages/ui/src/product/converter/advanced-mode/sections/proxy-group-advanced-panel-interactions.test.ts Adds interaction tests for bulk add/remove/restore + cycle skipping toast.
packages/ui/src/product/converter/advanced-mode/sections/input-section.tsx Refactors advanced input section to use shared sources controller.
packages/core/src/parser/protocols/vmess.ts Routes ECH parsing to shared Mihomo ECH helper.
packages/core/src/parser/protocols/vmess.test.ts Updates expectations for ECH values (now treated as share-value format).
packages/core/src/parser/protocols/vless.ts Routes ECH parsing to shared Mihomo ECH helper.
packages/core/src/parser/protocols/trojan.ts Routes ECH parsing to shared Mihomo ECH helper.
packages/core/src/parser/protocols/ech-protocols.test.ts Adds cross-protocol contract tests ensuring ECH query-server-name preserved in YAML output.
packages/core/src/parser/protocols/anytls.ts Routes ECH parsing to shared Mihomo ECH helper.
packages/core/src/parser/parser-contracts.test.ts Updates AnyTLS contract expectations for ECH share value handling.
packages/core/src/parser/content-parsers.ts Detects top-level inline flow proxy lists to route them into YAML parsing.
packages/core/src/parser/content-parsers.test.ts Adds tests for inline flow proxy list detection + malformed long input routing.
packages/core/src/parser/clash-yaml.ts Adds repair step for inconsistent indentation in root flow proxy lists.
packages/core/src/parser/clash-yaml.test.ts Adds tests for root flow proxy list parsing/repair and related edge cases.
packages/core/src/mihomo/proxy-sanitizer.ts Improves ECH sanitization and centralizes Base64/ECH helpers.
packages/core/src/mihomo/proxy-sanitizer-ech.test.ts Adds sanitizer tests for legacy domain-valued config behavior.
packages/core/src/mihomo/ech.ts Adds Mihomo ECH helper utilities (Base64 validation, query-server-name classification).
packages/core/src/mihomo/ech.test.ts Adds unit tests for Mihomo ECH helpers.
package.json Bumps root version to 2.6.0.
package-lock.json Updates lock metadata versions to 2.6.0.
local/scripts/subboost.sh Makes backups fail safely, adds retention config, and refines health checks.
local/scripts/selfhost-shell.test.ts Updates expected curl call counts due to health-check behavior change.
local/package.json Bumps local package version to 2.6.0.
docs/release-notes.md Updates release notes content/version to v2.6.0 (CN/EN).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +23 to +31
export function buildMihomoEchOptsFromShareValue(value: unknown): MihomoEchOpts {
const normalized = typeof value === "string" ? value.trim() : "";
if (!normalized) return { enable: true };
if (isStandardBase64String(normalized)) return { enable: true, config: normalized };
if (isMihomoEchQueryServerName(normalized)) {
return { enable: true, "query-server-name": normalized };
}
return { enable: true };
}
Comment on lines 251 to +255
const config = normalizeString(raw);
if (config && isStandardBase64String(config)) out[key] = config;
if (config && isStandardBase64String(config)) {
out[key] = config;
} else if (config && !explicitQueryServerName && isMihomoEchQueryServerName(config)) {
out["query-server-name"] = config;
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.

2 participants