* fix(browser): show site favicons on remote host browser tabs
Host-run browser tabs mirrored to a paired client always showed the
globe: the host's session-tab snapshot carried no favicon. Hosts now
publish the active page's icon URL as an optional faviconUrl, capped at
2 KB and dropped when it points at the host's loopback. Headless hosts
pick it up from page-favicon-updated and publish only when it changes;
desktop hosts include it in the existing graph-sync key. Clients keep
their current icon when an older host omits the field.
* fix(browser): publish a remote tab icon on arrival, not on every swap
Read the headless favicon through the agent browser bridge so the
runtime stays free of Electron imports, publish only when a page gains
an icon so animated icons ride later publishes, and drop IPv4-mapped
loopback icon hosts.
* fix(browser): clear a remote tab icon when a cross-origin load starts
A load that fails on the new origin never commits, so clearing only on
did-navigate kept the old site's icon beside the failed URL. Also give
the runtime tests' bridge fakes the new favicon getter.
* test: give the session-tab bridge fakes the favicon getter
* refactor(main): organize runtime implementation owners
* test: retire wall-clock CLI title recovery case
* refactor: route new folder mutation to runtime store owner
* test: import folder mutation store contract from its owner
Paired clients now publish the chat actually selected on the desktop as the active tab; saved layouts, CLI-created chats, closes and restarts keep it consistent. Carries community PR #34526.
Co-authored-by: Jurassic Knights <jurassicknights@gmail.com>