@@ -100,6 +100,38 @@ release.
100100 SIGKILL of an intermediate parent on POSIX -- the child dies AND its
101101 interrupt handler ran -- plus the opt-out gate; the Windows Job Object
102102 leg proves on the next CI push. (plan:#4 , Phase 3b)
103+ - SigMF spec compliance is now tested, not trusted (plan:#8 ): the official
104+ ` sigmf ` package joined the dev dependency group, and the sidecar writer's
105+ output is validated with it -- including that the ` hackrf ` extension is
106+ DECLARED, not just used (a strict-validator rejection that regressed once
107+ pre-1.0). GNU Radio / IQEngine interop is a tested property.
108+ - Docstrings across the entire public API (plan:#1 ): every public method on
109+ ` HackRF ` and ` PersistentReceiver ` , both classes, and the module-level
110+ functions -- 60 docstrings where ` help() ` previously returned nothing.
111+ The documentation used to live only in ` # ` comments, invisible to
112+ ` help() ` , IDE tooltips, and doc generators; the comments (which carry the
113+ rationale) remain, and the docstrings carry the contract. Includes the
114+ print-cmd caveat on ` transmit ` /` transmit_cw ` : duration bounds are
115+ enforced parent-side, so a copied ` --print-cmd ` argv carries NO time
116+ bound. ` tests/test_docstrings.py ` gates the whole surface so it cannot
117+ drift back to undocumented.
118+ - CLI catch-up with the library (plan:#5 ), each command with tests:
119+ ` hrf tx --cw ` (a bounded CW test tone; requires ` -d/--duration ` because an
120+ unbounded carrier is exactly the orphan-transmitter risk the library
121+ exists to prevent; ` --cw-amplitude ` defaults below full scale),
122+ ` hrf monitor ` (sweep-backed multi-frequency power to stdout),
123+ ` hrf scan ` (per-frequency capture power), and ` hrf sweep -o FILE ` with
124+ ` -B ` / ` -I ` binary passthrough (which refuse the CSV stdout path, since
125+ that output is unparsed).
126+ - Thread-safety documented (rescued by the roadmap-comment cleanup; it was
127+ recorded nowhere else): a ` HackRF ` instance is not safe to share across
128+ threads -- per-instance mutable state (` last_params ` , persisted mode,
129+ logging wiring) and per-child drain threads. One instance per thread;
130+ instances are cheap. In the README and on the class.
131+ - Coverage policy recorded in CONTRIBUTING (plan:#11 ): CI gates at
132+ ` --cov-fail-under=82 ` , deliberately under the measured 85% because that
133+ figure counts Windows-only and hardware-only code as missed on Linux legs;
134+ to be revisited upward after the docstring pass.
103135- ` hackrfpy.__version__ ` , resolved from installed package metadata
104136 (` importlib.metadata ` ), with a ` 0.0.0+unknown ` fallback for uninstalled
105137 checkouts. (plan:#7 )
0 commit comments