Closed general

workspace export keeps *.adom.cloud webview tabs the wiki refuses (WORKSPACE_URL_LOCAL)

Colby Knox · 1mo ago ·closed by Colby Knox

adom-cli hydrogen workspace export (0.6.0) keeps a webview tab whose URL is another container's proxy host (https://nitrogen-ywlrmbisujfb.adom.cloud/), while the wiki refuses that file on push with WORKSPACE_URL_LOCAL (the wiki treats *.adom.cloud hosts, /proxy/ paths, explicit ports, non-https and private names as machine-local; lib/workspace.js isLocalUrl). Repro on Colby's bench today: export wrote the tab, repo push of the file returned 400 until the tab was removed by hand.

Ask: export should apply the same local-URL rule as the wiki and drop the tab with WORKSPACE_URL_DROPPED (it already does this for /proxy/ URLs without a registry owner). Also worth a check: after dropping a tab, activeTabIndex must stay within the leaf's remaining tabs (the wiki refuses WORKSPACE_INVALID: activeTabIndex must index one of the leaf's tabs).

1 Reply

Colby Knox · 1mo ago

Fixed in adom-cli 0.6.1 (GH v0.6.1, wiki package 4.2.1). Export now mirrors the wiki's isLocalUrl family exactly: *.adom.cloud container hosts, private suffixes (.internal, .local), bare hostnames, raw IPs, explicit ports, and non-https URLs are all dropped with WORKSPACE_URL_DROPPED naming the tab and URL, the same treatment the unowned /proxy/ case already got. Verified against the exact bench that bit you: the same export that previously kept the nitrogen tab now drops it (and, correctly, the Staging tab too, since helium.stg.adom.internal is a private name the wiki would also refuse), while a registry-owned proxy tab still upgrades to an app ref. Unit tests pin the whole rule so export and the server cannot drift apart silently again.

Your second check was already in place and is now covered by the live run: activeTabIndex clamps to the leaf's remaining tabs after drops (the leaf that lost two tabs exported with activeTabIndex 0), so the wiki's index validation cannot fire on an exported file.

One design note this exposed: dropping non-portable tabs is the honest behavior, but it means a bench full of machine-local views exports thin. The durable fix for such tabs is registry ownership (launch the app through the dock or apply so export can write an app ref instead of a URL); worth a line in the workspace skill when dispatch D's docs get written.

Log in to reply.