ADR-015: Fix wrong platform crate names - #3
Merged
Conversation
Eight entries in [workspace.dependencies] named crates that no repo in the fleet publishes, so none of them could ever resolve. Verified each against the target repo's origin/main and replaced it with the real library crate: llm-orchestrator -> llm-orchestrator-core llm-observatory -> llm-observatory-core llm-shield -> llm-shield-core llm-connector-hub -> connector-hub-core (repo is unprefixed) llm-governance-dashboard -> llm-governance-common llm-auto-optimizer -> llm-optimizer (crate stem != repo name) llm-registry -> llm-registry-core llm-marketplace is removed rather than renamed: marketplace is a virtual workspace whose only members are a service, a benchmark harness, and a vendored llm-infra fork, so there is no library crate to depend on. Nothing in this repo imported it -- the LLM-Dev-Ops adapters in crates/copilot-adapters talk to those services over HTTP, not via Rust APIs, so no import paths change. Implements the copilot-agent 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.
Implements the copilot-agent portion of
agentics-enforcement/plans/adr/ADR-015(step 11 of its implementation plan).What changed
Eight entries in the root
[workspace.dependencies]block declared crate names that no repo in the fleet publishes. Each was verified against the target repo'sorigin/mainand replaced with the real library crate:llm-orchestratorllm-orchestrator-corellm-orchestratoris only a[[bin]]name inside packagellm-orchestrator-cli; no package by that name existsllm-observatoryllm-observatory-corellm-shieldllm-shield-corellm-connector-hubconnector-hub-corellm-governance-dashboardllm-governance-commonllm-governance-{common,models,database,benchmarks}llm-auto-optimizerllm-optimizerllm-registryllm-registry-corellm-marketplacellm-marketplaceis deleted rather than renamed. The marketplace repo is a virtual workspace (no[package]) whose only members areservices/consumption,marketplace-benchmarks, and a vendoredcrates/llm-infrafork. There is no library crate to depend on, and inventing one is out of scope here. A comment records this so the entry is not "helpfully" restored later.No import paths changed. Nothing in this repo's Rust source imports any of these crates. The LLM-Dev-Ops integrations in
crates/copilot-adapters/src/llm_devops/are HTTP clients against service URLs (ConnectorHubClientand friends are local types pointing athttp://localhost:PORT), not consumers of these Rust APIs.The eight already-correct entries —
llm-cost-ops,llm-memory-graph,llm-sentinel,llm-data-vault,llm-policy-engine,llm-analytics-hub,llm-research-lab,llm-simulator— are untouched.Verification
Important caveat about
cargo buildcargo build --workspacesucceeds on this branch — but it also succeeded before the fix, so it does not validate anything here. These declarations live in[workspace.dependencies], and no member manifest references any of them viaworkspace = true. Cargo therefore never resolves them. Confirmed: after a successfulcargo generate-lockfile(exit 0, 541 packages locked), none of these crates appear inCargo.lock— not even the already-correct ones likellm-sentinelandllm-cost-ops:(
--lockedis not usable: this repo commits noCargo.lock.cargo build --workspace --lockedfails witherror: cannot create the lock file ... because --locked was passed.)So the whole 16-crate block is inert today, exactly as ADR-015 anticipated ("largely aspirational"). Reporting a green build as evidence would have been misleading.
Direct resolution test instead
I resolved the names directly, in a scratch crate that actually consumes them.
Every old name fails to resolve (each tested individually against the live repo at
branch = "main"):The new names resolve. Six of the seven resolve fully and transitively —
Locking 618 packages to latest compatible versions, exit 0.What is left undone
llm-governance-commonresolves as a package, but its own transitive dependency does not:This is not a defect in this PR — it is governance-dashboard's own
Cargo.toml:115, which is ADR-015 implementation step 3 and is owned by that repo. ADR-015 orders step 3 before step 11 for exactly this reason. Anadr-015/fix-package-namingbranch already exists in governance-dashboard. Once that lands,llm-governance-commonresolves from here with no further change needed on this branch.Because the block is inert (see above), this transitive failure does not block anything in this repo today.
Two follow-ups worth flagging, both out of scope:
dependency-name-resolution-check(step 16) is what would; it parses manifests directly rather than relying on cargo resolution, so it catches precisely this inert-declaration case.