update / remove extensions from extension browser - #11506
Open
Joey Wunderlich (jwunderl) wants to merge 4 commits into
Open
update / remove extensions from extension browser#11506Joey Wunderlich (jwunderl) wants to merge 4 commits into
Joey Wunderlich (jwunderl) wants to merge 4 commits into
Conversation
Joey Wunderlich (jwunderl)
requested review from
a team
and
a lite review from Copilot
August 5, 2026 17:12
Contributor
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.
Suppressed comments (3)
webapp/src/extensionsBrowser.tsx:424
- The usage guard only checks the currently loaded Blockly workspace plus
Package.isPackageInUse(dependency.name), which defaults tomain.ts(pxtlib/package.ts:366). References in other project files (for examplecustom.ts, test files, or a secondary blocks file) are therefore missed, so Remove can be enabled and then leave the project uncompilable. Check every configured source/blocks file, or query compiler references for the dependency before enabling removal.
if (hasExtensionBlocks || pkg.mainPkg.isPackageInUse(dependency.name)) {
webapp/src/extensionsBrowser.tsx:441
- The absence of
latestVersiondoes not necessarily mean “up to date”: this helper also returnsundefinedfor non-GitHub dependencies, unparsable tags, and caught network failures. Those cases are currently presented to users as a successful freshness check. Return a distinct lookup status (or propagate failures) and reserve “Up to date” for a successful GitHub version comparison.
const updateLabel = latestVersion ? lf("Update extension") : lf("Up to date");
const updateUnavailableReason = restrictionReason || !latestVersion && lf("This extension is up to date.");
react-common/components/controls/Tree.tsx:212
selectedIdis the tree's roving-focus state: arrow-key navigation updates it without activating an item. Exposing it asaria-selectedtherefore tells assistive technology that the focused timeline row is the restored/previewed version even though the preview remains on the previous row (and initially marks the day group rather than “Now”). Bindaria-selectedto an explicit semantic-selection prop from TimeMachine instead of the focus state.
aria-selected={isSelected}
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.
build here https://arcade.makecode.com/app/cfbe43cf1162ea2c3341e884ef7d377e8f18bf2e-03832de737#pub:_TkXARXiMpHKU
add dialog for updating or removing dependency when you click it in extension browser, and add events surrounding extension changes to timeline
one other unrelated think i did include while I was poking around:

felt like obvious place to include a 'open shared page that was made' button; can cut that if we don't like it or prefer it to come in separately