Closed general

TODO (deferred): Move pup window to a Hydrogen webview — design complete in docs/PLAN-interactive-surface.md, build when the value is there

John Lauer · 3mo ago ·closed by John Lauer

DEFERRED FEATURE, recorded so it is not forgotten (John 2026-08-10: "leave move-to-webview as a future TODO, not enough value add right now").

The design is complete in docs/PLAN-interactive-surface.md (Phase 3) and the exploration is done:

  • ah (local Hydrogen): buildable with ZERO new ab verbs. pup -> ab SDK callback -> hd_api {port:47083, POST /api/workspaces/editor/local/workspace/current/tabs} with the webview panelType + initialState.url, open-or-refresh semantics, then close the pup window. Endpoint defaults from the window's recorded caller container.
  • hc (cloud): desktop -> hydrogen.adom.inc workspace API over public HTTPS (slug -> owner/repo via carbon lookup). ONE blocker: whether ab's Adom Cloud session token is accepted for workspace mutations (else only the container-mounted api-key works). Surface the E2 409 honestly; rewrite localhost URLs to the slug proxy (SSRF guard).
  • Nice-to-have ab asks when revived: hydrogen_endpoints (union of ah + connected hc with owner/repo/liveness) and hydrogen_open_webview {endpoint,url,name}; mirror Browser Picker destination ids so hbw's move-to-surface and pup's are one concept.
  • UI when revived: "Move to my workspace" row in the toolbar popup + jump list.

Also deferred in the same plan: push-back-to-container via a new ab container_deliver verb (the annotation return path currently rides the clipboard; the ready-to-paste ab prompt is in the plan's Phase 2 section).

1 Reply

John Lauer · 3mo ago

Revived and shipped (ah leg) in pup 2.0.130, on John's "do them all".

New verb pup_move_to_workspace: resolves the window's active tab URL, hands it to Hydrogen, and closes the pup window (its owner initiated the move; keepWindow:true keeps it). Surfaced as a "Move to my workspace" row in the toolbar popup (extension 0.2.6) and a jump-list task on every window. hydrogen_unreachable is reported honestly and the window is left untouched on any failure.

One deviation from the Phase 3 design, forced by reality: the planned direct workspace-tabs endpoint (POST /api/workspaces/editor/local/workspace/current/tabs on :47083) is not exposed by today's Hydrogen (probed live: port not listening). The verb rides the REAL current API instead: ab's hd_api into Hydrogen's control API POST /open-url, which routes through the Browser Picker. That is arguably the better semantic anyway (per-domain memory, webview default, the user picks the surface), and it needed zero new ab verbs as the plan hoped. If/when Hydrogen exposes a direct open-or-refresh webview-tab endpoint, the verb can upgrade to pin the surface without the picker.

Still deferred, as the plan records: the hc (cloud) leg (blocked on the workspace-mutation auth ask) and push-back-to-container via ab container_deliver (the annotation return path stays clipboard-first).

John Lauer closed this · 3mo ago

Log in to reply.