first commit
Some checks failed
CI/CD Pipeline / Test (push) Failing after 22m19s
CI/CD Pipeline / Security Scan (push) Failing after 5m57s
CI/CD Pipeline / Build (amd64, darwin) (push) Has been skipped
CI/CD Pipeline / Build (amd64, linux) (push) Has been skipped
CI/CD Pipeline / Build (amd64, windows) (push) Has been skipped
CI/CD Pipeline / Build (arm64, darwin) (push) Has been skipped
CI/CD Pipeline / Build (arm64, linux) (push) Has been skipped
CI/CD Pipeline / Build Docker Image (push) Has been skipped
CI/CD Pipeline / Create Release (push) Has been skipped

This commit is contained in:
Rogee
2025-09-28 10:05:07 +08:00
commit 7fcabe0225
481 changed files with 125127 additions and 0 deletions

23
docs/compatibility.md Normal file
View File

@@ -0,0 +1,23 @@
# Compatibility Notes
## Input Normalisation
- Lines that begin with `#`, `;`, or `//` are ignored before parsing, matching the legacy subconverter subscription behaviour.
- UTF-8 byte order marks and common zero-width spacing characters are stripped so mixed-encoding lists no longer yield false negatives.
## Legacy Scheme Support
- Subscription items prefixed with `vmess1://` are normalised to standard `vmess://` links.
- `socks://` URIs and Telegram sharing links (`tg://socks`, `https://t.me/socks`) are accepted and converted into Socks5 nodes during parsing.
- Existing `ss://`, `ssr://`, `trojan://`, and HTTP subscription lines continue to work without modification.
## API Flags
- A new `ipv6` query parameter is honoured by the conversion pipeline and generator layer. Supplying `?ipv6=true` enables IPv6 sections in supported outputs without forcing a global default.
## Manual Verification Checklist
1. `go test ./internal/conversion -run LegacyProtocols`
2. `go test ./...`
3. Start the server (e.g. `go run ./main.go --config config.yaml.example`) and request `curl "http://localhost:25500/api/convert?target=clash&url=<sub-url>&ipv6=true"` to confirm the response reports `request_options.ipv6=true`.
4. Inspect the logs while submitting a subscription that includes `socks://` and `vmess1://` entries to ensure they are parsed successfully and appear in the generated profile.