v0.3.3 is a quality and reliability release. it contains no new user-facing features, it hardens the existing ones.
fixes
- --once --json and --json-stream now emit the same documented schema: status, timestamp, interface, download_bps, upload_bps, download_human, upload_human, peak_down_bps, peak_up_bps, unit_display.
- timestamps are now always utc in rfc3339nano form, with a z suffix, instead of machine local time.
- peak_down_bps and peak_up_bps now report the highest observed rate since the process started instead of echoing the current sample.
- --format template peak fields now use the same running peak semantics.
- the duplicate unreachable help overlay key branch in the ui input path was removed.
- auto interface selection follows current rate with hysteresis instead of lifetime byte totals, truncate no longer panics on non-positive width, help rendering no longer loops forever on narrow terminals, overlays and content are clamped to the terminal size, and oversized rates saturate instead of breaking the hero layout.
- --interface with an unknown name now lists the available interfaces.
- flow --once on a non tty stdout keeps the documented single line behavior with no escape codes.
- readme prose updated: all lower caps, concise, with em-dashes removed.
changes
- ui.model state is grouped into rate state, overlay state, and interface state instead of 65 independent fields.
- sampler.sampler depends on a collector.reader interface, making counter behavior testable.
- make check is a single gate: gofmt, go vet, golangci-lint, tests, race detector, build.
tests
- cli contract tests exercise every flag, invalid input paths, and exit codes.
- sampler tests cover rate arithmetic, idle links, counter resets, uint64 wraparound, read errors, cancellation, and a stalled consumer.
- json contract tests verify valid json, field presence, types, stable names, numeric peaks, utc timestamps, and clean jsonl lines.
- golden frames, fuzz targets, overlay size assertions, and history persistence tests are all in place and passing, including under the race detector.
install
- go install github.com/programmersd21/flow/cmd/flow@v0.3.3
- or download a prebuilt archive and checksums.txt above, for linux, macos, and windows on amd64 and arm64.
full detail is in changelog.md.