I recall when we made this decision but I don't recall why.
But I now believe we should instead when something like <.link href={~p"/logout"}>Logout</.link> is used we need to actually navigate to a controller to update the cookie. Considering that LVN Core now also supports dead rendering we should just allow for that as well if for whatever reason someone decides to render SwiftUI from a controller. But the primary use case here is to permit session deletion and the expectation is they should then redirect.
This would be in conjunction with #1520 so you'd write the logout link like so:
<.link method="delete" href={~p"/logout"}>Logout</.link>
I do think we should still have a way to spawn a browser, so I believe we should extend the component to support the target attribute from the web. In this case we'd detect something like:
<.link target="_web" href="dockyard.com>DockYard</.link>
Supported values for target
_self default - similar to web, this is the same app and is really just a noop as far as what the target does
_web - this would do what the current link behavior does