# 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=&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.