You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
crates: rename six crates the crate_names rule tolerated - #1698
Renames six crates that archcheck's crate_names rule tolerated only through [crate_names] baseline entries, so each name says what the crate holds, and
removes those six entries:
One commit per crate. Each moves the directory to its new name's path, renames
the package and library, and updates every manifest, use, doc reference and
config key that names the crate (nextest filter, test-duration budget keys,
the rootfs_copy allow path, scripts/move_crates.toml). No code changes.
credential-injection's build script climbs one directory fewer to proto/.
pplx-space-common-jobs and pplx-space-node-runtime-core are not renamed: [layers.storage_access] and [layers.dev_direction] name them, and
archcheck has no package rename map, so their renamed entries would fail no_new_entries.
Validation
At this head: cargo fmt --check; cargo check --workspace --all-targets;
feature builds for api (kubernetes), rpc-auth (k8s), grpc-lb (k8s),
node-api-client (kubernetes) and file-io (reflink); ci/scripts/run-rust-checks.sh clippy, isolated-crates and tests-unprivileged (only failures are 41 environmental PermissionDenied
failures in guest-process and node-mgr privileged-path tests); ci/scripts/run-archcheck.sh against the base: 0 required findings.
Severity and risk
Severity: does not apply (naming only).
Risk: anything outside this repository that names the old packages or paths
breaks until it is updated. Events emitted with tracing's default target
carry the new module paths; no log filter in this repository names the old
ones. Metric, span and wire names are unchanged. Roll back by reverting.
Log targets: events and spans in these crates that set no target: take their module path, so after this merges they carry new targets:
pplx_space_common_grpc_lb::channel and pplx_space_common_grpc_lb::kubernetes become pplx_space_grpc_lb::channel and pplx_space_grpc_lb::kubernetes.
The work_coalescer.wait and work_coalescer.run spans keep their names, but their target moves from pplx_space_common_work_coalescer to pplx_space_work_coalescer.
lru-reaper and credential-injection emit no events or spans.
An exact-value @target filter on an old target stops matching. For connection-admission warnings, the guest_target and guest_file fields of spaced guest diagnostic logs change the same way.
AI assistance: Claude Code made the renames, ran the checks and drafted this
description.
Automatic approval is disabled by the configured approval policy for this pull request. Review comments and requests for changes continue normally.
Commit: 11eae800226d.
No actionable comments were generated in the recent review.
Walkthrough
Foundation crates and credential injection move to updated paths and package names. Workspace configuration, dependent crates, imports, build mappings, and repository metadata now reference the new names. The summarized call behavior, error handling, and test assertions remain unchanged.
Merge Risk: Minimal · up to 11eae
This renames six crates and updates their references without changing behavior. No concrete defect was found. The remaining risk is that something outside the supplied files still uses an old name, which a workspace build would show.
Security architecture risk: Minimal · up to 11eae
The changes rename and relocate libraries without changing their inspected runtime behavior. Credential validation, secret redaction, and zeroization remain intact. Consumers outside this repository may need to update package names or paths.
Retained concerns
No architecture-level concerns identified.
Security review details
Security Blast Radius
inferred — The routed changes do not expand credential authority or independently attackable runtime scope: existing consumers continue to reference the same validation and credential-generation implementations under new Rust identities.
Trust Boundaries and Controls
observed — The credential reference conversion retains its validation call, while credential generation retains secret-safe Debug handling and zeroization attributes. The rename does not remove these inspected controls.
Pre-merge checks: 6
Check name
Status
Explanation
Title check
The title "crates: rename six crates the crate_names rule tolerated" starts with a lowercase area and colon, as the title requirement asks. The summary says the change renames six foundation crates (g…
Description Follows The Pr Template
The PR description contains all four required items, each with real content. This check reads only the description text, so no repository inspection was needed. 1. "## Summary" is present. It stat…
Bug Fixes Name A Regression Test
The check applies only when the pull request fixes a defect in application behavior under crates/, shim/, or ui/. This pull request does not fix a defect. Its title, commit subjects, and description d…
Weakened Safeguards Are Justified
The diff renames six crates and updates the references to them. It does not remove, disable, narrow, or weaken any test, assertion, lint, CI check, or repository guard. - **Baseline and guard entries …
Agent Tooling Runs No New Commands
The check fails only if the diff adds or changes agent-executed content: plugin manifest hooks, MCP/LSP servers, SKILL.md frontmatter keys other than name/description, inline ! backtick shell substi…
Public-Safe Content
The public-safety check passes. I scanned all added lines in the reviewed range (99 changed files) for private keys, token-like strings, AWS ARNs, 12-digit account IDs, personal absolute paths (/Users…
Full details: Title check
Explanation
The title "crates: rename six crates the crate_names rule tolerated" starts with a lowercase area and colon, as the title requirement asks. The summary says the change renames six foundation crates (grpc-lb, work-coalescer, lru-reaper, connection-admission, file-io, credential-injection) and removes their crate_names baseline entries. The title matches the main change. The phrase 'the crate_names rule tolerated' is a little indirect but refers to a real part of the change. The summary starts with a lowercase word, has no trailing period, and has no ticket ID.
Full details: Description Follows The Pr Template
Explanation
The PR description contains all four required items, each with real content. This check reads only the description text, so no repository inspection was needed. 1. "## Summary" is present. It states that the PR renames six crates and removes their [crate_names] baseline entries, and it lists each old and new name. 2. "## Validation" is present. It names the checks run (cargo fmt --check, cargo check --workspace --all-targets, feature builds, ci/scripts/run-rust-checks.sh clippy/isolated-crates/tests-unprivileged, ci/scripts/run-archcheck.sh) and gives results. It reports 0 required archcheck findings and 41 environmental PermissionDenied failures. 3. "## Severity and risk" is present. It gives "Severity: does not apply (naming only)" and a risk statement about external references to old names and changed tracing targets. 4. "AI assistance:" is a line that begins with that label. It reads "Claude Code made the renames, ran the checks and drafted this description." The check is presence-only, so the missing-item rule does not apply.
Full details: Bug Fixes Name A Regression Test
Explanation
The check applies only when the pull request fixes a defect in application behavior under crates/, shim/, or ui/. This pull request does not fix a defect. Its title, commit subjects, and description describe six crate renames. The description states "Severity: does not apply (naming only)" and "No code changes." The raw summary also lists only renames, path updates, and config and manifest edits. No behavior change is described, so the check does not apply and the pull request passes.
Full details: Weakened Safeguards Are Justified
Explanation
The diff renames six crates and updates the references to them. It does not remove, disable, narrow, or weaken any test, assertion, lint, CI check, or repository guard. - Baseline and guard entries removed (tightening):architecture-baseline.toml removes six [crate_names] entries (pplx-space-common-connection-admission, -grpc-lb, -io, -lru-reaper, -work-coalescer, pplx-space-credential-injection-core). Removing a baseline exception makes the guard stricter, so this is not a weakening. - Allow path retargeted, not added:ARCHITECTURE.toml line 245 changes allow = ["crates/l10_foundation/common/io/src/reflink.rs"] to allow = ["crates/l10_foundation/file/io/src/reflink.rs"]. The entry count is unchanged, and the path follows the moved file. This is a path update, which the check does not treat as loosening. The architecture-baseline.toml rootfs_copy entries keep the same counts. - Nextest filter retargeted:.config/nextest.toml line 134 changes package(pplx-space-common-io) to package(pplx-space-file-io). The test selector reflink::tests::nocow_preparation_clones_shared_extents_and_rejects_aliases is unchanged, so the test still runs. - Duration budget keys renamed:ci/test-duration-budget.toml lines 88–89 rename two pplx-space-common-io keys to pplx-space-file-io. The 5-second ceilings are unchanged. - No new suppressions: no #[allow], #[expect], #[ignore], skip, xfail, continue-on-error, or SPACE_TEST_DEPS_OPTIONAL lines were added. - No test or assertion removed: no removed .rs lines match #[test], #[tokio::test], or assert. - No lint tables changed: no [lints] or [workspace.lints] change appears in Cargo.toml or elsewhere. - No guidance files touched: no AGENTS.md, CLAUDE.md, CONTRIBUTING.md, .agents/, docs/rust/, or workflow file changed. The ARCHITECTURE.toml comment edits only rename common-io and credential-injection-core; they add no review or merge-risk text. - Renamed moves (no safeguard change):scripts/move_crates.toml maps the renamed crates and adds rename keys. The credential/injection/build.rs proto path climbs one fewer directory. Neither touches a check, lint, or guard. Some changes are not weakening, so they are not findings. The description's changes to tracing targets and diagnostic fields are outside this check's criteria.
Full details: Agent Tooling Runs No New Commands
Explanation
The check fails only if the diff adds or changes agent-executed content: plugin manifest hooks, MCP/LSP servers, SKILL.md frontmatter keys other than name/description, inline ! backtick shell substitutions, or other content agent tools run. Evidence: - The changed-file inventory (99 files, git diff --name-status against the review base) has no plugin manifests (plugin.json, plugin.yaml), no SKILL.md, no .claude/, .agents/, .cursor/, CLAUDE.md, AGENTS.md, or .mcp.json paths. A name-only regex over the changed set returned no matches. - The head tree does contain agent assets (.agents/plugins/pplx-space/... manifests, .claude/skills/*/SKILL.md, and many AGENTS.md/CLAUDE.md files). None of them appears in the PR diff, so the PR does not change them. - A search of all added diff lines for hooks, mcpServers, mcp_servers, allowed-tools, allowed_tools, lspServers, "command", command:, and !`` returned no matches. - The PR content is crate renames: Cargo manifests, Rust usepaths, build scripts, nextest/archcheck/duration TOML config, andscripts/move_crates.toml. Under this check, none of these is an agent-run entry. The build.rs` path change is a Cargo build script, not an agent tool. No failure condition is met. Agent assets are unchanged and no new command or server entry was added.
Full details: Public-Safe Content
Explanation
The public-safety check passes. I scanned all added lines in the reviewed range (99 changed files) for private keys, token-like strings, AWS ARNs, 12-digit account IDs, personal absolute paths (/Users/, /home/), and internal hostnames or URLs. None matched. The only "http" hit was a file path segment (tls_http/tests.rs), not a URL. The PR description contains no links to private trackers or chats, no incident details, no production logs or measurements, and no undisclosed vulnerability. Its validation notes (41 environmental PermissionDenied test failures, archcheck results) are CI results and do not expose production data. The log-target section names only crate module paths.
Recent review info
Automatic approval policy
Commit: 11eae800226d.
Setting
Effective value
Source
Automatic approvals
Disabled
Override 3
Merge risk
Moderate
Global configuration
Security risk
Not set
Global configuration
Matching overrides (numbered as in the resolved configuration):
Any matching disabled override withholds approval, regardless of risk. Otherwise, the strictest explicitly set limit wins for each score. Limits omitted by all matching overrides inherit the global configuration.
Not set means no limit was configured after inheritance. Use @coderabbitai configuration to inspect the resolved settings and their sources.
Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 8 remain after this review.
The crate holds client-side gRPC load balancing over a discovered
endpoint set; `common` said nothing about that. The package, library
and directory change (crates/l10_foundation/common/grpc/lb ->
crates/l10_foundation/grpc/lb), every reference follows, and its
[crate_names] baseline entry goes. No code changes. Events the crate
emits with tracing's default target now carry the new module path.
…-work-coalescer
The crate holds keyed coalescing of concurrent duplicate work; `common`
said nothing about that. The package, library and directory change
(crates/l10_foundation/common/work/coalescer ->
crates/l10_foundation/work/coalescer), every reference follows, with
rustfmt's reflow of the touched imports, and its [crate_names] baseline
entry goes. No code changes. The `work_coalescer.*` span names are
explicit and unchanged; the crate's spans, which take tracing's default
target, now carry the new module path.
The crate holds the LRU eviction planner that the template cache GC and
the snapshot-artifact reaper share; `common` said nothing about that.
The package, library and directory change
(crates/l10_foundation/common/lru/reaper ->
crates/l10_foundation/lru/reaper), every reference follows, and its
[crate_names] baseline entry goes. No code changes; the crate emits no
events or metrics.
…o pplx-space-connection-admission
The crate holds bounded accepted-connection admission for local service
transports; `common` said nothing about that. The package, library and
directory change (crates/l10_foundation/common/connection/admission ->
crates/l10_foundation/connection/admission), every reference follows,
with rustfmt's reordering of the touched imports, and its [crate_names]
baseline entry goes. No code changes. Events the crate emits with
tracing's default target now carry the new module path.
The crate holds file I/O mechanics: streaming AES-256-GCM file
encryption (`fs`), sparse-file readers and writers (`sparse`) and
NoCoW-preserving reflink copies (`reflink`). `common` said nothing about
that. The package, library and directory change
(crates/l10_foundation/common/io -> crates/l10_foundation/file/io), every
reference follows, with rustfmt's reflow of the touched lines, and its
[crate_names] baseline entry goes. No code changes.
The nextest privileged-test filter, the test-duration budget keys and
the rootfs_copy pattern-ratchet allow path name the crate, so they
follow it. Events the crate emits with tracing's default target now
carry the new module path.
…pplx-space-credential-injection
The crate holds credential injection's model and wire type: validated
credential references (`secret_arn`, `validation`) and the
secret-bearing `ResolvedNetworkCredential` message. `core` said nothing
about that. The package, library and directory change
(crates/l20_domain/credential/injection/core ->
crates/l20_domain/credential/injection), every reference follows, and
its [crate_names] baseline entry goes. No code changes.
The build script's proto root climbs one directory fewer, and the
`extern_path` targets in spaced-common's and credmgr-client's build
scripts name the new library. The generated message is unchanged. The
name does not end in -protocol or -proto, so the crate still counts as
a model.
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
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
Renames six crates that archcheck's
crate_namesrule tolerated only through[crate_names]baseline entries, so each name says what the crate holds, andremoves those six entries:
One commit per crate. Each moves the directory to its new name's path, renames
the package and library, and updates every manifest,
use, doc reference andconfig key that names the crate (nextest filter, test-duration budget keys,
the rootfs_copy allow path, scripts/move_crates.toml). No code changes.
credential-injection's build script climbs one directory fewer to
proto/.pplx-space-common-jobs and pplx-space-node-runtime-core are not renamed:
[layers.storage_access]and[layers.dev_direction]name them, andarchcheck has no package rename map, so their renamed entries would fail
no_new_entries.Validation
At this head: cargo fmt --check; cargo check --workspace --all-targets;
feature builds for api (kubernetes), rpc-auth (k8s), grpc-lb (k8s),
node-api-client (kubernetes) and file-io (reflink);
ci/scripts/run-rust-checks.sh clippy,isolated-cratesandtests-unprivileged(only failures are 41 environmental PermissionDeniedfailures in guest-process and node-mgr privileged-path tests);
ci/scripts/run-archcheck.shagainst the base: 0 required findings.Severity and risk
Severity: does not apply (naming only).
Risk: anything outside this repository that names the old packages or paths
breaks until it is updated. Events emitted with tracing's default target
carry the new module paths; no log filter in this repository names the old
ones. Metric, span and wire names are unchanged. Roll back by reverting.
Log targets: events and spans in these crates that set no
target:take their module path, so after this merges they carry new targets:pplx_space_common_grpc_lb::channelandpplx_space_common_grpc_lb::kubernetesbecomepplx_space_grpc_lb::channelandpplx_space_grpc_lb::kubernetes.pplx_space_common_connection_admissionbecomespplx_space_connection_admission.pplx_space_common_io::sparsebecomespplx_space_file_io::sparse(one DEBUG event).work_coalescer.waitandwork_coalescer.runspans keep their names, but their target moves frompplx_space_common_work_coalescertopplx_space_work_coalescer.An exact-value
@targetfilter on an old target stops matching. For connection-admission warnings, theguest_targetandguest_filefields ofspaced guest diagnosticlogs change the same way.AI assistance: Claude Code made the renames, ran the checks and drafted this
description.