feat(start-os): open an action result's link in a new tab - #3878
Merged
Conversation
Add `launchable` to a `single` action result value. When set, the UI puts an open-in-new-tab button beside the value, using the same external-link icon the service controls use for "Open UI", so a result that hands the user a URL — an authorization link, an admin panel — can be clicked straight through instead of copied and pasted. `copyable`, `qr` and `masked` become optional at the same time. Making `launchable` required would mean touching every package in the fleet, and the three flags it sits beside should read the same way. Closes #3218 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
MattDHill
force-pushed
the
feat/action-result-launchable
branch
from
September 3, 2026 02:09
3eee463 to
6ee6879
Compare
dr-bonez
approved these changes
Sep 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #3218.
An action that returns a URL could only be copied — switch tab, paste, enter. For a link that points back at the same server, that is a detour around a browser the user already has open.
What changed
ActionResultValue::Singlegainslaunchable. When it is set, the action-result modal puts an open-in-new-tab button beside the value, using the same@tui.external-linkicon the service controls use for "Open UI". It renders as an<a target="_blank" rel="noreferrer">, so Angular's URL sanitizer covers the value; the SDK docs state the value must be anhttp(s)URL.Both renderers get it:
action-success-single(a baresingleresult) andaction-success-member(asingleinside a group).Optionality
copyable,qrandmaskedwere required. Addinglaunchableas a fourth required flag would mean editing every package in the fleet, so it is optional — and the three it sits beside are now optional too, defaulting tofalse. Existing packages are unaffected: they already send all three.Notes
make start-core-ts-bindingsemits — the regen does not fit on the machine this was written on. TheGenerated Artifactsgate is the check; if it drifts, the run's artifact replaces them.multilinevariant carrying the same three flags. The conflict is textual only —launchableis forsingle, where the value is a URL, and does not belong onmultiline.Verified:
npm run check,ng build ui(AOT, so the templates typecheck), container-runtimetsc --noEmit,make start-core-format-check.