Skip to content

feat(proxy-subscription): generate the local proxy-core configuration (opt-in) - #15141

Open
maxmad64bis wants to merge 1 commit into
diegosouzapw:release/v3.8.52from
maxmad64bis:feat/core-config-beside
Open

maxmad64bis wants to merge 1 commit into
diegosouzapw:release/v3.8.52from
maxmad64bis:feat/core-config-beside

Conversation

@maxmad64bis

@maxmad64bis maxmad64bis commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

⚠️ base-red inherited: #15306

Summary

Keeping a live proxy subscription in sync by hand is permanent manual work. The app now generates what it owns — local entries, groups, passed-through node definitions — into a file next to the operator's, only when the operator opts in. Nothing is overwritten. Generated group assignment and node tags now derive from a stable node identity (endpoint, port, credentials, transport) instead of the display name, so feeds where many nodes share one name spread across every group and reorderings keep each tag on its server; the previous output used the display name with positional suffixes (dup-2, dup-3), the new output uses identity-derived suffixes (dup-<6 hex chars>). At the first sync after this change, feeds with duplicated names report a changed member digest and reload once through the control API.

Related Issues

Validation

  • Change type: provider
  • Focused tests and category gates from the golden path
  • npm run lint — ESLint on the touched files is clean; the full run is red on the base (🔴 Release branch not green: release/v3.8.52 #15306)
  • Reconciled with the current active release base; focused checks rerun afterward
  • Production-code changes include a new or updated automated test in this PR

Tests Added Or Updated

  • tests/unit/proxySubscription.coreModel.test.ts (new: identity-derived tags stable under permutation, rendezvous group stability, sourceless-node fallback, object/URI identity match, missing-vs-explicit port, NFC names, same-name spread, group removal moves only its members, exact duplicates share one group, selector-shared lines form one group)
  • tests/unit/proxySubscription.coreRenderSingbox.test.ts (new: unrenderable-only groups reported as empty_group, mixed rendered/unrenderable groups, fully rendered groups silent)
  • tests/unit/proxySubscription.coreConfigSync.test.ts (new: unassigned groups logged per group, populated generation silent, unchanged rerun silent, skip line carries counts only, no accumulated state across generations)

Coverage Notes

  • src/lib/proxySubscription/coreConfig/model.ts, src/lib/proxySubscription/parse.ts — proxySubscription.coreModel.test.ts
  • src/lib/proxySubscription/coreConfig/singbox.ts, src/lib/proxySubscription/coreConfig/renderers.ts — proxySubscription.coreRenderSingbox.test.ts
  • src/lib/proxySubscription/coreConfig/sync.ts — proxySubscription.coreConfigSync.test.ts
  • src/lib/proxySubscription/coreConfig/pathGuard.ts, src/lib/proxySubscription/schema.ts — proxy-subscriptions-route-validation.test.ts
  • src/lib/proxySubscription/subscriptionService.ts — proxySubscription.coreConfigSync.test.ts and proxySubscription.selectorWarning.test.ts
  • src/lib/proxySubscription/selectorTrigger.ts — proxySubscription.selectorWarning.test.ts

Reviewer Notes

@maxmad64bis
maxmad64bis force-pushed the feat/core-config-beside branch 2 times, most recently from 522887b to fb13a00 Compare September 29, 2026 20:30
@maxmad64bis
maxmad64bis force-pushed the feat/core-config-beside branch from fb13a00 to c55bcc4 Compare September 29, 2026 20:43
@maxmad64bis
maxmad64bis marked this pull request as ready for review September 29, 2026 21:05
@maxmad64bis
maxmad64bis force-pushed the feat/core-config-beside branch 4 times, most recently from f653158 to 9bb6ed8 Compare September 30, 2026 00:03
@maxmad64bis
maxmad64bis marked this pull request as draft October 1, 2026 21:42
@maxmad64bis
maxmad64bis force-pushed the feat/core-config-beside branch from 9bb6ed8 to 20a55e7 Compare October 1, 2026 22:56
diegosouzapw added a commit to maxmad64bis/OmniRoute that referenced this pull request Oct 2, 2026
Restore AGENTS.md, README.md, llm.txt and the docs/i18n/*/llm.txt mirrors to the release
version (migration counts move only on the release train). Keep both file-size rebaseline
justification keys. Stacked on diegosouzapw#15141: it must merge after it.

Co-authored-by: diegosouzapw <8016841+diegosouzapw@users.noreply.github.com>
@maxmad64bis
maxmad64bis marked this pull request as ready for review October 2, 2026 08:55
@maxmad64bis
maxmad64bis force-pushed the feat/core-config-beside branch from f4d2e55 to 6dd9836 Compare October 2, 2026 15:07

This branch has not been deployed

No deployments
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