2.5 KiB
Task Record
Date: 2026-04-26 Related Module: web settings / subscription assets / setting service Change Type: Fix
Background
The Clash subscription toggle in /panel/settings did not behave correctly in practice.
The page was loading an outdated fingerprinted frontend model from web/public that did not include Clash subscription fields, which caused inconsistent binding and update behavior for subClashEnable and related properties.
In addition, Clash subscription keys were not mapped in the settings grouping metadata, making their nested config representation inconsistent.
Changes
Regenerated fingerprinted frontend assets via go run ./cmd/genassets so the settings page now loads an updated AllSetting model containing:
subClashEnablesubClashPathsubClashURI
Updated settings group mappings in web/service/setting.go:
- Added Clash keys to
subscriptionNetwork:clashEnable -> subClashEnableclashPath -> subClashPathclashURI -> subClashURI
- Added corresponding Clash keys to legacy
submapping for compatibility.
Impact
Affected modules or files.
web/service/setting.goweb/public/assets-manifest.jsonweb/public/assets/js/model/setting.*.js(fingerprinted replacement)web/public/assets/js/subscription.*.js(fingerprinted replacement)web/public/assets/codemirror/yaml.*.js(fingerprinted generated asset)
Whether APIs, database, config, build, or compatibility are affected.
- API schema unchanged.
- Database unchanged.
- Settings file structure compatibility improved for Clash keys in nested/legacy mappings.
- Frontend static asset fingerprints updated.
Whether upstream or downstream callers are affected.
- Panel settings frontend now correctly tracks and submits Clash subscription toggle/path fields.
- Subscription page uses refreshed asset bundle.
Verification
List validation commands or checks performed.
go run ./cmd/genassetsgo test -race ./web/service/...
State the result.
- Asset generation succeeded.
- Related service tests passed.
If not verified, explain why.
- No live runtime verification against a deployed panel/subscription server was performed in this local environment.
Risks And Follow-Up
Remaining risks.
- Existing browser caches may keep old fingerprint mappings until refresh; after deploy/restart, hard refresh may still be needed in some clients.
Recommended follow-up work.
- Verify in a deployed environment that toggling
Clash Subscriptionand editingsubClashPathimmediately reflects expected behavior after restart/reload cycle.