Parent: #540
Standalone implementation: treitforge/cathub#2
Convert QsoRipper from owning and building CatHub source to consuming CatHub as an optional standalone dependency.
Scope:
- Remove the in-tree qsoripper-cathub crate from the Rust workspace and normal build output.
- Remove CatHub-owned configuration samples, implementation documents, and duplicated runtime source.
- Preserve the unified [cat_hub] compatibility mode while supporting CatHub's standalone configuration path.
- Resolve CatHub from CATHUB_EXECUTABLE, an explicitly bundled artifact, or PATH.
- Validate the supported CatHub 0.1.x executable version before launch.
- Derive readiness from configured Hamlib NET or WinKeyer endpoints.
- Preserve normal QsoRipper logging when CatHub is absent.
- Record the external repository and supported protocol version.
- Retain and verify the temporary WinKeyer protobuf snapshot until both engines consume published CatHub protocol packages.
- Update integration scripts and documentation.
Acceptance:
- QsoRipper no longer compiles or publishes CatHub.
- Normal builds do not require a sibling CatHub checkout or network access.
- Managed unified and externally managed CatHub configurations are documented and supported.
- Launcher discovery, version validation, readiness selection, and missing-executable behavior are tested.
- Rust, .NET, Buf, dependency, coverage, and workflow-lint gates pass.
Parent: #540
Standalone implementation: treitforge/cathub#2
Convert QsoRipper from owning and building CatHub source to consuming CatHub as an optional standalone dependency.
Scope:
Acceptance: