Skip to content

v0.4.0

Choose a tag to compare

@rwinkhart rwinkhart released this 17 Aug 17:45
· 97 commits to main since this release

libmutton v0.4.0
August 17, 2025

This is the largest update to libmutton yet, and as such, these patch notes are non-exhaustive.
Many minor changes and fixes to features mentioned in these patch notes have been made.
Please see the commit history for a more complete list of changes.

Breaking (for users)

  • GPG has been entirely replaced with RCW
  • Steam TOTP keys now must be in base32 format
  • (3c5db78) Release binaries of libmuttonserver now target x86_64_v2 and arm64v8.7
  • (3dd07e7) Offline mode is now manually specified in libmutton.ini

Breaking (for developers)

  • libmutton has been further modularized
    • The core package has been split into core, global, crypt, and cfg
    • The sync package has been split into syncclient, syncserver, synccommon, and synccycles
    • This decreases the size of the server binary and allows for more modular clients
  • (40f0f35) Errors are now returned, rather than printed

Features

  • (111324c) Deletions (server-side) now follow the client through device ID changes
  • (ca277ba) Added the EntryRefresh() function for re-encrypting entries with a new passphrase/optimizing bloated entries
  • (74b8261) Added the LibmuttonInit() function to ensure clients initialize libmutton as intended
  • (bed23e9) (41a12c6) Added iOS clipboard support
  • (3fdcc9e) (1a66a30) (d023058) Support one-time TOTP copy
  • (fb2120c) Support custom device ID prefixes

Fixes

  • (50ab27c) libmutton.ini is now always created with 0600 permissions on *nix platforms
  • (4a0e0f8) Old devices IDs are no longer removed from clients when registration of a new device ID fails

Dependencies

  • Dropped
    • github.com/fortis/go-steam-totp (functionality now covered by github.com/pquerna/otp)
  • Bumped (direct)
    • Go: v1.24.2 => v1.24.6
    • github.com/pquerna/otp: v1.4.1-0.20231130234153-3357de7c0481 => v1.5.0
    • golang.design/x/clipboard: v0.7.0 => v0.7.1
    • golang.org/x/crypto: v0.37.0 => v0.41.0
  • Added (direct)
    • github.com/rwinkhart/go-boilerplate v0.1.0
    • github.com/rwinkhart/rcw v0.2.2