Releases: Advnirr/hanuchi
Releases · Advnirr/hanuchi
v2.0.0
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
🏗️ Build System
Hanuchi now uses the Meson build system with a standard GNOME project layout.
meson.buildinstalls the app, desktop file, icon, license and a new AppStreammetainfo.xml;gnome.post_install()refreshes the icon cache and desktop database.- Restructured into
src/anddata/. install.sh/uninstall.shreplaced bymeson/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 installArch 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
✨ New Features
- Automatic registration: On first launch, Hanuchi now auto-starts the
logmein-hamachidaemon and registers your node viahamachi 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/systemctlare resolved withshutil.whichinstead of partial paths (B607).subprocesscalls are documented with scoped# nosec(B404/B603) — they only ever use fixed argument lists, nevershell=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+) withLANG/LC_*detection, and replaced silentexcept: passblocks with logged, specific handling.
🤖 Generated with Claude Code
v1.1.0 - Stable Release
Merge branch 'main' of https://github.com/Inklare/hanuchi
v1.0.0 - Initial Release
Add files via upload