Files
ssh-netbox-wrapper/CHANGELOG.md
T
Sebastian UnterschützandClaude Opus 5.5 091f5cc518 fix(completion): offer unique hostnames without instance prefix
bash (and zsh without a matcher) only accept candidates that start with
the typed text, so "fsn1-bx1<Tab>" found nothing when every candidate
was qualified as "prod/…". Hostnames that exist in only one instance
are now offered bare; names present in several instances stay
qualified. Connecting to a bare name still checks every instance for
ambiguity, so the connection behavior is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 11:44:54 +01:00

6.4 KiB

Changelog

v0.0.22

  • Fix shell completion with multiple NetBox instances: typing a hostname without an instance prefix (fsn1-bx1<Tab>) found nothing in bash and zsh, because only prod/… was offered. Hostnames that are unique across all instances are now offered without the prefix; connecting to them still checks every instance for ambiguous names.
  • zsh also accepts instance-qualified matches for the typed hostname, so names that exist in several instances are offered as prod/… and stg/….

v0.0.21

  • Ship a zsh completion script built for large caches: 5000 hosts complete in under 0.1 s instead of hanging for seconds with Cobra's generated script.
  • Add completion.max_results to limit the number of hostnames offered per completion.
  • Register zsh completion in the managed .zshrc block (fpath and compdef), also when compinit already ran, e.g. with oh-my-zsh. The installer reports which completions it set up.
  • Add netssh uninstall [--keep-config] [--dry-run] [--yes] to remove the binary, profile entries of all versions, completions, cache, and config (with a private backup).
  • Write marked # >>> netssh >>> blocks from netssh hook install and the wizard, replacing unmarked entries of older versions instead of appending.
  • Add jump host support: ssh.proxy_jump globally, per NetBox instance, and per rule, plus --jump HOST and --no-jump.
  • Add ssh.host_key_checking (strict, accept-new, off) for netssh connections only.
  • Add ssh.target: name|hostname so ~/.ssh/config host patterns apply and known_hosts entries belong to the device, and ssh.address_family.
  • Add ssh.options and ssh.extra_args, and ssh.rules that match by tag, instance, kind, or name pattern.
  • Add netssh --version / netssh version and netssh --dry-run to print the final ssh command.

v0.0.20

  • Configure multiple named NetBox instances and search them together in parallel.
  • Add, edit, and remove instances in the interactive setup wizard while retaining legacy single-instance configuration support.
  • Display instance-qualified hostnames and support instance/hostname for SSH, completion, aliases, and notes.
  • Keep credentials, IP resolution, comments, cache entries, and local notes tied to the correct instance.
  • Preserve partial interactive search results with an outage warning; reject incomplete full refreshes and ambiguous direct connections.
  • Add cache refresh --instance NAME and isolate caches when configured endpoints change.
  • Add regression tests covering duplicate names and IDs across instances, outages, SSH routing, notes, aliases, and configuration round trips.

v0.0.19

  • Update Ultraviolet to commit a45b7c8.

v0.0.18

  • Require Go 1.27.3 and migrate Bubbles, Bubble Tea, Huh, and Lip Gloss to their v2 modules under charm.land.
  • Update TUI rendering and keyboard events for Bubble Tea v2 while preserving alternate-screen behavior.
  • Route paste events to the focused editor, size input fields explicitly, and keep host lists within the terminal height.
  • Reject ambiguous cached shortcuts and skip duplicate hostnames during cache refresh.
  • Use paginated, unambiguous host lookups for SSH connections.
  • Accept shortcut domains with or without a leading dot during cold lookups.
  • Parse combined SSH options and preserve explicit users and ports supplied through -o.
  • Merge cache changes under a file lock to preserve updates from concurrent processes.
  • Honor configured resolver strategies during refresh and remove entries that no longer resolve safely.
  • Check the host kind before reusing a cached IP for a TUI selection.

v0.0.17

  • Update Go module dependencies to the latest versions within their existing module paths, including used transitive test dependencies.
  • Remove obsolete indirect requirements and refresh module checksums with go mod tidy.

v0.0.16

  • Enable Bash, Zsh, and Fish completion for the configured command alias, such as j.
  • Update or remove generated alias completion files when the command alias changes.

v0.0.15

  • Use https://git.zb-server.de for release download links and API requests instead of the runner's internal Gitea service URL.

v0.0.14

  • Enable Renovate updates for indirect Go modules as well as direct dependencies and CI actions.
  • Enable Go version updates and keep Go module metadata tidy after dependency updates.
  • Correct direct and indirect dependency declarations in go.mod.
  • Include install.sh as a downloadable release asset.
  • Include the installer in checksums.txt alongside the platform binaries.
  • Link the installation command in release notes directly to the release's installer asset.
  • Generate a change list from commits since the previous version tag for every release.

v0.0.13

  • Translate the remaining German setup message and test example into English.
  • Correct the connection editor comment to reference Ctrl+E.

v0.0.12

  • Support updating an existing installation by running the installer again.
  • Remove the installer's Python dependency.
  • Require valid SHA-256 checksums before replacing the binary.
  • Check required programs before downloading and list missing dependencies.
  • Check for sudo before downloading when the installation directory requires elevated permissions.
  • Consolidate legacy shell hooks and aliases in Bash, Zsh, and Fish profiles.
  • Back up changed profiles and preserve symlinks and file permissions.
  • Regenerate aliases and completions during installation and updates.
  • Add a configurable command alias, such as j, to the setup wizard.
  • Refresh or remove the generated command alias when its configuration changes.

v0.0.11

  • Add multiline local server notes and optional NetBox comments in the TUI.
  • Add CLI commands to show, replace, and append server notes.
  • Keep local notes separate from the host cache, with private permissions and atomic writes.
  • Use NetBox ETags for comment conflict protection when supported by the server.
  • Correct authentication for NetBox v2 tokens.
  • Fix environment variable overrides for configuration keys.
  • Preserve usage history when refreshing cached hosts.
  • Discard stale TUI search results and use Ctrl+E for connection editing.
  • Validate port overrides and preserve an explicit port 22.
  • Resolve stale and live TUI selections through the configured resolver chain.
  • Reject incomplete full cache refreshes and avoid marking filtered refreshes as full refreshes.
  • Stop interpreting remote command flags as SSH options when applying defaults.