Skip to content

Implement CatHub-owned UMDF virtual COM transport - #13

Draft
rtreit wants to merge 39 commits into
mainfrom
codex/issue-6-umdf-poc
Draft

Implement CatHub-owned UMDF virtual COM transport#13
rtreit wants to merge 39 commits into
mainfrom
codex/issue-6-umdf-poc

Conversation

@rtreit

@rtreit rtreit commented Aug 22, 2026

Copy link
Copy Markdown
Member

Summary

  • add a pure-Rust UMDF 2 Ports-class driver with a private, versioned CHVS 1.0 CatHub transport
  • implement asynchronous application/private queues, bounded buffering and backpressure, cancellation, timeouts, purge, event masks, modem state, lifecycle notifications, and stable multi-instance endpoint identities
  • integrate managed CAT and WinKeyer streams into cathub.exe without moving radio or keying policy into the driver
  • add idempotent virtual-serial status/plan/apply/remove commands with stable COM selection, COM Name Arbiter collision detection, ownership checks, diagnostics, and JSON output
  • authorize the private daemon channel to the provisioning Windows user through UMDF request impersonation
  • add reproducible locked-release WDK packaging, catalog signing support, provenance, checksums, symbols, and Windows end-to-end acceptance tooling
  • add a loopback-only private-channel test peer so the native Win32 serial conformance suite can exercise the installed one-COM architecture without recreating a null-modem pair
  • migrate the sample station configuration from five com0com pairs to five single-port CatHub endpoints while preserving externally provisioned and physical serial transports
  • add dependency advisory, ban, and source-policy checks; update h2 for RUSTSEC-2026-0258
  • document the completed local installed-driver acceptance, authorized local-machine harness flow, automated client-profile evidence, and remaining production gates

Verification

  • the installed and accepted driver package exactly matches f641c2b; ab669c3 adds only the durable evidence documentation and clearer development-target diagnostics
  • all five PR checks pass on current head ab669c3: Linux Rust, Windows Rust, .NET protocol, supply-chain, and pinned-WDK UMDF driver
  • workspace tests pass: 280 library, 3 CLI, and 11 virtual-serial/protocol tests (294 total)
  • UMDF driver passes 29 tests and strict Clippy with Rust 1.91.0, windows-drivers-rs 8e88dd8, WDK NuGet 10.0.28000.2526, and UMDF 2.33
  • all 323 Rust tests pass across the workspace and driver
  • strict workspace Clippy passes for all targets; root and driver cargo-deny advisory/ban/source policies pass
  • CHVS decoders survive a deterministic arbitrary-input corpus plus every single-byte mutation of a valid frame
  • Inf2Cat reports no errors or warnings; InfVerif reports INF is VALID
  • the final package manifest records and matches revision f641c2b, toolchain versions, certificate metadata, file sizes, and SHA-256 hashes
  • the catalog and driver DLL have valid signatures and package integrity verification passes
  • read-only provisioning inventory identifies existing physical/com0com devices as non-CatHub-owned and blocks collisions

Installed-driver acceptance

The exact f641c2b package was installed on an x64 Windows 11 Pro development system as CatHub Virtual Serial Port (COM91) (ROOT\PORTS\0000, oem86.inf, driver 16.25.49.354). The device remains healthy after reboot and after removal of every superseded CatHub development package and test certificate. Existing physical and com0com ports were left untouched.

This development test used an ephemeral CatHub test certificate and Windows Test Signing, with Memory Integrity running and integrity checks otherwise enabled. Secure Boot was disabled on this development system. This is development evidence only and does not satisfy the production signing/distribution gate in #6.

The installed-driver harness passed all 55 serial conformance checks: 11 checks for each of the five configured profiles (hdsdr-omnirig, n1mm-radio, arcp-590, n1mm-winkeyer, and wktools). Coverage includes:

  • Windows COM discovery plus native synchronous and overlapped reads/writes
  • pending-read cancellation, read/write timeouts, purge, queue status, event masks, modem controls, DCB configuration, and exclusive-open/reopen behavior
  • .NET SerialPort finite read timeout behavior
  • real CatHub TS-590 loopback (ID; -> ID021;), frequency round-trip, and 100 repeated bidirectional queries
  • clean application close/reopen
  • bounded failure after forced daemon loss, daemon restart, and application reconnect
  • UMDF device disable/enable cycle, stable COM/device identity, daemon restart, and reconnect without reboot

The acceptance report completed successfully in about 21 seconds and is retained locally as target/cathub-umdf-e2e-final.json.

Scope status for #6

This PR completes Phase 1 (private contract and conformance harness) and implements the core pure-Rust UMDF data plane, CatHub Windows adapter, provisioning CLI, reproducible development packaging, and automated compatibility profiles. It demonstrates a functional CatHub-specific com0com replacement end to end on the development system.

Issue #6 intentionally defines the complete production transport, so the following release gates remain and keep this PR in draft:

  • obtain an approved publicly trusted signing path and prove installation on a clean Windows 11 target with Secure Boot and Memory Integrity enabled, Test Signing disabled, and no publisher certificate preinstalled
  • run and document the five actual supported third-party clients: HDSDR/OmniRig, N1MM CAT, ARCP-590, N1MM WinKeyer, and WKTools (the automated profiles currently validate their recorded serial API shapes)
  • exercise sleep/resume, sustained high-rate/buffer-saturation and cancellation-race acceptance, plus PTT/WinKeyer fail-safe behavior with real endpoint lifecycle integration
  • implement and validate the optional installer, including standard-user operation after install and upgrade, repair, rollback, and uninstall
  • retain the required signing prompts, certificate-chain, PnP, Code Integrity, UMDF, symbols, provenance, and release evidence

Closes #6 only after those production acceptance criteria are complete.

rtreit added 30 commits August 14, 2026 16:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement a first-class Windows UMDF virtual serial transport

1 participant