Adom Bridge
Public Made by Adomby adom
Adom Bridge unleashes your AI onto your full PC: full power, full safety. The AI breaks out of the container it runs in and onto your real machine, managing and running your entire laptop as you: launch apps, move files, drive any window, control KiCad, Fusion 360 or your real signed-in browser. Works with any AI, cloud or local (Claude Desktop, Claude Code, Codex), no Hydrogen required. Bridge and its bridges are an operating system for AI, with managed Node and Python runtimes, and a human-onl
Jump list needs TWO right-clicks: registry-only AUMID (shortcut:false) makes the shell resolve the custom list lazily on the first click
Symptom (John, long-standing)
Right-click any pup taskbar button: the jump list appears, then immediately disappears, and you have to right-click a SECOND time for it to stay. 100% consistent, every button.
Root cause
pup registers its AUMIDs registry-only — desktop_register_app_identity {shortcut: false} for both the base Adom.Pup AUMID and every per-thread/per-window AUMID (pup verbs/identity.rs, a deliberate no-Start-Menu-clutter choice, pup v2.0.118). The custom jump list is then attached to that shortcut-less AUMID via desktop_set_window_jumplist -> set_jumplist (ICustomDestinationList BeginList/AddUserTasks/CommitList), which is correct.
But window_identity.rs::register_app itself documents the problem, at the if !create_shortcut branch: the Start Menu shortcut is "the artifact Windows actually reads". Without a shortcut (or another AUMID anchor), the shell resolves a custom destination list lazily on the first right-click — it paints, then re-resolves and dismisses, and only the SECOND right-click uses the now-cached list. That is exactly the two-click flash, and it is consistent because it is structural, not a race.
This is ab-core Win32, not pup: pup only hands ab the tasks. pup's Rust rewrite does not touch it (ab was already Rust). So the fix belongs here.
Fix options (both keep pup shortcut-less / no visible clutter)
- Seed the app-id association without a shortcut: call
SHAddToRecentDocs(SHARD_APPIDINFO, &SHARDAPPIDINFO{ pszAppID })for the AUMID right afterregister_app(or insideset_jumplistafter CommitList). This registers the app-id with the shell so the custom list resolves on the FIRST right-click, no.lnk. - A HIDDEN Start Menu shortcut as the anchor: create the
.lnkregister_app already knows how to write, but withFILE_ATTRIBUTE_HIDDEN(and/or in a subfolder) so it never shows in the Start Menu app list. This is the most reliably-documented anchor; the hidden attribute keeps it out of sight.
Recommend prototyping (1) first (smallest, no filesystem artifact); fall back to (2) if the flash persists. Easy to verify on arav-rog: register a pup AUMID with the seeding, open a window, right-click its taskbar button ONCE and confirm the jump list stays.
Exact locations
- pup:
rust/verbs/src/identity.rs— everydesktop_register_app_identitypasses"shortcut": false. - ab-core:
src-tauri/src/window_identity.rs::register_app(theif !create_shortcutbranch, ~line 46) andset_jumplist(afterCommitList).