Skip to content

Releases

v2.1.0 - Peer status and packages

Choose a tag to compare

@Advnirr Advnirr released this 31 Oct 09:41

Hanuchi now shows who is online, ships as .deb and .rpm, and has a new icon.

Added

  • Peer status. Every member shows whether it is online, offline or unreachable, and whether the link is direct or through a relay. The sidebar shows "N of M online" for each network.
  • Auto refresh. State is re-read every 10 seconds. The page is only rebuilt when something changed, and the scroll position is kept.
  • Separate IPv4 and IPv6. Your own address is split into two rows, each with its own copy button. The client ID is shown and copyable too.
  • .deb and .rpm packages are attached to this release, built by CI in Debian 13 and Fedora containers.
  • Keyboard shortcuts: Ctrl+R / F5 refresh, Ctrl+J join, Ctrl+N create, Ctrl+, settings, Ctrl+Q quit.
  • New icon and new screenshots in stock Adwaita.

Changed

  • Compact network page. Name, ID, capacity, status and owner fit in one header, so the member list starts right away instead of below the fold.
  • Leave and Delete ask first. Deleting a network used to happen on one click.
  • Errors are shown. Join, create, leave, delete and going online/offline now report hamachi's reason in a toast (for example "invalid password") instead of failing silently.
  • Hamachi not running now shows a proper status page with a start button, and the power button is hidden until the daemon is up.
  • Settings use Adw.PreferencesDialog with combo rows. The join/create dialog has proper entry rows: Enter confirms, Esc closes.
  • Network statuses and your own status are translated instead of showing hamachi's English strings.

Fixed

  • The network password was visible in ps and in the log. It is now passed to hamachi on stdin.
  • Copying your IP also copied the IPv6 address after it.
  • The window grew when a network was opened and stayed that size after going back home. Pages now scroll inside the fixed-size window.
  • Going home did not stick: the next refresh re-opened the last network.
  • Overlapping refreshes could apply out of order. Only the newest result is used now.

Install

  • Arch: yay -S hanuchi
  • Debian 13 / Ubuntu 24.04+: sudo apt install ./hanuchi_2.1.0_all.deb
  • Fedora: sudo dnf install ./hanuchi-2.1.0-1.*.noarch.rpm

Hamachi itself (logmein-hamachi) is not in the Debian or Fedora repos, so install it from vpn.net first.

v2.0.1 - Moderation fixes

Choose a tag to compare

@Advnirr Advnirr released this 05 Sep 20:42

Bug-fix release on top of 2.0.0.

Fixed

  • Kick/Ban sent a bogus client id. Peer lines in hamachi list are prefixed with a status marker, so the parser took * as the client id and the command silently did nothing. The id is now located by its shape (123-456-789), and the moderation buttons only appear once it parsed cleanly.
  • Ban did not ban. hamachi reject only declines pending join requests, so it was a no-op against an already joined peer. Ban now evicts the member and locks the network to manual approval; the confirmation text matches what actually happens.
  • Crash on libadwaita < 1.5. Adw.AboutDialog and Adw.AlertDialog require 1.5, which Debian 12, Ubuntu 22.04 and Fedora 39 do not ship. The app now falls back to Adw.AboutWindow / Adw.MessageDialog; the documented minimum is libadwaita 1.2.
  • Silent failures. Kick and Ban now report success or the daemon's error in a toast. hamachi exits 0 even when it refuses a command, so its output is inspected as well as the exit code.
  • Runaway refresh loop. The background-action idle handler returned a truthy value, making GLib re-run it forever after every action.

Changed

  • The version is now injected by Meson at build time instead of being hardcoded in the script.

v2.0.0

Choose a tag to compare

@Advnirr Advnirr released this 11 Jun 19:37

A big quality-of-life release that pulls everything together into a more polished app.

✨ Highlights

  • Member moderation: network owners can now Kick (hamachi evict) and Ban (hamachi reject) peers directly from a network's member list, each with a confirmation dialog.
  • Light / Dark theme: a Theme selector (System / Light / Dark) in Settings, applied instantly and remembered across launches.
  • Instant language switching: changing the language now applies immediately — no restart required.
  • About dialog: added to the menu, with links to the source repository and advnirr.org.
  • Zero-config setup: auto-starts the daemon and registers your node with Hamachi on first launch.

🏗️ Under the hood

  • Built with the Meson build system and a standard GNOME layout (AppStream metainfo, desktop file validation).
  • Network refresh runs off the UI thread, so a slow daemon can't freeze the window.
  • Fixed peer-list parsing (real nicknames/IDs), owner detection, and language persistence.

📦 Install

  • Arch: `yay -S hanuchi` (AUR) or `cd pkg/ && makepkg -si`
  • Other: `meson setup build --prefix=/usr && ninja -C build && sudo ninja -C build install`

🤖 Generated with Claude Code

v1.3.0 - Meson build system

Choose a tag to compare

@Advnirr Advnirr released this 11 Jun 19:14

🏗️ Build System

Hanuchi now uses the Meson build system with a standard GNOME project layout.

  • meson.build installs the app, desktop file, icon, license and a new AppStream metainfo.xml; gnome.post_install() refreshes the icon cache and desktop database.
  • Restructured into src/ and data/.
  • install.sh/uninstall.sh replaced by meson/ninja.
  • Desktop file and AppStream metainfo are validated via meson test.

Install (non-Arch)

meson setup build --prefix=/usr
ninja -C build
sudo ninja -C build install

Arch users: yay -S hanuchi or cd pkg/ && makepkg -si.

📝 Notes

This release contains no application behaviour changes over v1.2.0 — it is a packaging/structure migration. Flatpak was ruled out (Hamachi needs kernel-level TUN/TAP interfaces that can't run in the sandbox). Closes #1.

🤖 Generated with Claude Code

v1.2.0 - Zero-config Setup

Choose a tag to compare

@Advnirr Advnirr released this 11 Jun 18:37

✨ New Features

  • Automatic registration: On first launch, Hanuchi now auto-starts the logmein-hamachi daemon and registers your node via hamachi login — no terminal needed. Each step runs once per session, so there's no retry loop.

🔒 Security

Code now passes a bandit scan with 0 issues:

  • pkexec/systemctl are resolved with shutil.which instead of partial paths (B607).
  • subprocess calls are documented with scoped # nosec (B404/B603) — they only ever use fixed argument lists, never shell=True.
  • False-positive "password" warnings on translated UI labels suppressed (B105).

🐛 Bug Fixes

  • Peer list showed the IP instead of the name: members are now parsed as <member id> <nickname> <ip>, so real nicknames and member IDs are displayed.
  • Owned vs joined networks: ownership is now detected via "This computer" instead of the bare word "owner", so joined networks are no longer mislabelled as Hosted (correct Leave/Delete action).
  • UI no longer freezes: the status/network fetch now runs on a worker thread instead of the GTK main thread, so a slow or hung daemon can't lock up the window. All subprocess calls also have timeouts.
  • Language setting: switching away and back to the original language in one session now persists correctly (previously it silently kept the intermediate language).
  • Open network view persisted across refreshes: a refresh (e.g. after a power toggle) no longer kicks you back to the dashboard.
  • Untranslated "Password" label in the join/create dialog is now localized.
  • Fixed an import-time crash on the config error path, replaced deprecated locale.getdefaultlocale() (removed in Python 3.12+) with LANG/LC_* detection, and replaced silent except: pass blocks with logged, specific handling.

🤖 Generated with Claude Code

v1.1.0 - Stable Release

Choose a tag to compare

@Advnirr Advnirr released this 30 Dec 15:53
Merge branch 'main' of https://github.com/Inklare/hanuchi

v1.0.0 - Initial Release

Choose a tag to compare

@Advnirr Advnirr released this 30 Dec 11:40
cf8b016
Add files via upload