Layout fix, CIO cable data, and Pro licence hardening
OSS
- Wider label column in advanced details. The label column is now 160pt (was 120pt) so longer translated strings like Italian "Elettronica attiva via cavo" no longer wrap onto a second line. Thanks to @bovirus for the report in #130.
- CIO cable capability in JSON output.
whatcable --jsonnow includes a"cio"object per port with Thunderbolt cable capability data from the controller's CIO transport. Fields include cable generation, cable speed, and asymmetric mode support. Values are not yet surfaced in the UI while we collect more data points. - RefreshSignal moved to WhatCableAppKit. Internal cleanup so tests can import it without pulling in the full SwiftUI app target.
- Updated contributor credits. Added 8 missing contributors, credited @abrauchli for the usbeehive Linux port, and synced @NoFr1ends.
- Website SEO. Added canonical URLs, updated OG tags to use www subdomain, added Pro and Support pages to the sitemap, bumped schema version.
Pro
- More forgiving licence validation. The offline grace window is now 30 days (was 7). Network errors during revalidation no longer lock you out; only an explicit server rejection revokes a licence.
- Better activation error messages. The settings UI now shows "Could not reach the licence server" for network failures instead of the generic "Invalid licence key" message.
- Localised Pro UI. All Pro plugin views (diagnostics, power monitor, licence settings, pin diagrams) now use the shared translation bundle. Translators maintain one set of files across both OSS and Pro.