fix(hud): init + getExtKey shape + widget initialize() calls
Cluster 1 of 25-test failure analysis — HUD widgets.
Three classes of bug, all the same underlying pattern (missing
api.initialize() before capability-gated api.* calls):
1. app/hud/hud.js — reads sheet config from the 'hud' namespace via
api.settings.getExtKey but never called api.initialize(). The
getExtKey cap check reads grantedCapabilities which stays empty
until initialize() resolves, so it throws 'requires readForeign'
and init halts before renderWidgets() → zero webviews rendered.
2. app/hud/widgets/{mode,izui,stats,window}.js — four widget tile
entrypoints, same missing initialize() call. Symptoms: subscribes
silently no-op, api.context.get / api.izui.getState throw, widget
never populates with live data.
3. backend/electron/tile-preload.cts getExtKey wrapper — expected
{ value, error } envelope but the tile:settings:get-foreign
handler returns { success, data, error }. Shape mismatch meant
result.data was always undefined for successful reads. Normalised
the wrapper to accept both shapes.
HUD test results: 3/10 → 7/10 passing. Remaining 3 failures
(mode widget doesn't react to context.setMode) appear to be a
separate api.context.watchMode path bug, not an init issue.