Skip to content

Spud

v1.0.1 Feature

This release adds 3 notable features for engineering teams evaluating rollout.

Published 16d Home Automation
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Summary

AI summary

Broad release touches Input Injection, Discovery & Connection, Input Capture, and Installer.

Full changelog

Spud v1.0.1

Overview

Bug-fix release for all supported platforms. Resolves rendering issues on Linux and Windows, fixes macOS mouse injection reliability, improves Windows hotkey handling, and corrects discovery/connection edge cases when servers advertise hostname-only endpoints.


Cross-Platform

Renderer

  • Switched Iced backend from tiny-skia to wgpu to eliminate progressive darkening of cards and dialogs caused by alpha-compositing bugs in the software renderer.

Discovery & Connection

  • Fixed sync_selection_from_input so that a discovered server remains visually selected when its address is hostname-based (e.g. mydesktop.local) rather than a raw IP.
  • When falling back to DNS resolution for a hostname, non-loopback addresses are now preferred. This avoids "connection refused" errors caused by connecting to 127.0.1.1 when /etc/hosts maps the system hostname to loopback.
  • Added discovery logging when mDNS returns addresses but they are all filtered out (loopback, multicast, link-local, or unspecified), making it easier to diagnose stale or incomplete mDNS records.

Linux

Window Integration

  • Set application_id (WM_CLASS on X11, app_id on Wayland) to spud so the window title appears correctly in alt-tab switchers and window manager task lists.

macOS

Input Injection

  • Restored IOKit HID (IOHIDPostEvent) as the primary mouse injection path, replacing Core Graphics event posting.
    • Relative mouse motion now populates both the point parameter and the NXEventDataMouseMove union for compatibility across macOS versions.
    • Games and applications that read raw HID input now correctly see injected movement.
  • Restored the fullscreen hotkey fallback so that when the Core Graphics EventTap fails or accessibility permissions are revoked, the client can still toggle capture via Iced keyboard events.

Windows

Input Capture

  • Added #![windows_subsystem = "windows"] to prevent a console window from appearing alongside the GUI.
  • Fixed hotkey capture in window mode by adding a RegisterHotKey-based fallback on a dedicated message-only window. This works around interference between WH_KEYBOARD_LL hooks and Iced's event::listen_raw when the GUI subsystem suppresses the console.

Installer

  • Switched Windows MSI creation from cargo-bundle's experimental wxsmsi backend to cargo-wix, which uses the WiX Toolset v3 directly.
  • The MSI now displays a properly formatted GPLv3 EULA via wix/gpl-3.0.rtf (set via [package.metadata.wix]). cargo-wix uses the pre-formatted RTF as-is instead of re-encoding plain text, so the license dialog renders correctly.

Packaging

  • Normalised artifact naming across all CI platforms for consistent release downloads.

Known Issues & Limitations

  • The Wayland capture backend still requires compositor support for pointer-constraints and relative-pointer protocols; minimal compositors may not support these.
  • macOS input capture requires manual permission grants in System Settings before the app can capture input. Rebuilding or re-signing the binary may revoke previously granted Accessibility permissions.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Spud

Get notified when new releases ship.

Sign up free

Related context

Beta — feedback welcome: [email protected]