Fix plugin recovery for internal loader failures - #98
Draft
wisdomqin wants to merge 11 commits into
Draft
Conversation
… scoped package cascade cleanup
…t modifying plugin profiles
…_modules, scope packages and cordis patches
…ck recovery and slot conflict detection
…ting DOM plugin boot failure
…le recovery actions
…t and scope conflicts to prevent wholesale package removal
…ork to avoid fallback
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.
What changed
cordis:includeas uninstallable plugin names.Root cause
Some Harness composition failures are reported against an internal loader service, for example
cordis:include, rather than the npm package that introduced the duplicate loader entry. The recovery UI previously treated that internal identifier as a package name, so it displayed the wrong target and attempted a removal that could never succeed.User impact
For cases such as the
dsh-tuiduplicatestorageentry, Desktop now resolves the failure to the configured profile package (for example@deepseek-harness-tui/dsh-tui) before showing the removal action. If the package cannot be verified reliably, the UI does not offer a misleading uninstall target.Validation
npm test— 24 test files, 139 tests passednpm run typecheckgit diff --check origin/main...HEADKnown follow-up
This PR covers startup failures reported by the Harness process. A separate client-side slot conflict can still appear after the backend reaches the ready state, such as the directory-picker conflict exposed by
dsh-full-remote. That second-stage recovery path is intentionally not included here and should be reviewed as a follow-up.