Skip to content

ADR-015: Fix llm-config-manager dependency name - #2

Merged
nicholas-ruest merged 1 commit into
mainfrom
adr-015/fix-package-naming
Jul 27, 2026
Merged

ADR-015: Fix llm-config-manager dependency name#2
nicholas-ruest merged 1 commit into
mainfrom
adr-015/fix-package-naming

Conversation

@nicholas-ruest

Copy link
Copy Markdown
Member

What changed

One line in Cargo.toml [workspace.dependencies]:

-llm-config-manager = { git = "https://github.com/LLM-Dev-Ops/config-manager", branch = "main" }
+llm-config-core    = { git = "https://github.com/LLM-Dev-Ops/config-manager", branch = "main" }

Why

llm-config-manager is a crate name that the config-manager repo has never published. config-manager is the repository name; its crates are llm-config-core plus llm-config-{api,cli,cache,storage,crypto,security,rbac,audit,metrics,templates,devtools}. There is no llm-config-manager and no *-client crate under any name.

Verified against the git source this dependency actually points at:

$ git show origin/main:crates/llm-config-core/Cargo.toml | head -2
[package]
name = "llm-config-core"

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 at shield/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:

# new name
$ cargo metadata --format-version 1
    Updating git repository `https://github.com/LLM-Dev-Ops/config-manager`
     Locking 147 packages to latest compatible versions
resolve_exit=0

# old name
$ cargo metadata --format-version 1
    Updating git repository `https://github.com/LLM-Dev-Ops/config-manager`
error: no matching package named `llm-config-manager` found
location searched: Git repository https://github.com/LLM-Dev-Ops/config-manager?branch=main
resolve_exit=101

Workspace manifest is valid. cargo metadata --no-deps exits 0 (only the two pre-existing profiles for the non root package will be ignored warnings for llm-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 .rs and .toml finds line 32 as the only occurrence — there is no llm-config-manager.workspace = true anywhere, and the name is absent from Cargo.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 --locked fails, on pre-existing errors unrelated to this change:

error[E0061]: this function takes 2 arguments but 1 argument was supplied
   --> crates/llm-shield-sdk/src/integrations/runtime_hooks.rs:292:40
    |
292 | ...        return Err(Error::scanner(format!("Post-scan hook failed: {}", message)));
    |                       ^^^^^^^^^^^^^^----------------------------------------------- argument #2 is missing
    |
note: associated function defined here
   --> crates/llm-shield-core/src/error.rs:87:12
    |
 87 |     pub fn scanner<S: Into<String>, M: Into<String>>(scanner: S, message: M) -> Self {

error: could not compile `llm-shield-sdk` (lib) due to 4 previous errors; 6 warnings emitted

Confirmed pre-existing rather than assumed: with this change stashed, cargo build -p llm-shield-sdk on unmodified main produces the identical 4 E0061 errors and exits 101. All four are Error::scanner(..) calls in crates/llm-shield-sdk/src/integrations/runtime_hooks.rs passing 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-deps plus 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

  • The llm-shield-sdk Error::scanner arity errors are out of scope and still broken on main. They need a separate fix; this PR does not touch them.
  • llm-policy-engine on line 31 was left alone — ADR-015 does not flag it, and it is likewise unconsumed by any member.
  • No target/ cleanup was performed: the existing target/ directory predates this work (created ~04:48 today, before this branch existed) and is gitignored, so it was left in place rather than deleted.

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
@nicholas-ruest
nicholas-ruest merged commit caa8d23 into main Jul 27, 2026
2 of 24 checks passed
@nicholas-ruest
nicholas-ruest deleted the adr-015/fix-package-naming branch July 27, 2026 20:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant