ADR-015: Fix wrong repo URL and fabricated infra module names - #1
Merged
Conversation
The Rust workspace could not resolve at all: Cargo.toml declared seven llm-infra-* crates from https://github.com/LLM-Dev-Ops/llm-infra, a repo that does not exist (git ls-remote returns "Repository not found"). The real repo is LLM-Dev-Ops/infra, and it publishes flat, separately-named crates with no aggregator: core/logging/tracing were never crate names under any prefix. Rust (Cargo.toml): - repo URL llm-infra -> infra, pinned to rev a8bc89c (infra has no tags) - llm-infra-config -> infra-config - llm-infra-logging -> infra-otel (logging and tracing are one crate) - llm-infra-tracing -> infra-otel - llm-infra-cache -> infra-cache - llm-infra-retry -> infra-retry - llm-infra-ratelimit -> infra-rate-limit - llm-infra-core -> infra-errors (the error-utilities half; the aggregator half has no equivalent and is dropped) The per-crate feature aliases collapse into the implicit features of the optional dependencies, leaving the `infra` umbrella feature. No source file references llm_infra_*, so no call sites change. npm (frontend/package.json): - @llm-dev-ops/llm-infra-{core,config,logging} -> @llm-dev-ops/infra The real package is a single one with subpath exports, matching the form already used by governance-dashboard, observatory, and shield. Implements the analytics-hub portion of agentics-enforcement/plans/adr/ADR-015
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
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 analytics-hub portion of
agentics-enforcement/plans/adr/ADR-015(steps 6 and 12).What was wrong
Rust.
Cargo.toml:56-62declared sevenllm-infra-*crates fromhttps://github.com/LLM-Dev-Ops/llm-infra. That repo does not exist, and the crate names were fabricated on top of the wrong URL. Both verified before changing anything:This was build-blocking, not dormant. On
mainbefore this change:npm.
frontend/package.json:54-56declared@llm-dev-ops/llm-infra-{core,config,logging}. The real package is a single@llm-dev-ops/infrawith subpath exports (infra/sdk/ts/package.json).What changed
infrapublishes 19 flat, separately-named crates and has no aggregator, socore/logging/tracingare not misspellings — they are an invented facade. Mapping used:llm-infra-configinfra-configllm-infra-logginginfra-otelllm-infra-tracinginfra-otelllm-infra-cacheinfra-cachellm-infra-retryinfra-retryllm-infra-ratelimitinfra-rate-limitllm-infra-coreinfra-errorsThe source is pinned to
rev = "a8bc89c..."rather thanbranch = "main", per ADR-015 §4.infrahas zero tags, so a rev is the only pinnable ref.The six per-crate feature aliases collapse into the implicit features of the optional dependencies, leaving the
infraumbrella feature.infra-logging/infra-tracing/infra-ratelimitdisappear as feature names because they no longer correspond to distinct crates. This is safe: no source file in the repo referencesllm_infra_*, and no#[cfg(feature = "infra...")]exists, so there are zero call sites to update. These features also never built, so nothing working is being removed.npm collapses the three entries into
"@llm-dev-ops/infra": "^0.1.0"— the exact form already used by the correct consumers (governance-dashboard/frontend:44,observatory/sdk/nodejs:52,shield/package.json:7). No import rewrites were needed:grep -rn "@llm-dev-ops" frontend/src/returns nothing, so there are zero import sites.Verification — real output
The six crates resolve and compile from the real repo at the pinned rev. Built in an isolated scratch crate declaring exactly the six new dependencies:
Manifest and feature table validate:
cargo metadata --no-depsexits 0. To confirm that check is not vacuous, temporarily replacinginfra-configwith a bogus name in theinfrafeature list makes it exit 101; restoring returns it to 0.cargo build --workspacestill fails — on a different, pre-existing bug that is out of scope for this PR:Note the resolver now fetches
LLM-Dev-Ops/infrasuccessfully and gets past the infra stage — that progression is the evidence this fix works. The new blocker isCargo.toml:44, untouched by this PR (git diff main -- Cargo.tomlshows nocost-opsline). See "Left undone" below.npm installstill fails, and this fix cannot make it pass:@llm-dev-ops/infrais not published to the public npm registry. Checked each scoped dependency directly:@llm-dev-ops/infra@llm-dev-ops/observatory-sdk@llm-dev-ops/llm-registry-sdk@llm-dev-ops/llm-infra-core(old)So
npm installfailed before this change and fails after it — the difference is that it now fails on a name the fleet actually owns rather than one nobody publishes. This is expected: ADR-015's own check spec resolves@llm-dev-ops/*ranges "against the fleet package index", not public npm. By that rule the declaration is correct —infra/sdk/ts/package.jsonis@llm-dev-ops/infraat0.1.0, and^0.1.0is satisfied. Every correct consumer named in the ADR is in the same position; publishing the package is fleet-level work, not an analytics-hub change.No tests were run: the crate cannot link until the
cost-opsblocker is resolved, and the frontend cannot install its dependencies.Left undone
Cargo.toml:44—cost-opsis the same bug class and now the next blocker. It declarescost-ops = { git = ".../cost-ops", branch = "main" }, butcost-opsis only a[[bin]]name insidecrates/llm-cost-ops-cli/Cargo.toml; the real library package isllm-cost-ops. This is not listed in ADR-015's mismatch table, so it has no vetted mapping, and choosing betweenllm-cost-opsandllm-cost-ops-sdkis a judgment call. Left for a decision rather than guessed at.integration-manifest.json:156-261still lists the fabricated@llm-dev-ops/llm-infra-*names and the oldinfra-logging/infra-tracing/infra-ratelimitfeature flags. It is a planning document, not a build input, but leaving it will hand the same fabricated names to the next reader. Out of scope here; worth a follow-up.frontend/package-lock.jsonis already out of sync withpackage.jsononmain— it contains zero@llm-dev-ops/*entries. It could not be regenerated because@llm-dev-ops/infrais unpublished. Pre-existing, unchanged by this PR.