v1.4.4
Icon resolution simplified to convention-only with retina derivation.
⚠️ BREAKING
app.iconsconfig block removed. Remove theicons: { appMac, trayMac, dmgMac, ... }block fromapp:in yourconfig/electron-manager.json— icons are now discovered by file convention.- macOS tray input filename is now
tray.png(wastrayTemplate.png). Renameconfig/icons/macos/trayTemplate.png→config/icons/macos/tray.png. EM owns theTemplatesuffix when writing the dist output for macOS dark-mode auto-inversion. - Ship native (@2x) size only. Delete any
<name>@2x.pngfiles. EM downscales the @1x sibling via sharp at build time.- macOS tray: 32×32 native
- macOS DMG background: 1080×760 native
Added
config/icons/global/<slot>.png— universal fallback. Used by any platform with no platform-specific override.docs/icons.md— full reference: layout, resolution chain, retina rules, macOS Template magic, common scenarios.- New deps:
sharp+gulp-responsive-modern. - New
outFilefield inSLOTS(separates input/output filenames where needed).
Changed
- Resolution waterfall:
<platform>/<slot>→global/<slot>→ (Linux only)windows/<slot>→ bundled<platform>→ (Linux only) bundledwindows/. Most specific wins. resolveAndCopy()is async now (sharp is async-only).gulp/build-configawaits it.- Linux fallback chain walks through
windows/(consumer + bundled) before giving up — preserves legacy "Linux reuses Windows assets" behavior.
Fixed
.gitignore: added/.claude/(Claude Code's/loopruntime state should never be tracked). Renamed/.em-cache/→/.cache/(stale from v1.4.1).
All 604 tests pass.