Repository navigation
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