feat: capability-based dependency resolution in wizard#39
Open
BimaPangestu28 wants to merge 2 commits into
Open
feat: capability-based dependency resolution in wizard#39BimaPangestu28 wants to merge 2 commits into
BimaPangestu28 wants to merge 2 commits into
Conversation
Add capability resolver that maps required_capabilities to catalog entries providing them. When user adds a provider in the wizard, auto-resolve dependencies (single provider) or prompt for choice (multiple providers). Also adds build-time and doctor dependency validation. - New capability_resolver module with full test coverage - CatalogEntry gains provided_capabilities and required_capabilities - providers.json: messaging providers declare required state-store cap - providers.json: state-memory/state-redis declare provided cap - build_workspace and doctor now validate dependency satisfaction Bump version to 0.4.29.
levindmytro1
reviewed
Apr 7, 2026
levindmytro1
left a comment
There was a problem hiding this comment.
Semver Fix Report
Context
- Crate:
greentic-bundle - Compared versions:
0.4.28->0.4.29 - Reported failing lint:
constructible_struct_adds_field
Violations Analyzed
CatalogEntry.provided_capabilitiesadded atsrc/catalog/registry.rs:25CatalogEntry.required_capabilitiesadded atsrc/catalog/registry.rs:28
Fix Applied
- Added
#[non_exhaustive]to public structCatalogEntryin src/catalog/registry.rs.
Rationale:
- This is the preferred minimal semver-safe fix for
constructible_struct_adds_field. - It preserves runtime behavior and serialization/deserialization behavior.
- It prevents downstream exhaustive struct literal construction from becoming a hard breaking change when fields are added.
Additional Notes
- No logic changes were made.
- No tests were modified.
- No version bump was applied because a non-breaking attribute fix was sufficient.
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
capability_resolvermodule that mapsrequired_capabilitiesto catalog entries that provide themproviders.jsonupdated: messaging providers declarerequired_capabilities, state packs declareprovided_capabilitiesTest plan
cargo test --lib— 37 tests pass including 6 new capability resolver testscargo checkcleangtc bundle doctoron bundle missing state pack and verify warning