← Commit history

Document header-row branding: headerIcon requires hwnd (titleContains silently no-ops) and a PNG-256 ico; headerBranded makes it code-verifiable

John Lauer ·5551691a5f ·3mo ago ·parent f5eed14
1 file changed +26
dev-skills/pup-bridge-debug/SKILL.md+26
@@ -591,3 +591,29 @@ region. log was silent. It now lives in `updateTabCountBadge`, which already runs on open AND on every tab open/close — exactly when the tooltip's content (category + tab count) changes. When adding per-window taskbar state, hook the function that runs on OPEN, not just the repair paths.++## RESOLVED (for real): branding the jump-list HEADER row — pass `headerIcon` AND `hwnd`++AD >= 1.9.153 brands the header row via a `headerIcon` param on `desktop_set_window_jumplist`.+Relying on the Relaunch trio alone (what we did through 1.9.59) never branded it. Two requirements,+both measured, neither obvious:++1. **You MUST pass `hwnd`.** With only `appId`, AD cannot locate the window to write the per-window+   Relaunch* props on, and returns `headerBranded:false` with an EMPTY `headerFields` and **no error**.+   `titleContains` ALSO fails here (`headerBranded:false`) even though it works fine on+   `desktop_set_window_identity`. Measured on the same window in one pass:+       appId only              -> headerBranded false, headerFields []+       appId + titleContains   -> headerBranded false, headerFields []+       appId + hwnd            -> headerBranded TRUE,  headerFields [appId, relaunchIcon, relaunchCommand, icon]+   Resolve the hwnd with `desktop_find_window {titleContains:"(session: <id>"}` -> `best.hwnd` first.+2. **The .ico must pass `iconCheck`** (256px entry PNG-compressed). Otherwise the shell paints the+   generic document no matter how correctly the props are set.++**This is finally verifiable in code.** The response carries `headerBranded`, `headerFields` and+`headerIconCheck`, so the header no longer needs a human to right-click and report back. Log it:+`[jumplist] "<sid>" set N task(s) ... headerBranded=true`. If it ever reads false with empty fields,+the hwnd did not resolve — do not go looking for icon problems.++Note the first attempt on a brand-new window can log `headerBranded=undefined`: the window is not yet+findable by title, so no hwnd, so no headerIcon is sent. The normal retry/refresh path re-runs and+brands it a beat later. Harmless, but do not read that first line as a failure.