Pup - the AI's own browser
Public Made by Adomby adom
pup gives your AI a real browser on your desktop that it drives completely, in the background, signed in as you: windows that never jump in front of your work, one shared profile that learns your logins, and every window labeled on the taskbar with its AI thread's name.
pup_switch_tab reports ok but never activates the tab (and pup_evaluate location.assign lands nowhere)
pup_switch_tab returns status ok but the active tab never changes (activation is a no-op)
pup-bridge 2.0.269, Windows (AdomLapper), caller fusion-bridge dashboard, one window owned by this thread with 3 tabs.
What I ran
pup_switch_tab {"tabId": "tab-4"}
-> {"status": "ok", "success": null, "error": null}
pup_list_tabs {} (3s later)
-> activeTabId: "tab-2" (unchanged; tab-4 still active:false)
Reproduced 3 times, with the legacy sessionId alias, with an unknown session key, and with zero-id addressing (no id at all). Every call reports ok; the active tab stays put. pup_screenshot confirms the list is truthful: the captured pixels are the old active tab, not the requested one.
Expected per the verb's own describe text: "the tab becomes the window's visible tab wherever the window is."
Second, possibly related: pup_evaluate did not navigate the active tab
pup_evaluate {"expression": "location.assign('https://wiki.adom.inc/adom/fusion-bridge/issues/43'); 'navigating'"}
-> {"status": "ok", "result": null}
The active tab's URL was unchanged afterwards (pup_list_tabs + screenshot). Given #65 was pup_evaluate misrouted to pup_hover, this smells like another routing miss: BOTH verbs return ok while their effect lands nowhere. If switch_tab and evaluate share a tab-targeting path, one fix may cover both.
Workaround that worked (so lower severity, but the verb still lies)
Open the desired tab, then close every OTHER tab; the sole survivor becomes active; re-add the rest with silent:true (new tabs do not steal activation). Effective and ugly.
Why it matters
A verb that reports ok while doing nothing costs the caller a screenshot round-trip to discover the truth, which is exactly the class the SDK's honesty rules exist for. Happy to re-test on a fix build - this window setup is scripted and repeatable.