HAIR v0.3.0 - Clipper + Alias + Polish
HAIR v0.3.0 introduces the Clipper tab and signal aliases.
Added
- HAIR Clipper tab: build virtual remotes by pasting Pronto hex codes, for when you have a code from a converter, a datasheet, or an ESPHome log but no live signal to sniff. Each code is validated live (carrier frequency, burst pair count, an S/L diamond preview, and specific error messages), and a pasted signal behaves exactly like a sniffed one: Test, Trigger, Assign, or Promote.
- Signal aliases: name any signal by clicking its S/L diamond pattern, in both the Sniffer and Clipper. An alias is a label on the signal, not a command name, so the same signal can still become differently-named commands on different devices.
- "+ Sniffed Signal" and "+ Clipped Signal" add-command buttons on each HAIR device card, jumping to the Sniffer or Clipper to capture or paste a command.
- The Sniffer signal rows now show each signal's captured carrier frequency.
- An empty clipped remote can be deleted directly from the Clipper tab.
Changed
- Assigning a signal now keeps it. The signal is copied into the device and left in place, so one signal can be assigned to several devices or as several commands. Only Delete, Dismiss, and Clear All remove a signal.
- Clipped remotes are never auto-evicted; anything you build in the Clipper stays until you delete it.
- The HAIR Device badge now matches the Promote badge in size and uses uppercase, and Promote uses a more vivid teal so it reads distinctly from the green.
- Each tab's cards carry their own accent: Sniffer remotes lead with the blue radio icon and a blue card stroke, Clipper remotes with the copper paperclip and a muted copper stroke. Card titles are a single line, and the remote name edits inline on hover.
Fixed
- The row hover highlight no longer escapes a card's rounded corners.
Full detail in CHANGELOG.md.