Skip to content

chore: release 2.1.0 - #70

Merged
Mapika merged 1 commit into
mainfrom
release/2.1.0
Aug 1, 2026
Merged

Mapika merged 1 commit into
mainfrom
release/2.1.0

Conversation

@Mapika

@Mapika Mapika commented Aug 1, 2026

Copy link
Copy Markdown
Owner

Version bump across the four places the release workflow cross-checks against the tag: Cargo.toml, flake.nix, server.json, and Cargo.lock. All read 2.1.0, and the built binary reports portview 2.1.0.

Why 2.1.0 and not 3.0.0

Nothing intentionally breaks a documented contract. New features are additive, and the behaviour changes are corrections of output that was wrong — the most serious being that portview could report a port as free while something was listening on it.

That said, three outputs genuinely differ from 2.0.x, and the changelog now says so up front rather than burying it in the Fixed section, because a pinned script will notice:

  • unresolvable-owner ports are listed with - instead of omitted — a scan can return rows it did not before
  • --all emits one row per connection, so sixty TIME_WAIT sockets are sixty rows
  • portview ssh <host> --json emits JSON, having previously printed a table or failed outright

Also here

The README's MCP tool table was stale — no diff_ports, no mention of dry_run or child processes. That table is the shop window for the registry listing, so it is worth being current.

What's in the release

21 commits since 2.0.2.

Agentless SSH now covers every command. doctor, an lsof fallback for macOS and BSD remotes, and watch — the last over a single connection, with the interactive kill working without portview on the far end.

MCP depth. diff_ports, descendant processes in inspect_port, and dry_run on kill_port.

Fixes, in rough order of severity: ports with unresolvable owners were hidden entirely; a far-future FILETIME panicked the scan on Windows; portview ssh --json never worked; --all collapsed connections and so contradicted doctor.

CI now runs the test suite on Windows and macOS. It only ever ran on Linux, so every #[cfg(windows)] and #[cfg(macos)] test had been compiled and never executed. That is how the FILETIME panic survived behind a test named ..._far_future_no_panic.

Plus a first outside contribution from @Guflly (#60), who also spotted the FILETIME bug.

Before tagging

I have not tagged. crates.io versions are immutable — that is what cost us 2.0.1 and 2.0.2 — so the tag is yours to push once this looks right:

git tag v2.1.0 && git push origin v2.1.0
git tag -f v2 && git push -f origin v2    # the moving major tag users pin

196 tests, fmt/clippy clean, macOS + Windows type-check.

@Mapika
Mapika merged commit 5a426fe into main Aug 1, 2026
6 checks passed
@Mapika
Mapika deleted the release/2.1.0 branch August 1, 2026 07:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant