positron icon indicating copy to clipboard operation
positron copied to clipboard

App Launcher: handle python app terminal links in `positron-run-app` extension

Open sharon-wang opened this issue 7 months ago • 1 comments

Summary

  • addresses #5431

Implementation

  • we now register a TerminalLinkProvider in the positron-run-app extension which handles the python app urls in the Terminal, instead of going through the usual uri opener flow (which does not have access to the proxied app urls)
  • api.ts: we now keep track of the app servers and corresponding terminals so that we can handle the terminal links and resolve them to the correct proxied app url
  • reorganized constants, types, api-utils into separate files to reduce the size of the main app launcher api.ts file
  • we don't proxy web apps through the positron-proxy when running on Desktop anymore -- this seemed unnecessary 🤷

Demo

https://github.com/user-attachments/assets/7350d6f4-2b9c-442a-b422-8eab797fccc8

Release Notes

Bug Fixes

  • App Launcher: app urls from Terminal links are now resolved correctly (#5431)

QA Notes

@:web @:apps @:win

This was most obviously broken for Dash apps on Web, however all supported App Launcher app types should work.

  1. Run a supported App Launcher Python app in the Terminal via the play button
  2. Note the url that displays in the Viewer when the app is loaded
  3. Cmd/Ctrl+click the url of the app in the Terminal
  4. A quickpick should open and the url in the quickpick placeholder area should match the URL in the Viewer
  5. Selecting either of the options (viewer pane or browser window) should load the app successfully

sharon-wang avatar May 27 '25 16:05 sharon-wang

E2E Tests 🚀 This PR will run tests tagged with: @:critical @:web @:apps @:win

readme  valid tags

github-actions[bot] avatar May 27 '25 16:05 github-actions[bot]

e2e ubuntu test failures look to be unrelated

image

sharon-wang avatar May 28 '25 17:05 sharon-wang