fix: handle core-service dependencies and broken extension directories#738
Merged
Lightheartdevs merged 2 commits intoLight-Heart-Labs:mainfrom Apr 3, 2026
Conversation
Extensions depending on core services (llama-server, open-webui, etc.) were incorrectly blocked because the dependency check only looked for compose.yaml files on the filesystem. Core services have their compose definitions in docker-compose.base.yml, not individual files. Additionally, extensions with corrupted directories (no compose.yaml or compose.yaml.disabled) were stuck in limbo — showing as "not_installed" but returning 409 on install attempts. Now detects and cleans up broken directories before reinstalling. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds test_install_cleans_broken_directory to verify that install succeeds when destination has a broken (composeless) directory. Adds test_enable_allows_core_service_dependency to verify that enable succeeds when depends_on includes a core service. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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
Fix enable_extension() incorrectly blocking extensions that depend on core services, and fix unrecoverable limbo state for broken extension directories.
Why
Core services (llama-server, open-webui, etc.) have their compose definitions in docker-compose.base.yml, not individual compose.yaml files. The filesystem-based dependency check was falsely reporting them as missing. Separately, extensions with corrupted directories (no compose file) were stuck — showing "Install" but returning 409.
How
CORE_SERVICE_IDScheck before filesystem-based dependency lookup inenable_extension()install_extension(), detect broken directories (no compose.yaml or compose.yaml.disabled) and clean them up before reinstallingTesting
test_install_cleans_broken_directoryandtest_enable_allows_core_service_dependencyReview
Critique Guardian: APPROVED
Platform Impact
🤖 Generated with Claude Code