Release notes
What changed in each Channel release, newest first, from the repository changelog.
This page summarizes each witwin-channel release, newest first. It follows CHANGELOG.md in the witwin-channel repository. Channel uses semantic versioning within the 0.x series, so a minor release can break the API. To upgrade, see Installation.
0.5.0 (2026-07-30)#
Current release. Requires witwin==0.4.0 and links RayD 0.8.0. The propagation consumer CONTRACT_VERSION is 6.
Breaking changes
- RayD 0.8.0. Channel links the released RayD 0.8.0 source and validates its eight integration headers and source manifest. The RayD 0.7 include paths and source layout no longer work. This matters only for source builds.
- Source amplitude in consumer results.
ScalarTransport.coefficientandComplex3Transport.fieldnow includesqrt(powers_w)of each row's transmitting endpoint.JonesTransportstays excitation-free. If your code multiplied bysqrt(powers_w)itself, stop doing so. - Stale replays refused.
reevaluateraises when the world changed since the topology was discovered. A changedtopology_version,material_versionorassignment_versionalways raises; a changedgeometry_versionraises unless the request setsworld_motion="fixed_winner_replay". Before, a stale replay returned the old answer without warning. See Replay a fixed topology. - Published AD capability matrix.
consumer.capabilities()now states which inputs and outputs carry gradients, andcomponent_ad_modesreportsdiffractionas"none"only, because the consumer cannot produce diffraction rows with AD. Inputs listed inprimal_only_ad_inputsare refused before any native work, instead of raising insidebackward(). Second-order AD is refused everywhere.PropagationGeometry.field_directionnow carries a gradient for line-of-sight and reflection rows on the fixed-topology route; primal values are unchanged.
Added
- World provenance.
evaluatestamps aWorldProvenanceonto each topology, andconsumer.rediscovery_required(compiled, prepared)names the version domain that changed, using four host integer comparisons.CompiledScene.time_srecords the snapshot time, for reporting only. - Time slots.
FixedTopologyRequest.slot_countandconsumer.replicate_over_slotsreplay one topology over many block-diagonal slots in one launch per bucket.consumer.evaluate_time_varyingwith aTimeVaryingRequestreturns(S, K)views of delays, lengths, transport and validity. See the time-varying channel tutorial. - Wideband replay.
FixedTopologyRequest.frequency_offsets_hzevaluates the frozen rows at several absolute frequencies. Results come asScalarTransport.coefficient_offsets(K, F)andComplex3Transport.field_offsets(K, F, 3); a0.0offset reproduces the reference coefficient bit for bit.consumer.native_frequency_resolution_hz(f_ref)gives the smallest resolvable offset step, 8192 Hz at 77 GHz. Dispersive, rough or phase-screen scenes and unresolvable grids are refused before any native work. - AD diagnostics
ad_companion_launchesandad_tape_byteson both consumer routes.
Changed
- The Path solver's
phase_conventionmetadata now quotes the unit-excitation free-space amplitude, matching itscoefficient_semantics.
0.4.0 (2026-07-23)#
Added
- Native wheels for Windows and
manylinux_2_28_x86_64, for CPython 3.11 and PyTorch 2.10. - Native CUDA code for SM70, SM75, SM80, SM86, SM87, SM89, SM90, SM100, SM101 and SM120, plus
compute_120PTX for newer GPUs. See GPU and native runtime. - Release-gated wheel builds on GitHub-hosted runners, with checks of the binary architectures and package layout.
Changed
- Links the locked RayD 0.7.0 source at commit
49c58c4cb8212f6babb920cc88fb937509826cc5. - Faster hosted builds through grouped CUDA targets and compiler caching, with the same architecture coverage.
- Native CI runs only on manual dispatch and on published GitHub releases.
Removed
- The old self-hosted CI and release workflows.
Earlier releases#
Releases before 0.4.0, including 0.1.0 (GitHub release, 2026-06-25), have no changelog entries. Their API differs from the one on these pages: modules such as witwin.channel.core and types such as RadioMapResult no longer exist. Port such code to the solver modules described in Solvers and path types, in a fresh environment.