Skip to content

feat(start-os): open an action result's link in a new tab - #3878

Merged
MattDHill merged 1 commit into
masterfrom
feat/action-result-launchable
Sep 3, 2026
Merged

feat(start-os): open an action result's link in a new tab#3878
MattDHill merged 1 commit into
masterfrom
feat/action-result-launchable

Conversation

@MattDHill

@MattDHill MattDHill commented Sep 1, 2026

Copy link
Copy Markdown
Member

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::Single gains launchable. When it is set, the action-result modal puts an open-in-new-tab button beside the value, using the same @tui.external-link icon 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 an http(s) URL.

Both renderers get it: action-success-single (a bare single result) and action-success-member (a single inside a group).

Optionality

copyable, qr and masked were required. Adding launchable as 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 to false. Existing packages are unaffected: they already send all three.

Notes

  • The generated bindings here are a hand-written prediction of what make start-core-ts-bindings emits — the regen does not fit on the machine this was written on. The Generated Artifacts gate is the check; if it drifts, the run's artifact replaces them.
  • Conflicts textually with Multi-line action result values #3866, which adds a multiline variant carrying the same three flags. The conflict is textual only — launchable is for single, where the value is a URL, and does not belong on multiline.

Verified: npm run check, ng build ui (AOT, so the templates typecheck), container-runtime tsc --noEmit, make start-core-format-check.

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
MattDHill force-pushed the feat/action-result-launchable branch from 3eee463 to 6ee6879 Compare September 3, 2026 02:09
@MattDHill
MattDHill merged commit 56358a6 into master Sep 3, 2026
32 checks passed
@MattDHill
MattDHill deleted the feat/action-result-launchable branch September 3, 2026 02:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[feat]: Add "Open in new tab" button next to copy button for URLs in service action results

2 participants