<?xml version="1.0" encoding="UTF-8"?>
<otherdata xmlns="http://linux.duke.edu/metadata/other" packages="10">
<package pkgid="d01f175ce89fa7f30f984643524e78c6609b0d99fc70be2b54679c6d1fcd1975" name="nic-xray" arch="noarch">
  <version epoch="0" ver="2.10.2" rel="25.13"/>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 1.0-1" date="1772107200">- Initial package release</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 1.3-1" date="1772193600">- Update to 1.3 (sync with SCRIPT_VERSION in nic-xray.sh)</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 1.4-1" date="1772193601">- Update to 1.4 (sync with SCRIPT_VERSION in nic-xray.sh)
- Add man page</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.1-1" date="1772193602">- Update to 2.1
- Refactor: nic-xray moved to its own repository (github.com/ciroiriarte/nic-xray)
- Man page now sourced from upstream (man/man1/nic-xray.1, section 1)
- Switch to tag-based version tracking via GitHub releases API</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.2-1" date="1772280000">- Update to 2.2
- Fix man page section: moved to section 8 (man/man8/nic-xray.8)</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.2.1-1" date="1772280001">- Update to 2.2.1</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.3.0-1" date="1772280002">- Improve DOT diagram and add obfuscated sample outputs
- Add switch nodes and visible ownership edges to DOT diagram
- Add SVG and PNG topology diagram samples
- Rename DOT topology sample to topology.dot for consistency
- Bump version to 2.3.0</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.4.1-1" date="1772366400">- Embed topology PNG in README
- Bump version to 2.3.1
- Fix LACP validation and add bond-level consistency checks
- Add watermark to DOT topology diagram
- Bump version to 2.4.1</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.5.0-1" date="1772366401">- Update to 2.5.0
- Add real-time traffic metrics (-m/--metrics flag) with bandwidth,
  pps, drops, errors, FIFO across all output formats
- Detect bond traffic imbalance (flag members &lt; 70% of max in red)
- Color DOT diagram direction arrows (green Rx, blue Tx)</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.7.0-1" date="1772539200">- Add SFP/QSFP optical transceiver diagnostics (--optics)
- Refactor internal structure for maintainability (v2.7.0)</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.9.0-1" date="1772625600">- Add --watch mode for continuous refresh during recabling (v2.8.0)
- Add hardware/software descriptions to DOT diagram nodes (#3)
- Add serial numbers to DOT diagram nodes
- Add generation timestamp to DOT diagram
- Bump version to 2.9.0</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.10.2-1" date="1775908800">- Add physical topology flag (--physical/-p): NUMA, PCI slot, NIC vendor/model
- Add LLDP port description column
- Add Cisco ACI support via vendor TLVs
- Add bash completion (completions/nic-xray.bash)
- Display bandwidth metrics in bits/s (bps/Kbps/Mbps/Gbps)
- Document Juniper LLDP VLAN TLV limits and Apstra REST API workflow</changelog>
</package>
<package pkgid="cf0b4306650ddb34c36bd6661646f0f2918414b70609a3fdd78bd1cd1395e953" name="nic-xray" arch="src">
  <version epoch="0" ver="2.10.2" rel="25.13"/>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 1.0-1" date="1772107200">- Initial package release</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 1.3-1" date="1772193600">- Update to 1.3 (sync with SCRIPT_VERSION in nic-xray.sh)</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 1.4-1" date="1772193601">- Update to 1.4 (sync with SCRIPT_VERSION in nic-xray.sh)
- Add man page</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.1-1" date="1772193602">- Update to 2.1
- Refactor: nic-xray moved to its own repository (github.com/ciroiriarte/nic-xray)
- Man page now sourced from upstream (man/man1/nic-xray.1, section 1)
- Switch to tag-based version tracking via GitHub releases API</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.2-1" date="1772280000">- Update to 2.2
- Fix man page section: moved to section 8 (man/man8/nic-xray.8)</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.2.1-1" date="1772280001">- Update to 2.2.1</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.3.0-1" date="1772280002">- Improve DOT diagram and add obfuscated sample outputs
- Add switch nodes and visible ownership edges to DOT diagram
- Add SVG and PNG topology diagram samples
- Rename DOT topology sample to topology.dot for consistency
- Bump version to 2.3.0</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.4.1-1" date="1772366400">- Embed topology PNG in README
- Bump version to 2.3.1
- Fix LACP validation and add bond-level consistency checks
- Add watermark to DOT topology diagram
- Bump version to 2.4.1</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.5.0-1" date="1772366401">- Update to 2.5.0
- Add real-time traffic metrics (-m/--metrics flag) with bandwidth,
  pps, drops, errors, FIFO across all output formats
- Detect bond traffic imbalance (flag members &lt; 70% of max in red)
- Color DOT diagram direction arrows (green Rx, blue Tx)</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.7.0-1" date="1772539200">- Add SFP/QSFP optical transceiver diagnostics (--optics)
- Refactor internal structure for maintainability (v2.7.0)</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.9.0-1" date="1772625600">- Add --watch mode for continuous refresh during recabling (v2.8.0)
- Add hardware/software descriptions to DOT diagram nodes (#3)
- Add serial numbers to DOT diagram nodes
- Add generation timestamp to DOT diagram
- Bump version to 2.9.0</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 2.10.2-1" date="1775908800">- Add physical topology flag (--physical/-p): NUMA, PCI slot, NIC vendor/model
- Add LLDP port description column
- Add Cisco ACI support via vendor TLVs
- Add bash completion (completions/nic-xray.bash)
- Display bandwidth metrics in bits/s (bps/Kbps/Mbps/Gbps)
- Document Juniper LLDP VLAN TLV limits and Apstra REST API workflow</changelog>
</package>
<package pkgid="5505998ad4868955be42bc6d98fe1fe428dff43b05fd35cc115f4aadf9eeb23a" name="switch-xray" arch="noarch">
  <version epoch="0" ver="1.0.1" rel="1.20"/>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 1.0-1" date="1772193600">- Initial package release</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 1.0.1-1" date="1772366400">- Fix SNMP text value parsing and status colors</changelog>
</package>
<package pkgid="f44dcaa3c5c3c4a0abc34ceb740c1fcd553c95fcf87273014aa2aa143ba3177a" name="switch-xray" arch="src">
  <version epoch="0" ver="1.0.1" rel="1.20"/>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 1.0-1" date="1772193600">- Initial package release</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 1.0.1-1" date="1772366400">- Fix SNMP text value parsing and status colors</changelog>
</package>
<package pkgid="532180857129a1449f3fb11982bc8f48d1d5ce820d87e276eee0d4815bc05f8d" name="ttl" arch="aarch64">
  <version epoch="0" ver="0.19.1" rel="1.8"/>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.19.0-1" date="1772193600">- Initial package release</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.19.1-1" date="1777809600">- Bump actions/download-artifact from 7 to 8
- Update quinn-proto to fix RUSTSEC-2026-0037
- Fix FreeBSD CI: install ca_root_nss before fetching crates
- Bump socket2 from 0.6.2 to 0.6.3
- Bump tokio from 1.49.0 to 1.50.0
- Bump libc from 0.2.182 to 0.2.183
- Merge pull request #59 from lance0/dependabot/cargo/socket2-0.6.3
- Merge pull request #58 from lance0/dependabot/cargo/tokio-1.50.0
- Merge pull request #60 from lance0/dependabot/cargo/libc-0.2.183
- Merge pull request #55 from lance0/dependabot/github_actions/actions/download-artifact-8
- Bump actions/upload-artifact from 6 to 7
- Merge pull request #56 from lance0/dependabot/github_actions/actions/upload-artifact-7
- Update aws-lc-sys and rustls-webpki to fix security advisories
- Update rustls-webpki to fix RUSTSEC-2026-0098/0099
- Update rustls-webpki to fix RUSTSEC-2026-0104
- Fix clippy 1.95 lints: collapsible_match and unnecessary_sort_by
- Upgrade hickory-resolver to 0.26 to fix RUSTSEC-2026-0118/0119
- Restore Google DNS fallback when system resolver build fails
- Merge pull request #71 from lance0/hickory-0.26-upgrade
- Bump softprops/action-gh-release from 2 to 3
- Merge pull request #69 from lance0/dependabot/github_actions/softprops/action-gh-release-3
- Bump toml from 0.9 to 1.x
- Fix platform-specific clippy warnings
- Merge pull request #72 from SSakutaro/fix/macos-clippy-warnings
- Run clippy on macOS and FreeBSD CI jobs
- Add pre-commit hooks for fmt, clippy, and test
- Lead with cargo install for prek in CONTRIBUTING
- Gate DGRAM ICMP socket helpers off FreeBSD/NetBSD
- Merge pull request #73 from lance0/prek-setup
- Doc sweep before v0.19.1 ship
- Bump version to v0.19.1</changelog>
</package>
<package pkgid="d272ca48cde8804b579bda0937985712583b1b891f19caf878706543f190d76f" name="ttl" arch="src">
  <version epoch="0" ver="0.19.1" rel="1.8"/>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.19.0-1" date="1772193600">- Initial package release</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.19.1-1" date="1777809600">- Bump actions/download-artifact from 7 to 8
- Update quinn-proto to fix RUSTSEC-2026-0037
- Fix FreeBSD CI: install ca_root_nss before fetching crates
- Bump socket2 from 0.6.2 to 0.6.3
- Bump tokio from 1.49.0 to 1.50.0
- Bump libc from 0.2.182 to 0.2.183
- Merge pull request #59 from lance0/dependabot/cargo/socket2-0.6.3
- Merge pull request #58 from lance0/dependabot/cargo/tokio-1.50.0
- Merge pull request #60 from lance0/dependabot/cargo/libc-0.2.183
- Merge pull request #55 from lance0/dependabot/github_actions/actions/download-artifact-8
- Bump actions/upload-artifact from 6 to 7
- Merge pull request #56 from lance0/dependabot/github_actions/actions/upload-artifact-7
- Update aws-lc-sys and rustls-webpki to fix security advisories
- Update rustls-webpki to fix RUSTSEC-2026-0098/0099
- Update rustls-webpki to fix RUSTSEC-2026-0104
- Fix clippy 1.95 lints: collapsible_match and unnecessary_sort_by
- Upgrade hickory-resolver to 0.26 to fix RUSTSEC-2026-0118/0119
- Restore Google DNS fallback when system resolver build fails
- Merge pull request #71 from lance0/hickory-0.26-upgrade
- Bump softprops/action-gh-release from 2 to 3
- Merge pull request #69 from lance0/dependabot/github_actions/softprops/action-gh-release-3
- Bump toml from 0.9 to 1.x
- Fix platform-specific clippy warnings
- Merge pull request #72 from SSakutaro/fix/macos-clippy-warnings
- Run clippy on macOS and FreeBSD CI jobs
- Add pre-commit hooks for fmt, clippy, and test
- Lead with cargo install for prek in CONTRIBUTING
- Gate DGRAM ICMP socket helpers off FreeBSD/NetBSD
- Merge pull request #73 from lance0/prek-setup
- Doc sweep before v0.19.1 ship
- Bump version to v0.19.1</changelog>
</package>
<package pkgid="975fb50ac8edca73a3e0ca6c788d4c3ea857b6b3f1cfedd3175fe6c1f1c89958" name="ttl" arch="x86_64">
  <version epoch="0" ver="0.19.1" rel="1.8"/>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.19.0-1" date="1772193600">- Initial package release</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.19.1-1" date="1777809600">- Bump actions/download-artifact from 7 to 8
- Update quinn-proto to fix RUSTSEC-2026-0037
- Fix FreeBSD CI: install ca_root_nss before fetching crates
- Bump socket2 from 0.6.2 to 0.6.3
- Bump tokio from 1.49.0 to 1.50.0
- Bump libc from 0.2.182 to 0.2.183
- Merge pull request #59 from lance0/dependabot/cargo/socket2-0.6.3
- Merge pull request #58 from lance0/dependabot/cargo/tokio-1.50.0
- Merge pull request #60 from lance0/dependabot/cargo/libc-0.2.183
- Merge pull request #55 from lance0/dependabot/github_actions/actions/download-artifact-8
- Bump actions/upload-artifact from 6 to 7
- Merge pull request #56 from lance0/dependabot/github_actions/actions/upload-artifact-7
- Update aws-lc-sys and rustls-webpki to fix security advisories
- Update rustls-webpki to fix RUSTSEC-2026-0098/0099
- Update rustls-webpki to fix RUSTSEC-2026-0104
- Fix clippy 1.95 lints: collapsible_match and unnecessary_sort_by
- Upgrade hickory-resolver to 0.26 to fix RUSTSEC-2026-0118/0119
- Restore Google DNS fallback when system resolver build fails
- Merge pull request #71 from lance0/hickory-0.26-upgrade
- Bump softprops/action-gh-release from 2 to 3
- Merge pull request #69 from lance0/dependabot/github_actions/softprops/action-gh-release-3
- Bump toml from 0.9 to 1.x
- Fix platform-specific clippy warnings
- Merge pull request #72 from SSakutaro/fix/macos-clippy-warnings
- Run clippy on macOS and FreeBSD CI jobs
- Add pre-commit hooks for fmt, clippy, and test
- Lead with cargo install for prek in CONTRIBUTING
- Gate DGRAM ICMP socket helpers off FreeBSD/NetBSD
- Merge pull request #73 from lance0/prek-setup
- Doc sweep before v0.19.1 ship
- Bump version to v0.19.1</changelog>
</package>
<package pkgid="1e8e23be96179fc767c461e911be9da86467320c0b8d5b2d4efe9c0863875201" name="xfr" arch="aarch64">
  <version epoch="0" ver="0.9.20" rel="1.2"/>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.8.0-1" date="1772193600">- Initial package release</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.1-1" date="1772798400">- Add graceful shutdown send errors to roadmap polish items
- Add eget, AUR, and Terminal Trove to README
- Add pkgsrc to See Also section
- Add MPTCP support (--mptcp flag, Linux 5.6+)
- Fix review findings for MPTCP
- Update docs for MPTCP support
- Server auto-MPTCP: always try MPTCP listeners, silent fallback to TCP
- Fix MPTCP label, per-stream retransmit reporting, and teardown race
- Fix MPTCP fallback detection after error wrapping, document API break
- Add MPTCP to README headline
- Suppress expected teardown errors: peer-close near deadline, cancel
- Add ConnectionAborted to teardown classifier, suppression counters
- Fix stale docs: MPTCP usage section, comparison accuracy, resolved items
- Add MPTCP network namespace CI test
- Bump actions/download-artifact from 7 to 8
- Bump actions/upload-artifact from 6 to 7
- Fix JoinHandle panic (#24) and final TCP_INFO reporting (#26)
- Add sender-side TCP_INFO assertions to MPTCP CI test
- Clarify TCP Info labels, fix high stream count limit (#25, #26)
- Use kernel SO_MAX_PACING_RATE for TCP pacing on Linux (#30)
- Fix low-bitrate pacing and harden SO_MAX_PACING_RATE tests
- MPTCP support, kernel TCP pacing, teardown fixes (#24, #25, #26, #30)
- Merge pull request #27 from lance0/dependabot/github_actions/actions/download-artifact-8
- Merge pull request #28 from lance0/dependabot/github_actions/actions/upload-artifact-7
- Update dependencies (semver-compatible)
- Clarify kernel pacing MPTCP limitation and global bitrate behavior
- Bump version to v0.9.0
- Release v0.9.0
- Harden teardown for high stream counts, fix pacing rate width (#25, #32)
- Bump version to v0.9.1</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.2-1" date="1772884800">- Collapse v0.9.0 into v0.9.1 changelog (v0.9.0 was never released)
- Limit single-port handshake fanout, adapt server read timeout per peer (#32)
- Add acknowledgments for matttbe, update zero-copy roadmap
- Add --random flag for random payload data (#34)
- Default to random payloads, add --zeros opt-out (#34)
- Add fq_codel to namespace test qdiscs, document queue limitation (#32)
- Fix Windows build: gate pacing helper on linux (#37)
- Add Windows build fix to unreleased changelog (#37)
- Add early-exit summary and delta rtx to roadmap (#35, #36)
- Bump version to v0.9.2</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.3-1" date="1773230400">- Fix QUIC dual-stack, add server --bind, server random payloads (#38, #39, #34)
- Fix server random payload on single-port TCP reverse (#34)
- Bump version to v0.9.3</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.4-1" date="1773316800">- Add --no-mdns flag to disable mDNS service registration (#41)
- Show delta retransmits in plain text interval reports (#36)
- Fix retransmit delta baseline during omit/quiet intervals, add no_mdns config support
- Bump version to v0.9.4</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.5-1" date="1773835200">- Document full config reference and Windows config path (#43)
- Add config omit_secs and help grouping to roadmap (#43)
- Added a flake for both package and devshell.
- Use version from the toml file in nix flake
- Merge pull request #46 from deephack1982/master
- Add Nix installation instructions to README
- Add TCP --cport support for data-stream source port pinning (#44)
- Merge pull request #47 from lance0/tcp-cport-data-streams
- Bump version to v0.9.5</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.6-1" date="1773921600">- Expand roadmap with market research findings
- Add --dscp flag and omit_secs config support
- Update docs for --dscp, --cport TCP, and omit_secs config
- Show per-interval jitter in TUI stream bars and plain text output (#48)
- Fix UDP plain text: suppress rtx for UDP, aggregate jitter across streams
- Add interval output tests for TCP/UDP split, clarify --dscp help text
- Merge pull request #49 from lance0/quick-wins
- Bump version to v0.9.6</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.7-1" date="1776427200">- Update rustls-webpki 0.103.9 → 0.103.10 (RUSTSEC-2026-0049)
- Bump softprops/action-gh-release from 2 to 3
- Update rustls-webpki 0.103.10 → 0.103.12 (RUSTSEC-2026-0098, RUSTSEC-2026-0099)
- Display summary on early exit (Ctrl+C), propagate DSCP to server
- Merge pull request #52 from lance0/dependabot/github_actions/softprops/action-gh-release-3
- Fix formatting
- Fix clippy manual_checked_ops lint (Rust 1.95)
- Fix clippy collapsible_match_arms lint (Rust 1.95)
- Merge pull request #53 from lance0/early-exit-summary
- Bump version to v0.9.7</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.8-1" date="1776513600">- Remove drain-on-cancel from TCP receive path (#55)
- Update docs for #54 teardown fix and #35 early exit summary
- Add issue #56 (split bidir send/recv reporting) to roadmap
- Split send/recv reporting in bidir tests (#57)
- Bump version to v0.9.8</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.9-1" date="1776772800">- Smooth TUI jitter reading over a 10-second rolling window (#48)
- CHANGELOG entry for #48 jitter smoothing
- Show authoritative final jitter on completed screen
- Add targeted tests for jitter display state transition
- CHANGELOG: document running vs completed jitter labels
- Add max jitter and packet size to UDP summary
- Test max jitter tracking and cross-stream aggregation
- Merge pull request #58 from lance0/jitter-rolling-window
- Accept bare integers as seconds for duration arguments
- Default to kernel TCP autotuning, propagate -w to server
- Reject zero-duration rate-limit window
- Merge pull request #65 from lance0/parse-duration-bare-seconds
- Validate window size before setsockopt; refresh socket-buffer docs
- Merge pull request #66 from lance0/autotune-by-default
- Log server receive errors once (issue #54)
- Sync docs with tonight's fixes
- Address final pre-release review findings
- Documentation polish before v0.9.9
- Bump version to v0.9.9</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.10-1" date="1776945600">- Race send-loop write against cancel and deadline
- Address Copilot review: cleaner cancel handling, sleep_until, regression tests
- Merge pull request #59 from lance0/send-loop-write-race
- Force MP_FASTCLOSE on MPTCP teardown via connect(AF_UNSPEC)
- Address PR #67 review: receive-path suppression + cleanup
- Detect MPTCP via MPTCP_INFO fallback for pre-6.10 kernels
- Merge pull request #67 from lance0/mptcp-close-investigation
- Revert "Merge pull request #67 from lance0/mptcp-close-investigation"
- Merge pull request #68 from matttbe/mptcp-reset
- TUI: keep elapsed time live through data gaps; show server version
- Address adversarial review findings
- Bump rustls-webpki 0.103.12 → 0.103.13 for RUSTSEC-2026-0104
- TUI jitter line shows latest + smoothed together (#48 follow-up)
- Stop writing elapsed from on_progress
- Sanitize server-advertised version before rendering
- Merge pull request #69 from lance0/tui-live-tick
- Bump version to v0.9.10</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.11-1" date="1777636800">- TUI: live UDP loss + sparkline severity tint + jitter relabel (#70, #72)
- Address review on UDP TUI clarity (#70, #72)
- Align final UDP loss accounting with the live path (#70, #72)
- Match em-dash placeholder in comments to the rendered double-hyphen
- Merge pull request #73 from lance0/udp-tui-clarity
- Bump version to v0.9.11</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.12-1" date="1777809600">- Add TUI render fuzzing to the testing roadmap
- Add pre-commit hooks for fmt/clippy/test
- Merge pull request #74 from lance0/pre-commit-hooks
- Bump the rust-dependencies group with 15 updates
- Adapt to hmac 0.13 / rand 0.10 trait reorganizations
- Merge pull request #71 from lance0/dependabot/cargo/rust-dependencies-a6148eac20
- Apply -w to UDP SO_SNDBUF / SO_RCVBUF on both ends (#70 follow-up)
- Surface UDP setsockopt failures, fix CLI help wording
- Attempt both UDP setsockopts even if one fails (#70 follow-up)
- Doc/test polish on UDP -w propagation
- Rename set_one_buffer test to match what it actually pins
- Add fake-setter tests for the partial-failure contract
- Merge pull request #75 from lance0/udp-window-propagation
- Bump version to v0.9.12</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.14-1" date="1777896000">- Bump the rust-dependencies group with 2 updates
- Set TCP_NODELAY on the control connection (#70 follow-up)
- Merge pull request #77 from lance0/udp-live-progress-fix
- Merge pull request #76 from lance0/dependabot/cargo/rust-dependencies-d3cbfb49c5
- Add CI regression test for #70 control-channel bunching
- Merge pull request #78 from lance0/control-channel-skew-ci
- Address Copilot review on test-control-channel-skew.sh
- Merge pull request #79 from lance0/copilot-pr78-followups
- Bump version to v0.9.13
- Apply MissedTickBehavior::Skip to server interval timers
- Add UdpFeedbackPacket type with length-first framing
- Negotiate udp_feedback_v1 capability in client and server hello
- Server: emit UDP receiver feedback at 2 Hz when capability negotiated
- Client: receive UDP feedback, aggregate across streams, surface as live loss
- Add Docker repro harness for issue #70 saturation pattern
- Bump version to 0.9.14
- Surface udp_feedback_v1 freshness through non-TUI output
- File udp-feedback-v1 follow-ups into ROADMAP and KNOWN_ISSUES
- UdpProgressFilter: atomic CAS gate via fetch_update
- Gate UDP feedback to upload-only and exclude from bytes_received
- Feedback consumer: break on cancel-sender-dropped
- ROADMAP: correct HMAC-feedback follow-up wording
- Address follow-up review findings: omit baseline + ROADMAP wording
- Documentation sweep for v0.9.14 (udp_feedback_v1)
- Doc tightening: scope claims to what's actually shipped
- Merge pull request #80 from lance0/udp-feedback-v1</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.16-1" date="1781179200">- ROADMAP: link -R UDP throughput follow-up to #81
- Add zero-copy TCP sends via sendfile (-Z/--zerocopy, issue #33)
- Document --zerocopy: README, FEATURES, man page, ROADMAP, CHANGELOG
- Merge pull request #87 from lance0/zerocopy-sendfile
- Bump the rust-dependencies group across 1 directory with 10 updates
- Fix -R UDP reporting sender-side rate as throughput (#81)
- Merge pull request #88 from lance0/fix-81-reverse-udp-accounting
- Merge pull request #86 from lance0/dependabot/cargo/rust-dependencies-97a9360ef7
- Bump version to v0.9.15
- zerocopy: use raw memfd_create syscall instead of glibc wrapper
- Bump version to v0.9.16</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.18-1" date="1781265600">- CI: cross-build aarch64-gnu on PRs to catch old-glibc link failures
- Release: publish multi-arch container image to GHCR
- Enable zero-copy TCP sends by default
- Relax MPTCP 10-stream CI threshold to 17 Mbps
- Merge pull request #90 from lance0/mptcp-ci-threshold
- Merge pull request #89 from lance0/zerocopy-default-on
- Fix bidir UDP download-half inflation in split reporting
- Merge pull request #92 from lance0/fix-udp-bidir-accounting
- Add path-MTU probe mode: --probe-mtu (#64)
- Merge pull request #94 from lance0/feature-64-mtu-probe
- Decouple TUI sparkline cadence from control-channel Interval arrival
- Add changelog entry for the sparkline stall fix (#93)
- Merge pull request #95 from lance0/fix-93-sparkline-cadence
- Bump version to v0.9.17
- Roadmap: sync with v0.9.16/v0.9.17, add untracked gaps from surface audit
- Add single-port UDP data plane behind single_port_udp_v1 (#63)
- Add integration coverage for single-port UDP (#63)
- Add changelog entry for single-port UDP (#63)
- Make the single-port UDP self-test match the production topology
- Merge pull request #96 from lance0/feature-63-single-port-udp
- Add per-direction split columns to CSV interval output (#56 family)
- Add --connect-timeout, QUIC ignored-flag warnings, client hello logging
- Merge pull request #97 from lance0/quic-warnings-and-hello-logging
- Merge pull request #98 from lance0/csv-bidir-columns
- Propagate --tcp-nodelay to the server via TestStart
- Merge pull request #99 from lance0/tcp-nodelay-propagation
- Roadmap: check off the polish batch (PRs #97-#99)
- Recalibrate the control-channel skew test to target collapse, not rhythm
- Docs: catch user-facing docs up to single-port UDP and recent flags
- Bump version to v0.9.18</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.19-1" date="1781524800">- Add safe TUI restart controls
- Merge pull request #108 from lance0/feature-100-tui-restart-clean
- Bump version to v0.9.19</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.20-1" date="1782302400">- Bump docker/setup-buildx-action from 3 to 4 (#103)
- Bump docker/login-action from 3 to 4 (#104)
- Bump docker/setup-qemu-action from 3 to 4 (#105)
- Bump docker/build-push-action from 6 to 7 (#106)
- Bump docker/metadata-action from 5 to 6 (#107)
- Bump version to v0.9.20</changelog>
</package>
<package pkgid="e4649b76b4ae546eec236abdc7702aefc7b21a129fdd3dc419dd899a0e635c95" name="xfr" arch="src">
  <version epoch="0" ver="0.9.20" rel="1.2"/>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.8.0-1" date="1772193600">- Initial package release</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.1-1" date="1772798400">- Add graceful shutdown send errors to roadmap polish items
- Add eget, AUR, and Terminal Trove to README
- Add pkgsrc to See Also section
- Add MPTCP support (--mptcp flag, Linux 5.6+)
- Fix review findings for MPTCP
- Update docs for MPTCP support
- Server auto-MPTCP: always try MPTCP listeners, silent fallback to TCP
- Fix MPTCP label, per-stream retransmit reporting, and teardown race
- Fix MPTCP fallback detection after error wrapping, document API break
- Add MPTCP to README headline
- Suppress expected teardown errors: peer-close near deadline, cancel
- Add ConnectionAborted to teardown classifier, suppression counters
- Fix stale docs: MPTCP usage section, comparison accuracy, resolved items
- Add MPTCP network namespace CI test
- Bump actions/download-artifact from 7 to 8
- Bump actions/upload-artifact from 6 to 7
- Fix JoinHandle panic (#24) and final TCP_INFO reporting (#26)
- Add sender-side TCP_INFO assertions to MPTCP CI test
- Clarify TCP Info labels, fix high stream count limit (#25, #26)
- Use kernel SO_MAX_PACING_RATE for TCP pacing on Linux (#30)
- Fix low-bitrate pacing and harden SO_MAX_PACING_RATE tests
- MPTCP support, kernel TCP pacing, teardown fixes (#24, #25, #26, #30)
- Merge pull request #27 from lance0/dependabot/github_actions/actions/download-artifact-8
- Merge pull request #28 from lance0/dependabot/github_actions/actions/upload-artifact-7
- Update dependencies (semver-compatible)
- Clarify kernel pacing MPTCP limitation and global bitrate behavior
- Bump version to v0.9.0
- Release v0.9.0
- Harden teardown for high stream counts, fix pacing rate width (#25, #32)
- Bump version to v0.9.1</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.2-1" date="1772884800">- Collapse v0.9.0 into v0.9.1 changelog (v0.9.0 was never released)
- Limit single-port handshake fanout, adapt server read timeout per peer (#32)
- Add acknowledgments for matttbe, update zero-copy roadmap
- Add --random flag for random payload data (#34)
- Default to random payloads, add --zeros opt-out (#34)
- Add fq_codel to namespace test qdiscs, document queue limitation (#32)
- Fix Windows build: gate pacing helper on linux (#37)
- Add Windows build fix to unreleased changelog (#37)
- Add early-exit summary and delta rtx to roadmap (#35, #36)
- Bump version to v0.9.2</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.3-1" date="1773230400">- Fix QUIC dual-stack, add server --bind, server random payloads (#38, #39, #34)
- Fix server random payload on single-port TCP reverse (#34)
- Bump version to v0.9.3</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.4-1" date="1773316800">- Add --no-mdns flag to disable mDNS service registration (#41)
- Show delta retransmits in plain text interval reports (#36)
- Fix retransmit delta baseline during omit/quiet intervals, add no_mdns config support
- Bump version to v0.9.4</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.5-1" date="1773835200">- Document full config reference and Windows config path (#43)
- Add config omit_secs and help grouping to roadmap (#43)
- Added a flake for both package and devshell.
- Use version from the toml file in nix flake
- Merge pull request #46 from deephack1982/master
- Add Nix installation instructions to README
- Add TCP --cport support for data-stream source port pinning (#44)
- Merge pull request #47 from lance0/tcp-cport-data-streams
- Bump version to v0.9.5</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.6-1" date="1773921600">- Expand roadmap with market research findings
- Add --dscp flag and omit_secs config support
- Update docs for --dscp, --cport TCP, and omit_secs config
- Show per-interval jitter in TUI stream bars and plain text output (#48)
- Fix UDP plain text: suppress rtx for UDP, aggregate jitter across streams
- Add interval output tests for TCP/UDP split, clarify --dscp help text
- Merge pull request #49 from lance0/quick-wins
- Bump version to v0.9.6</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.7-1" date="1776427200">- Update rustls-webpki 0.103.9 → 0.103.10 (RUSTSEC-2026-0049)
- Bump softprops/action-gh-release from 2 to 3
- Update rustls-webpki 0.103.10 → 0.103.12 (RUSTSEC-2026-0098, RUSTSEC-2026-0099)
- Display summary on early exit (Ctrl+C), propagate DSCP to server
- Merge pull request #52 from lance0/dependabot/github_actions/softprops/action-gh-release-3
- Fix formatting
- Fix clippy manual_checked_ops lint (Rust 1.95)
- Fix clippy collapsible_match_arms lint (Rust 1.95)
- Merge pull request #53 from lance0/early-exit-summary
- Bump version to v0.9.7</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.8-1" date="1776513600">- Remove drain-on-cancel from TCP receive path (#55)
- Update docs for #54 teardown fix and #35 early exit summary
- Add issue #56 (split bidir send/recv reporting) to roadmap
- Split send/recv reporting in bidir tests (#57)
- Bump version to v0.9.8</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.9-1" date="1776772800">- Smooth TUI jitter reading over a 10-second rolling window (#48)
- CHANGELOG entry for #48 jitter smoothing
- Show authoritative final jitter on completed screen
- Add targeted tests for jitter display state transition
- CHANGELOG: document running vs completed jitter labels
- Add max jitter and packet size to UDP summary
- Test max jitter tracking and cross-stream aggregation
- Merge pull request #58 from lance0/jitter-rolling-window
- Accept bare integers as seconds for duration arguments
- Default to kernel TCP autotuning, propagate -w to server
- Reject zero-duration rate-limit window
- Merge pull request #65 from lance0/parse-duration-bare-seconds
- Validate window size before setsockopt; refresh socket-buffer docs
- Merge pull request #66 from lance0/autotune-by-default
- Log server receive errors once (issue #54)
- Sync docs with tonight's fixes
- Address final pre-release review findings
- Documentation polish before v0.9.9
- Bump version to v0.9.9</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.10-1" date="1776945600">- Race send-loop write against cancel and deadline
- Address Copilot review: cleaner cancel handling, sleep_until, regression tests
- Merge pull request #59 from lance0/send-loop-write-race
- Force MP_FASTCLOSE on MPTCP teardown via connect(AF_UNSPEC)
- Address PR #67 review: receive-path suppression + cleanup
- Detect MPTCP via MPTCP_INFO fallback for pre-6.10 kernels
- Merge pull request #67 from lance0/mptcp-close-investigation
- Revert "Merge pull request #67 from lance0/mptcp-close-investigation"
- Merge pull request #68 from matttbe/mptcp-reset
- TUI: keep elapsed time live through data gaps; show server version
- Address adversarial review findings
- Bump rustls-webpki 0.103.12 → 0.103.13 for RUSTSEC-2026-0104
- TUI jitter line shows latest + smoothed together (#48 follow-up)
- Stop writing elapsed from on_progress
- Sanitize server-advertised version before rendering
- Merge pull request #69 from lance0/tui-live-tick
- Bump version to v0.9.10</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.11-1" date="1777636800">- TUI: live UDP loss + sparkline severity tint + jitter relabel (#70, #72)
- Address review on UDP TUI clarity (#70, #72)
- Align final UDP loss accounting with the live path (#70, #72)
- Match em-dash placeholder in comments to the rendered double-hyphen
- Merge pull request #73 from lance0/udp-tui-clarity
- Bump version to v0.9.11</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.12-1" date="1777809600">- Add TUI render fuzzing to the testing roadmap
- Add pre-commit hooks for fmt/clippy/test
- Merge pull request #74 from lance0/pre-commit-hooks
- Bump the rust-dependencies group with 15 updates
- Adapt to hmac 0.13 / rand 0.10 trait reorganizations
- Merge pull request #71 from lance0/dependabot/cargo/rust-dependencies-a6148eac20
- Apply -w to UDP SO_SNDBUF / SO_RCVBUF on both ends (#70 follow-up)
- Surface UDP setsockopt failures, fix CLI help wording
- Attempt both UDP setsockopts even if one fails (#70 follow-up)
- Doc/test polish on UDP -w propagation
- Rename set_one_buffer test to match what it actually pins
- Add fake-setter tests for the partial-failure contract
- Merge pull request #75 from lance0/udp-window-propagation
- Bump version to v0.9.12</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.14-1" date="1777896000">- Bump the rust-dependencies group with 2 updates
- Set TCP_NODELAY on the control connection (#70 follow-up)
- Merge pull request #77 from lance0/udp-live-progress-fix
- Merge pull request #76 from lance0/dependabot/cargo/rust-dependencies-d3cbfb49c5
- Add CI regression test for #70 control-channel bunching
- Merge pull request #78 from lance0/control-channel-skew-ci
- Address Copilot review on test-control-channel-skew.sh
- Merge pull request #79 from lance0/copilot-pr78-followups
- Bump version to v0.9.13
- Apply MissedTickBehavior::Skip to server interval timers
- Add UdpFeedbackPacket type with length-first framing
- Negotiate udp_feedback_v1 capability in client and server hello
- Server: emit UDP receiver feedback at 2 Hz when capability negotiated
- Client: receive UDP feedback, aggregate across streams, surface as live loss
- Add Docker repro harness for issue #70 saturation pattern
- Bump version to 0.9.14
- Surface udp_feedback_v1 freshness through non-TUI output
- File udp-feedback-v1 follow-ups into ROADMAP and KNOWN_ISSUES
- UdpProgressFilter: atomic CAS gate via fetch_update
- Gate UDP feedback to upload-only and exclude from bytes_received
- Feedback consumer: break on cancel-sender-dropped
- ROADMAP: correct HMAC-feedback follow-up wording
- Address follow-up review findings: omit baseline + ROADMAP wording
- Documentation sweep for v0.9.14 (udp_feedback_v1)
- Doc tightening: scope claims to what's actually shipped
- Merge pull request #80 from lance0/udp-feedback-v1</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.16-1" date="1781179200">- ROADMAP: link -R UDP throughput follow-up to #81
- Add zero-copy TCP sends via sendfile (-Z/--zerocopy, issue #33)
- Document --zerocopy: README, FEATURES, man page, ROADMAP, CHANGELOG
- Merge pull request #87 from lance0/zerocopy-sendfile
- Bump the rust-dependencies group across 1 directory with 10 updates
- Fix -R UDP reporting sender-side rate as throughput (#81)
- Merge pull request #88 from lance0/fix-81-reverse-udp-accounting
- Merge pull request #86 from lance0/dependabot/cargo/rust-dependencies-97a9360ef7
- Bump version to v0.9.15
- zerocopy: use raw memfd_create syscall instead of glibc wrapper
- Bump version to v0.9.16</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.18-1" date="1781265600">- CI: cross-build aarch64-gnu on PRs to catch old-glibc link failures
- Release: publish multi-arch container image to GHCR
- Enable zero-copy TCP sends by default
- Relax MPTCP 10-stream CI threshold to 17 Mbps
- Merge pull request #90 from lance0/mptcp-ci-threshold
- Merge pull request #89 from lance0/zerocopy-default-on
- Fix bidir UDP download-half inflation in split reporting
- Merge pull request #92 from lance0/fix-udp-bidir-accounting
- Add path-MTU probe mode: --probe-mtu (#64)
- Merge pull request #94 from lance0/feature-64-mtu-probe
- Decouple TUI sparkline cadence from control-channel Interval arrival
- Add changelog entry for the sparkline stall fix (#93)
- Merge pull request #95 from lance0/fix-93-sparkline-cadence
- Bump version to v0.9.17
- Roadmap: sync with v0.9.16/v0.9.17, add untracked gaps from surface audit
- Add single-port UDP data plane behind single_port_udp_v1 (#63)
- Add integration coverage for single-port UDP (#63)
- Add changelog entry for single-port UDP (#63)
- Make the single-port UDP self-test match the production topology
- Merge pull request #96 from lance0/feature-63-single-port-udp
- Add per-direction split columns to CSV interval output (#56 family)
- Add --connect-timeout, QUIC ignored-flag warnings, client hello logging
- Merge pull request #97 from lance0/quic-warnings-and-hello-logging
- Merge pull request #98 from lance0/csv-bidir-columns
- Propagate --tcp-nodelay to the server via TestStart
- Merge pull request #99 from lance0/tcp-nodelay-propagation
- Roadmap: check off the polish batch (PRs #97-#99)
- Recalibrate the control-channel skew test to target collapse, not rhythm
- Docs: catch user-facing docs up to single-port UDP and recent flags
- Bump version to v0.9.18</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.19-1" date="1781524800">- Add safe TUI restart controls
- Merge pull request #108 from lance0/feature-100-tui-restart-clean
- Bump version to v0.9.19</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.20-1" date="1782302400">- Bump docker/setup-buildx-action from 3 to 4 (#103)
- Bump docker/login-action from 3 to 4 (#104)
- Bump docker/setup-qemu-action from 3 to 4 (#105)
- Bump docker/build-push-action from 6 to 7 (#106)
- Bump docker/metadata-action from 5 to 6 (#107)
- Bump version to v0.9.20</changelog>
</package>
<package pkgid="a4401a32f14fa018297af06f7045631d4e6067b437fec7da7c51684859ec9400" name="xfr" arch="x86_64">
  <version epoch="0" ver="0.9.20" rel="1.2"/>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.8.0-1" date="1772193600">- Initial package release</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.1-1" date="1772798400">- Add graceful shutdown send errors to roadmap polish items
- Add eget, AUR, and Terminal Trove to README
- Add pkgsrc to See Also section
- Add MPTCP support (--mptcp flag, Linux 5.6+)
- Fix review findings for MPTCP
- Update docs for MPTCP support
- Server auto-MPTCP: always try MPTCP listeners, silent fallback to TCP
- Fix MPTCP label, per-stream retransmit reporting, and teardown race
- Fix MPTCP fallback detection after error wrapping, document API break
- Add MPTCP to README headline
- Suppress expected teardown errors: peer-close near deadline, cancel
- Add ConnectionAborted to teardown classifier, suppression counters
- Fix stale docs: MPTCP usage section, comparison accuracy, resolved items
- Add MPTCP network namespace CI test
- Bump actions/download-artifact from 7 to 8
- Bump actions/upload-artifact from 6 to 7
- Fix JoinHandle panic (#24) and final TCP_INFO reporting (#26)
- Add sender-side TCP_INFO assertions to MPTCP CI test
- Clarify TCP Info labels, fix high stream count limit (#25, #26)
- Use kernel SO_MAX_PACING_RATE for TCP pacing on Linux (#30)
- Fix low-bitrate pacing and harden SO_MAX_PACING_RATE tests
- MPTCP support, kernel TCP pacing, teardown fixes (#24, #25, #26, #30)
- Merge pull request #27 from lance0/dependabot/github_actions/actions/download-artifact-8
- Merge pull request #28 from lance0/dependabot/github_actions/actions/upload-artifact-7
- Update dependencies (semver-compatible)
- Clarify kernel pacing MPTCP limitation and global bitrate behavior
- Bump version to v0.9.0
- Release v0.9.0
- Harden teardown for high stream counts, fix pacing rate width (#25, #32)
- Bump version to v0.9.1</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.2-1" date="1772884800">- Collapse v0.9.0 into v0.9.1 changelog (v0.9.0 was never released)
- Limit single-port handshake fanout, adapt server read timeout per peer (#32)
- Add acknowledgments for matttbe, update zero-copy roadmap
- Add --random flag for random payload data (#34)
- Default to random payloads, add --zeros opt-out (#34)
- Add fq_codel to namespace test qdiscs, document queue limitation (#32)
- Fix Windows build: gate pacing helper on linux (#37)
- Add Windows build fix to unreleased changelog (#37)
- Add early-exit summary and delta rtx to roadmap (#35, #36)
- Bump version to v0.9.2</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.3-1" date="1773230400">- Fix QUIC dual-stack, add server --bind, server random payloads (#38, #39, #34)
- Fix server random payload on single-port TCP reverse (#34)
- Bump version to v0.9.3</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.4-1" date="1773316800">- Add --no-mdns flag to disable mDNS service registration (#41)
- Show delta retransmits in plain text interval reports (#36)
- Fix retransmit delta baseline during omit/quiet intervals, add no_mdns config support
- Bump version to v0.9.4</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.5-1" date="1773835200">- Document full config reference and Windows config path (#43)
- Add config omit_secs and help grouping to roadmap (#43)
- Added a flake for both package and devshell.
- Use version from the toml file in nix flake
- Merge pull request #46 from deephack1982/master
- Add Nix installation instructions to README
- Add TCP --cport support for data-stream source port pinning (#44)
- Merge pull request #47 from lance0/tcp-cport-data-streams
- Bump version to v0.9.5</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.6-1" date="1773921600">- Expand roadmap with market research findings
- Add --dscp flag and omit_secs config support
- Update docs for --dscp, --cport TCP, and omit_secs config
- Show per-interval jitter in TUI stream bars and plain text output (#48)
- Fix UDP plain text: suppress rtx for UDP, aggregate jitter across streams
- Add interval output tests for TCP/UDP split, clarify --dscp help text
- Merge pull request #49 from lance0/quick-wins
- Bump version to v0.9.6</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.7-1" date="1776427200">- Update rustls-webpki 0.103.9 → 0.103.10 (RUSTSEC-2026-0049)
- Bump softprops/action-gh-release from 2 to 3
- Update rustls-webpki 0.103.10 → 0.103.12 (RUSTSEC-2026-0098, RUSTSEC-2026-0099)
- Display summary on early exit (Ctrl+C), propagate DSCP to server
- Merge pull request #52 from lance0/dependabot/github_actions/softprops/action-gh-release-3
- Fix formatting
- Fix clippy manual_checked_ops lint (Rust 1.95)
- Fix clippy collapsible_match_arms lint (Rust 1.95)
- Merge pull request #53 from lance0/early-exit-summary
- Bump version to v0.9.7</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.8-1" date="1776513600">- Remove drain-on-cancel from TCP receive path (#55)
- Update docs for #54 teardown fix and #35 early exit summary
- Add issue #56 (split bidir send/recv reporting) to roadmap
- Split send/recv reporting in bidir tests (#57)
- Bump version to v0.9.8</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.9-1" date="1776772800">- Smooth TUI jitter reading over a 10-second rolling window (#48)
- CHANGELOG entry for #48 jitter smoothing
- Show authoritative final jitter on completed screen
- Add targeted tests for jitter display state transition
- CHANGELOG: document running vs completed jitter labels
- Add max jitter and packet size to UDP summary
- Test max jitter tracking and cross-stream aggregation
- Merge pull request #58 from lance0/jitter-rolling-window
- Accept bare integers as seconds for duration arguments
- Default to kernel TCP autotuning, propagate -w to server
- Reject zero-duration rate-limit window
- Merge pull request #65 from lance0/parse-duration-bare-seconds
- Validate window size before setsockopt; refresh socket-buffer docs
- Merge pull request #66 from lance0/autotune-by-default
- Log server receive errors once (issue #54)
- Sync docs with tonight's fixes
- Address final pre-release review findings
- Documentation polish before v0.9.9
- Bump version to v0.9.9</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.10-1" date="1776945600">- Race send-loop write against cancel and deadline
- Address Copilot review: cleaner cancel handling, sleep_until, regression tests
- Merge pull request #59 from lance0/send-loop-write-race
- Force MP_FASTCLOSE on MPTCP teardown via connect(AF_UNSPEC)
- Address PR #67 review: receive-path suppression + cleanup
- Detect MPTCP via MPTCP_INFO fallback for pre-6.10 kernels
- Merge pull request #67 from lance0/mptcp-close-investigation
- Revert "Merge pull request #67 from lance0/mptcp-close-investigation"
- Merge pull request #68 from matttbe/mptcp-reset
- TUI: keep elapsed time live through data gaps; show server version
- Address adversarial review findings
- Bump rustls-webpki 0.103.12 → 0.103.13 for RUSTSEC-2026-0104
- TUI jitter line shows latest + smoothed together (#48 follow-up)
- Stop writing elapsed from on_progress
- Sanitize server-advertised version before rendering
- Merge pull request #69 from lance0/tui-live-tick
- Bump version to v0.9.10</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.11-1" date="1777636800">- TUI: live UDP loss + sparkline severity tint + jitter relabel (#70, #72)
- Address review on UDP TUI clarity (#70, #72)
- Align final UDP loss accounting with the live path (#70, #72)
- Match em-dash placeholder in comments to the rendered double-hyphen
- Merge pull request #73 from lance0/udp-tui-clarity
- Bump version to v0.9.11</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.12-1" date="1777809600">- Add TUI render fuzzing to the testing roadmap
- Add pre-commit hooks for fmt/clippy/test
- Merge pull request #74 from lance0/pre-commit-hooks
- Bump the rust-dependencies group with 15 updates
- Adapt to hmac 0.13 / rand 0.10 trait reorganizations
- Merge pull request #71 from lance0/dependabot/cargo/rust-dependencies-a6148eac20
- Apply -w to UDP SO_SNDBUF / SO_RCVBUF on both ends (#70 follow-up)
- Surface UDP setsockopt failures, fix CLI help wording
- Attempt both UDP setsockopts even if one fails (#70 follow-up)
- Doc/test polish on UDP -w propagation
- Rename set_one_buffer test to match what it actually pins
- Add fake-setter tests for the partial-failure contract
- Merge pull request #75 from lance0/udp-window-propagation
- Bump version to v0.9.12</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.14-1" date="1777896000">- Bump the rust-dependencies group with 2 updates
- Set TCP_NODELAY on the control connection (#70 follow-up)
- Merge pull request #77 from lance0/udp-live-progress-fix
- Merge pull request #76 from lance0/dependabot/cargo/rust-dependencies-d3cbfb49c5
- Add CI regression test for #70 control-channel bunching
- Merge pull request #78 from lance0/control-channel-skew-ci
- Address Copilot review on test-control-channel-skew.sh
- Merge pull request #79 from lance0/copilot-pr78-followups
- Bump version to v0.9.13
- Apply MissedTickBehavior::Skip to server interval timers
- Add UdpFeedbackPacket type with length-first framing
- Negotiate udp_feedback_v1 capability in client and server hello
- Server: emit UDP receiver feedback at 2 Hz when capability negotiated
- Client: receive UDP feedback, aggregate across streams, surface as live loss
- Add Docker repro harness for issue #70 saturation pattern
- Bump version to 0.9.14
- Surface udp_feedback_v1 freshness through non-TUI output
- File udp-feedback-v1 follow-ups into ROADMAP and KNOWN_ISSUES
- UdpProgressFilter: atomic CAS gate via fetch_update
- Gate UDP feedback to upload-only and exclude from bytes_received
- Feedback consumer: break on cancel-sender-dropped
- ROADMAP: correct HMAC-feedback follow-up wording
- Address follow-up review findings: omit baseline + ROADMAP wording
- Documentation sweep for v0.9.14 (udp_feedback_v1)
- Doc tightening: scope claims to what's actually shipped
- Merge pull request #80 from lance0/udp-feedback-v1</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.16-1" date="1781179200">- ROADMAP: link -R UDP throughput follow-up to #81
- Add zero-copy TCP sends via sendfile (-Z/--zerocopy, issue #33)
- Document --zerocopy: README, FEATURES, man page, ROADMAP, CHANGELOG
- Merge pull request #87 from lance0/zerocopy-sendfile
- Bump the rust-dependencies group across 1 directory with 10 updates
- Fix -R UDP reporting sender-side rate as throughput (#81)
- Merge pull request #88 from lance0/fix-81-reverse-udp-accounting
- Merge pull request #86 from lance0/dependabot/cargo/rust-dependencies-97a9360ef7
- Bump version to v0.9.15
- zerocopy: use raw memfd_create syscall instead of glibc wrapper
- Bump version to v0.9.16</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.18-1" date="1781265600">- CI: cross-build aarch64-gnu on PRs to catch old-glibc link failures
- Release: publish multi-arch container image to GHCR
- Enable zero-copy TCP sends by default
- Relax MPTCP 10-stream CI threshold to 17 Mbps
- Merge pull request #90 from lance0/mptcp-ci-threshold
- Merge pull request #89 from lance0/zerocopy-default-on
- Fix bidir UDP download-half inflation in split reporting
- Merge pull request #92 from lance0/fix-udp-bidir-accounting
- Add path-MTU probe mode: --probe-mtu (#64)
- Merge pull request #94 from lance0/feature-64-mtu-probe
- Decouple TUI sparkline cadence from control-channel Interval arrival
- Add changelog entry for the sparkline stall fix (#93)
- Merge pull request #95 from lance0/fix-93-sparkline-cadence
- Bump version to v0.9.17
- Roadmap: sync with v0.9.16/v0.9.17, add untracked gaps from surface audit
- Add single-port UDP data plane behind single_port_udp_v1 (#63)
- Add integration coverage for single-port UDP (#63)
- Add changelog entry for single-port UDP (#63)
- Make the single-port UDP self-test match the production topology
- Merge pull request #96 from lance0/feature-63-single-port-udp
- Add per-direction split columns to CSV interval output (#56 family)
- Add --connect-timeout, QUIC ignored-flag warnings, client hello logging
- Merge pull request #97 from lance0/quic-warnings-and-hello-logging
- Merge pull request #98 from lance0/csv-bidir-columns
- Propagate --tcp-nodelay to the server via TestStart
- Merge pull request #99 from lance0/tcp-nodelay-propagation
- Roadmap: check off the polish batch (PRs #97-#99)
- Recalibrate the control-channel skew test to target collapse, not rhythm
- Docs: catch user-facing docs up to single-port UDP and recent flags
- Bump version to v0.9.18</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.19-1" date="1781524800">- Add safe TUI restart controls
- Merge pull request #108 from lance0/feature-100-tui-restart-clean
- Bump version to v0.9.19</changelog>
  <changelog author="Ciro Iriarte &lt;ciro.iriarte+software@gmail.com&gt; - 0.9.20-1" date="1782302400">- Bump docker/setup-buildx-action from 3 to 4 (#103)
- Bump docker/login-action from 3 to 4 (#104)
- Bump docker/setup-qemu-action from 3 to 4 (#105)
- Bump docker/build-push-action from 6 to 7 (#106)
- Bump docker/metadata-action from 5 to 6 (#107)
- Bump version to v0.9.20</changelog>
</package>
</otherdata>