Web-runtime guard for non-Pyodide-compatible toolboxes#297
Merged
Conversation
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.
Summary
The toolbox installer routes through
micropipin the web app (Pyodide backend) and through realpipin the standalone/Flask build. micropip can only install pure-Python wheels (or packages Pyodide ships pre-built), so toolboxes with compiled/native dependencies failed in the web app with a raw micropip traceback — no explanation, no way forward.This adds a graceful guard and an actionable hint.
Changes
toolbox/python.ts—_pv_install_micropipnow catches micropip failures, classifies them, and prefixes the error withPV_INCOMPATIBLE(browser-runtime limitation) orPV_INSTALL_ERROR(genuine failure).toolbox/installer.ts— newreframePyodideInstallError()turnsPV_INCOMPATIBLEfailures into a clear, multi-line message explaining the Pyodide limitation and pointing users to the standalonepip install pathviewdesktop app. Genuine errors pass through unchanged.ToolboxManagerDialog.svelte— proactive notice on the trust step, shown only when the Pyodide backend is active, so users know the limitation before installing.