streamdeck-ctl reports device/daemon/key status as JSON and edits the
config (brightness, key set/clear/press, daemon control) so front-ends
don't have to reimplement YAML handling or device probing.
- internal/config/edit.go: comment-preserving, node-level YAML edits with
atomic writes; key indices written as !!int so config.Load accepts them.
- internal/device: add model names, Lookup() and Present() for probing
without opening the HID handle.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BjuZBBfzXqZgxRhxzJvkkC
- Treat "timeout" and "interrupted system call" from ReadWithTimeout as
non-fatal — hidraw on Linux returns errors instead of (0, nil) for
both, causing false device-dead detection and reconnect loops
- Resolve icons_dir relative to the config file when the path is not
absolute, so the service finds icons regardless of working directory
- Installer now copies bundled icons to the config dir on first install