positron
positron copied to clipboard
App Launcher: handle python app terminal links in `positron-run-app` extension
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.
- Run a supported App Launcher Python app in the Terminal via the play button
- Note the url that displays in the Viewer when the app is loaded
- Cmd/Ctrl+click the url of the app in the Terminal
- A quickpick should open and the url in the quickpick placeholder area should match the URL in the Viewer
- Selecting either of the options (viewer pane or browser window) should load the app successfully
e2e ubuntu test failures look to be unrelated