Skip to content

v0.3.3 - consistent json, utc timestamps, and real peaks

Latest

Choose a tag to compare

@programmersd21 programmersd21 released this 08 Oct 15:51

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.