ADR-015: Fix llm-config-manager dependency name - #2
Merged
Conversation
The workspace dependency declared `llm-config-manager`, a crate name that
config-manager has never published. The repo's crates are `llm-config-core`
plus `llm-config-{api,cli,cache,storage,crypto,...}`; `config-manager` is the
repository name, not a crate name.
Implements the shield portion of agentics-enforcement/plans/adr/ADR-015
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
One line in
Cargo.toml[workspace.dependencies]:Why
llm-config-manageris a crate name that theconfig-managerrepo has never published.config-manageris the repository name; its crates arellm-config-coreplusllm-config-{api,cli,cache,storage,crypto,security,rbac,audit,metrics,templates,devtools}. There is nollm-config-managerand no*-clientcrate under any name.Verified against the git source this dependency actually points at:
Implements step 10 of the ADR-015 implementation plan (
agentics-enforcement/plans/adr/ADR-015-platform-package-naming-and-dependency-resolution.md), which classifies this as a Kind-A (wrong name) mismatch atshield/Cargo.toml:32.Verification
Resolution proof. The corrected name resolves against the declared git source; the old one does not. Two throwaway crates, same source and branch:
Workspace manifest is valid.
cargo metadata --no-depsexits 0 (only the two pre-existingprofiles for the non root package will be ignoredwarnings forllm-shield-wasm/llm-shield-py).No import changes were needed, and this is worth stating plainly rather than burying: the declaration is a
[workspace.dependencies]entry that no member crate consumes. A repo-wide grep over every.rsand.tomlfinds line 32 as the only occurrence — there is nollm-config-manager.workspace = trueanywhere, and the name is absent fromCargo.lock. Cargo therefore never resolved this entry, which is why a name that cannot resolve has sat here without breaking the build. The fix is correct and necessary for when a member does start consuming it (and for the ADR-015 CI check), but it changes no current build behavior.Build output (real, unedited)
cargo build --workspace --lockedfails, on pre-existing errors unrelated to this change:Confirmed pre-existing rather than assumed: with this change stashed,
cargo build -p llm-shield-sdkon unmodifiedmainproduces the identical 4E0061errors and exits 101. All four areError::scanner(..)calls incrates/llm-shield-sdk/src/integrations/runtime_hooks.rspassing one argument to a two-argument function. They touch no dependency this PR modifies.This matches ADR-015's Verification item 4, which specifies
cargo metadata --no-depsplus a name-resolution pass as the acceptance criterion for steps 3-11, explicitly because "several of these repos have unrelated build failures and gating on them would stall the fix."Left undone
llm-shield-sdkError::scannerarity errors are out of scope and still broken onmain. They need a separate fix; this PR does not touch them.llm-policy-engineon line 31 was left alone — ADR-015 does not flag it, and it is likewise unconsumed by any member.target/cleanup was performed: the existingtarget/directory predates this work (created ~04:48 today, before this branch existed) and is gitignored, so it was left in place rather than deleted.