Skip to content

chore(deps): update first-party cachekit - #7

Open
cachekit-renovate-bot[bot] wants to merge 1 commit into
mainfrom
renovate/first-party-cachekit
Open

chore(deps): update first-party cachekit#7
cachekit-renovate-bot[bot] wants to merge 1 commit into
mainfrom
renovate/first-party-cachekit

Conversation

@cachekit-renovate-bot

@cachekit-renovate-bot cachekit-renovate-bot Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence Type Update
@cachekit-io/cachekit (source) 0.1.30.1.5 age confidence dependencies patch
cachekit (changelog) ==0.15.0==0.18.0 age confidence project.dependencies minor
cachekit-core 0.40.6 age confidence dependencies minor

Release Notes

cachekit-io/cachekit-ts (@​cachekit-io/cachekit)

v0.1.5

Features
  • cache: cold-miss single-flight + opt-in cross-process locking (LAB-519) (#​77) (2fbfdee)
  • core-bindings: pick up cachekit-core 0.4.0 — bin envelopes (LAB-901) (#​91) (763a3d8)
  • workers: LAB-750 Workers KV + Cache API backends (phase-2 edge storage) (#​81) (d0a0e3d)
  • workers: re-enable SWR on Workers via ctx.waitUntil (LAB-751) (#​80) (08fd853)
Bug Fixes
  • swr: preserve explicit writes during refresh (LAB-751) (#​84) (c4d4aed)
  • wire the metrics option live — Prometheus module becomes the implementation (LAB-517) (#​75) (23721b9)

v0.1.4

Features
  • Cloudflare Workers entrypoint on wasm32 cachekit-core (LAB-595) (#​78) (d70d225)
  • Memcached + File backends (Node-only subpath exports) (LAB-430) (#​76) (e22928d)
cachekit-io/cachekit-py (cachekit)

v0.18.0

Compare Source

⚠ BREAKING CHANGES
  • L1CacheConfig.namespace_index is removed. The flag was read by nothing and toggled no behavior, but it shipped in v0.17.1 and docs/configuration.md documented a copy-pasteable L1CacheConfig(..., namespace_index=True) example — L1CacheConfig is a frozen dataclass, so constructors still passing it now raise TypeError instead of silently lying. L1Cache.invalidate_by_key(), .invalidate_by_namespace() and .invalidate_all() are removed with it; per-key L1Cache.invalidate() is unaffected. Same removal shape as L1CacheConfig.invalidation_enabled in v0.16.0 (LAB-520).
Features
  • encryption: keyring rotation — previous_master_keys + fingerprint selection (LAB-684) (#​261) (e1b05ce)
Bug Fixes
  • cachekitio: percent-encode cache key in request path (LAB-2846) (#​279) (f000ba3)
  • fuzz: commit per-target corpus seeds cargo-fuzz actually loads (LAB-1149) (#​263) (1b85f56)
  • l1: delete dead backed-mode SWR machinery; docs stop claiming backed SWR (LAB-388) (#​256) (878ad08)
Performance Improvements
  • file: eliminate two full-payload copies on the non-mmap read path (LAB-770) (#​267) (f7e236b)
Code Refactoring
  • delete dead L1 namespace-index/bulk-invalidation machinery (LAB-1433) (#​258) (2607faf)

v0.17.1

Compare Source

Bug Fixes
  • fuzz: fuzz the codec that ships — core 0.4.0, all 14 targets, fail loudly (LAB-1136) (#​251) (511b1e5)

v0.17.0

Compare Source

Features
  • envelope: pick up cachekit-core 0.4.0 bin envelopes (LAB-900) (#​249) (fa9ea36)
Bug Fixes
  • serializers: byte-aware Arrow batch sizing holds the memory bound on skewed frames (LAB-110) (#​244) (e67db58)
Performance Improvements
  • arrow: stream serialize-to-backend writes via BufferWritableBackend (LAB-766) (#​247) (539fde9)

v0.16.0

Compare Source

⚠ BREAKING CHANGES
  • L1CacheConfig.invalidation_enabled is removed. The flag was read by nothing and toggled no behavior; constructors passing it now raise TypeError instead of silently lying.
Bug Fixes
  • security: EncryptionWrapper.deserialize fails closed on plaintext-claiming input (LAB-271) (#​242) (6fcb115)
Code Refactoring
  • remove unwired cross-instance invalidation package (LAB-520) (#​237) (c56ac0a)
cachekit-io/cachekit-core (cachekit-core)

v0.6.0

Compare Source

Features
  • cache keyring per-tenant derivation at construction via TenantKeyring (LAB-1638) (#​71) (d3f0eb0)
  • expose winning-key index via decrypt_indexed for rotation drain observability (LAB-1645) (#​73) (d834f74)

v0.5.0

Compare Source

⚠ BREAKING CHANGES
  • public items EncryptionHeader, KeyRotationState, RotationAwareHeader, and ZeroKnowledgeEncryptor::rotate_key() are removed (EncryptionError::NotImplemented variant included). Use Keyring for master-key rotation.
Features
  • replace dead key-rotation machinery with keyring decrypt helper (LAB-683) (#​67) (327f993)

Configuration

📅 Schedule: (in timezone Australia/Sydney)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

@kodus-27b

This comment has been minimized.

Comment thread hotpath/Cargo.toml Outdated
Comment thread hotpath/Cargo.toml Outdated
@cachekit-renovate-bot
cachekit-renovate-bot Bot force-pushed the renovate/first-party-cachekit branch from 9a2b7ba to 46e57a3 Compare July 29, 2026 12:22
@kodus-27b

This comment has been minimized.

kodus-27b[bot]
kodus-27b Bot previously approved these changes Jul 29, 2026
@kodus-27b

This comment has been minimized.

Comment thread hotpath/Cargo.toml Outdated
Comment thread hotpath/Cargo.toml Outdated
@27Bslash6

Copy link
Copy Markdown
Contributor

Kody findings verified (LAB-1373)

Went through all four Kody comments on hotpath/Cargo.toml. Verdict: finding 1 is now satisfied with evidence below; findings 2–4 are false positives — the dual-version premise is true, the checksum-divergence conclusion is not.

Finding 1 (High, Rule 85 — no audit/SCA evidence): satisfied

  • cargo audit -f Cargo.lock on this branch: 201 crates scanned against 1186 RustSec advisories, zero findings, exit 0 (DB fetched 2026-08-03).
  • OSV.dev query for every bumped package: cachekit-core 0.4.0 (crates.io), cachekit-rs 0.5.0 (crates.io), @cachekit-io/cachekit 0.1.5 (npm), cachekit 0.17.0 (PyPI) — no known vulnerabilities for any of them.

Findings 2–4 (Medium — dual cachekit-core versions break the verify path): false positives

The lockfile fact is real: cachekit-rs 0.5.0 pins cachekit-core 0.3.0 while hotpath's direct dep resolves 0.4.0, side by side in Cargo.lock. But that split cannot produce a checksum mismatch:

  1. The checksum code is byte-identical between 0.3.0 and 0.4.0. src/checksum.rs and src/lib.rs have the same git blob SHA at tags cachekit-core-v0.3.0 and cachekit-core-v0.4.0 (bae3bb9… / ba0dc8f…). The only src/ change in 0.4.0 is byte_storage.rs: a single #[serde(with = "serde_bytes")] on StorageEnvelope.compressed_data (protocol 1.1 bin encoding, LAB-866) — and its doc comment explicitly scopes the change to that field, with checksum excluded by normative rule.
  2. hotpath never touches StorageEnvelope through either core version. Its direct dep is default-features = false, features = ["checksum"], and verify_payload (compute.rs:78,85) only calls cachekit_core::checksum / verify_checksum over raw payload bytes. There is no envelope encode/decode anywhere in hotpath/src/ — payload validity goes through cachekit::interop (interop/v1 documents), not envelopes.
  3. Both core versions share one xxhash-rust in the lock, so it is literally the same hash implementation compiled twice.
  4. Proven on the PR tree: cargo test --locked in hotpath/ — 13/13 pass, including the byte-locked cross-SDK key-derivation vector and checksum corruption detection.

Residual (non-blocking) hygiene note: the duplicate cachekit-core compilation adds dead weight to the wasm binary; it disappears whenever cachekit-rs bumps its own core dep to 0.4. Not a reason to hold this PR.

Note the repo's qa check only runs the Python ingester — nothing in CI builds the hotpath crate, which is why the local cargo test --locked run above matters.

kodus-27b[bot]
kodus-27b Bot previously approved these changes Aug 3, 2026
@kodus-27b

This comment has been minimized.

kodus-27b[bot]
kodus-27b Bot previously approved these changes Aug 3, 2026
@kodus-27b

This comment has been minimized.

Comment thread hotpath/Cargo.toml
# Interop key derivation + strict interop/v1 (de)serialization. No features:
# the interop module is unconditional, and native builds don't need backends.
cachekit-rs = { version = "0.5.0", default-features = false }
cachekit-rs = { version = "0.7.0", default-features = false }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kody code-review Kody Rules high

WHAT: The dependency version for cachekit-rs was bumped from 0.5.0 to 0.7.0 without SCA/CVE evidence. WHY: New/updated dependencies must be validated for known vulnerabilities and supply-chain risk. HOW: Provide OSV/SCA audit output or advisory links in the PR description and ensure the lockfile is updated with pinned versions.

Also found in:

  • hotpath/Cargo.toml:23-23
  • hotpath/Cargo.toml:40-40

Kody rule violation: Validate new/updated dependencies for CVEs and supply-chain risk

Prompt for LLM

File hotpath/Cargo.toml:

Line 20:

WHAT: The dependency version for cachekit-rs was bumped from 0.5.0 to 0.7.0 without SCA/CVE evidence. WHY: New/updated dependencies must be validated for known vulnerabilities and supply-chain risk. HOW: Provide OSV/SCA audit output or advisory links in the PR description and ensure the lockfile is updated with pinned versions.

Talk to Kody by mentioning @kody

Was this suggestion helpful? React with 👍 or 👎 to help Kody learn from this interaction.

@cachekit-renovate-bot
cachekit-renovate-bot Bot force-pushed the renovate/first-party-cachekit branch from c9876a2 to 97c3d6d Compare August 7, 2026 05:55
@kodus-27b

This comment has been minimized.

Comment thread hotpath/Cargo.toml Outdated
# checksums, so wire values are identical. 0.4 matches cachekit-rs 0.7.0's
# pin so only one copy lands in the wasm binary.
cachekit-core = { version = "0.4", default-features = false, features = ["checksum"] }
cachekit-core = { version = "0.5", default-features = false, features = ["checksum"] }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kody code-review Kody Rules high

WHAT: Dependency version bump from 0.4 to 0.5 without CVE/SCA evidence. WHY: New/updated dependency versions may introduce known vulnerabilities or supply-chain risk, and this also breaks the documented pin alignment with cachekit-rs 0.7.0's 0.4 pin (noted in the comment above), which could duplicate copies in the wasm binary. HOW: Provide OSV/SCA audit output or advisory links in the PR description, confirm the 0.5 version is compatible with cachekit-rs 0.7.0's pin, and update the lockfile accordingly.

Kody rule violation: Validate new/updated dependencies for CVEs and supply-chain risk

Prompt for LLM

File hotpath/Cargo.toml:

Line 24:

WHAT: Dependency version bump from 0.4 to 0.5 without CVE/SCA evidence. WHY: New/updated dependency versions may introduce known vulnerabilities or supply-chain risk, and this also breaks the documented pin alignment with cachekit-rs 0.7.0's 0.4 pin (noted in the comment above), which could duplicate copies in the wasm binary. HOW: Provide OSV/SCA audit output or advisory links in the PR description, confirm the 0.5 version is compatible with cachekit-rs 0.7.0's pin, and update the lockfile accordingly.

Talk to Kody by mentioning @kody

Was this suggestion helpful? React with 👍 or 👎 to help Kody learn from this interaction.

Comment thread hotpath/Cargo.toml Outdated
# checksums, so wire values are identical. 0.4 matches cachekit-rs 0.7.0's
# pin so only one copy lands in the wasm binary.
cachekit-core = { version = "0.4", default-features = false, features = ["checksum"] }
cachekit-core = { version = "0.5", default-features = false, features = ["checksum"] }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kody code-review Performance medium

WHAT: Bumping cachekit-core to 0.5 while cachekit-rs stays at 0.7.0 breaks the single-copy invariant stated in the comment above (lines 21-23) — cachekit-rs 0.7.0 still transitively depends on cachekit-core 0.4.0 (Cargo.lock line 167), while this crate now depends on 0.5.0 (Cargo.lock line 1187). WHY: Two independent copies of cachekit-core (0.4.0 and 0.5.0) now compile into the wasm32 build, duplicating the checksum/xxhash code and enlarging the Worker wasm binary — the exact bloat the comment says the 0.4 pin prevents. HOW: Either keep cachekit-core pinned at the version cachekit-rs 0.7.0 depends on (0.4) until cachekit-rs is upgraded to a release that depends on cachekit-core 0.5, or bump cachekit-rs in lockstep so a single cachekit-core version resolves; also update the now-stale comment on lines 21-23.

# 0.4 matches cachekit-rs 0.7.0's transitive pin so only one copy lands in the wasm binary.
cachekit-core = { version = "0.4", default-features = false, features = ["checksum"] }
Prompt for LLM

File hotpath/Cargo.toml:

Line 24:

WHAT: Bumping cachekit-core to 0.5 while cachekit-rs stays at 0.7.0 breaks the single-copy invariant stated in the comment above (lines 21-23) — cachekit-rs 0.7.0 still transitively depends on cachekit-core 0.4.0 (Cargo.lock line 167), while this crate now depends on 0.5.0 (Cargo.lock line 1187). WHY: Two independent copies of cachekit-core (0.4.0 and 0.5.0) now compile into the wasm32 build, duplicating the checksum/xxhash code and enlarging the Worker wasm binary — the exact bloat the comment says the 0.4 pin prevents. HOW: Either keep cachekit-core pinned at the version cachekit-rs 0.7.0 depends on (0.4) until cachekit-rs is upgraded to a release that depends on cachekit-core 0.5, or bump cachekit-rs in lockstep so a single cachekit-core version resolves; also update the now-stale comment on lines 21-23.

Suggested Code:

# 0.4 matches cachekit-rs 0.7.0's transitive pin so only one copy lands in the wasm binary.
cachekit-core = { version = "0.4", default-features = false, features = ["checksum"] }

Talk to Kody by mentioning @kody

Was this suggestion helpful? React with 👍 or 👎 to help Kody learn from this interaction.

@cachekit-renovate-bot
cachekit-renovate-bot Bot force-pushed the renovate/first-party-cachekit branch from 97c3d6d to b1d104a Compare August 9, 2026 21:51
@kodus-27b

This comment has been minimized.

Comment thread hotpath/Cargo.toml
# checksums, so wire values are identical. 0.4 matches cachekit-rs 0.7.0's
# pin so only one copy lands in the wasm binary.
cachekit-core = { version = "0.4", default-features = false, features = ["checksum"] }
cachekit-core = { version = "0.6", default-features = false, features = ["checksum"] }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kody code-review Kody Rules high

WHAT: The dependency cachekit-core was bumped from 0.4 to 0.6 with no SCA/CVE evidence. WHY: New/updated dependency versions must be validated for known vulnerabilities and supply-chain risk, and this also breaks the documented version-pin invariant (comment above still says '0.4 matches cachekit-rs 0.7.0's pin'), risking multiple copies in the wasm binary. HOW: Provide OSV/SCA audit output or advisory links in the PR description, confirm the 0.6 version aligns with cachekit-rs 0.7.0's expected pin, update the explanatory comment, and ensure the lockfile is updated accordingly.

Kody rule violation: Validate new/updated dependencies for CVEs and supply-chain risk

Prompt for LLM

File hotpath/Cargo.toml:

Line 24:

WHAT: The dependency cachekit-core was bumped from 0.4 to 0.6 with no SCA/CVE evidence. WHY: New/updated dependency versions must be validated for known vulnerabilities and supply-chain risk, and this also breaks the documented version-pin invariant (comment above still says '0.4 matches cachekit-rs 0.7.0's pin'), risking multiple copies in the wasm binary. HOW: Provide OSV/SCA audit output or advisory links in the PR description, confirm the 0.6 version aligns with cachekit-rs 0.7.0's expected pin, update the explanatory comment, and ensure the lockfile is updated accordingly.

Talk to Kody by mentioning @kody

Was this suggestion helpful? React with 👍 or 👎 to help Kody learn from this interaction.

Comment thread hotpath/Cargo.toml
# checksums, so wire values are identical. 0.4 matches cachekit-rs 0.7.0's
# pin so only one copy lands in the wasm binary.
cachekit-core = { version = "0.4", default-features = false, features = ["checksum"] }
cachekit-core = { version = "0.6", default-features = false, features = ["checksum"] }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kody code-review Performance medium

WHAT: Bumping the direct cachekit-core dependency to 0.6 while cachekit-rs stays at 0.7.0 breaks the single-copy invariant — Cargo.lock now resolves both cachekit-core 0.4.0 (transitive via cachekit-rs 0.7.0, line 167) and cachekit-core 0.6.0 (direct, line 1187), so two copies of the crate compile into the wasm32 binary. WHY: The in-file comment (lines 21-23) explicitly requires matching cachekit-rs's pin 'so only one copy lands in the wasm binary'; two copies of cachekit-core plus their xxhash-rust/serde_bytes graph inflate the hot-path Worker's wasm size, and the comment now states an incorrect version (still says '0.4 matches'). Additionally, verify_payload (compute.rs:78) documents its checksum as byte-identical to what a cachekit-rs StorageEnvelope embeds; computing it via a different cachekit-core major than cachekit-rs uses removes the guarantee that the two share one checksum implementation. HOW: Either keep cachekit-core pinned to the version cachekit-rs 0.7.0 depends on (0.4), or upgrade cachekit-rs to a release that also depends on cachekit-core 0.6 so a single copy is resolved; update the comment on lines 22-23 accordingly.

# 0.4 matches cachekit-rs 0.7.0's transitive pin so only one copy lands in the wasm binary.
cachekit-core = { version = "0.4", default-features = false, features = ["checksum"] }
Prompt for LLM

File hotpath/Cargo.toml:

Line 24:

WHAT: Bumping the direct `cachekit-core` dependency to 0.6 while `cachekit-rs` stays at 0.7.0 breaks the single-copy invariant — Cargo.lock now resolves both `cachekit-core 0.4.0` (transitive via cachekit-rs 0.7.0, line 167) and `cachekit-core 0.6.0` (direct, line 1187), so two copies of the crate compile into the wasm32 binary. WHY: The in-file comment (lines 21-23) explicitly requires matching cachekit-rs's pin 'so only one copy lands in the wasm binary'; two copies of cachekit-core plus their xxhash-rust/serde_bytes graph inflate the hot-path Worker's wasm size, and the comment now states an incorrect version (still says '0.4 matches'). Additionally, `verify_payload` (compute.rs:78) documents its checksum as byte-identical to what a cachekit-rs StorageEnvelope embeds; computing it via a different cachekit-core major than cachekit-rs uses removes the guarantee that the two share one checksum implementation. HOW: Either keep cachekit-core pinned to the version cachekit-rs 0.7.0 depends on (0.4), or upgrade cachekit-rs to a release that also depends on cachekit-core 0.6 so a single copy is resolved; update the comment on lines 22-23 accordingly.

Suggested Code:

# 0.4 matches cachekit-rs 0.7.0's transitive pin so only one copy lands in the wasm binary.
cachekit-core = { version = "0.4", default-features = false, features = ["checksum"] }

Talk to Kody by mentioning @kody

Was this suggestion helpful? React with 👍 or 👎 to help Kody learn from this interaction.

Comment thread hotpath/Cargo.toml
# checksums, so wire values are identical. 0.4 matches cachekit-rs 0.7.0's
# pin so only one copy lands in the wasm binary.
cachekit-core = { version = "0.4", default-features = false, features = ["checksum"] }
cachekit-core = { version = "0.6", default-features = false, features = ["checksum"] }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kody code-review Bug medium

WHAT: Bumping the direct cachekit-core dependency to 0.6 while cachekit-rs stays at 0.7.0 breaks the single-copy invariant the adjacent comment guarantees — Cargo.lock now resolves both cachekit-core 0.6.0 (as skyline-hotpath's direct dep) and cachekit-core 0.4.0 (transitively via cachekit-rs 0.7.0). WHY: Two copies of cachekit-core land in the wasm binary (the outcome the comment on lines 22-23 says the pin prevents), bloating the binary and making the checksum/interop primitives potentially resolve to a different crate instance than the one backing StorageEnvelope, and the comment is now factually wrong. HOW: Either keep cachekit-core at the version cachekit-rs 0.7.0 pins (0.4), or bump cachekit-rs in tandem so both resolve to a single 0.6 copy, then update the comment.

# Keep in lockstep with cachekit-rs's cachekit-core pin so only one copy lands in the wasm binary.
cachekit-core = { version = "0.4", default-features = false, features = ["checksum"] }
Prompt for LLM

File hotpath/Cargo.toml:

Line 24:

WHAT: Bumping the direct `cachekit-core` dependency to 0.6 while `cachekit-rs` stays at 0.7.0 breaks the single-copy invariant the adjacent comment guarantees — Cargo.lock now resolves both `cachekit-core 0.6.0` (as skyline-hotpath's direct dep) and `cachekit-core 0.4.0` (transitively via cachekit-rs 0.7.0). WHY: Two copies of `cachekit-core` land in the wasm binary (the outcome the comment on lines 22-23 says the pin prevents), bloating the binary and making the checksum/interop primitives potentially resolve to a different crate instance than the one backing StorageEnvelope, and the comment is now factually wrong. HOW: Either keep `cachekit-core` at the version `cachekit-rs 0.7.0` pins (0.4), or bump `cachekit-rs` in tandem so both resolve to a single 0.6 copy, then update the comment.

Suggested Code:

# Keep in lockstep with cachekit-rs's cachekit-core pin so only one copy lands in the wasm binary.
cachekit-core = { version = "0.4", default-features = false, features = ["checksum"] }

Talk to Kody by mentioning @kody

Was this suggestion helpful? React with 👍 or 👎 to help Kody learn from this interaction.

@cachekit-renovate-bot
cachekit-renovate-bot Bot force-pushed the renovate/first-party-cachekit branch from b1d104a to f1aac55 Compare September 4, 2026 05:55
@kodus-27b

kodus-27b Bot commented Sep 4, 2026

Copy link
Copy Markdown

Code Review Completed! 🔥

The code review was successfully completed based on your current configurations.

Kody Guide: Usage and Configuration
Interacting with Kody
  • Request a Review: Ask Kody to review your PR manually by adding a comment with the @kody start-review command at the root of your PR.

  • Validate Business Logic: Ask Kody to validate your code against business rules by adding a comment with the @kody -v business-logic command.

  • Provide Feedback: Help Kody learn and improve by reacting to its comments with a 👍 for helpful suggestions or a 👎 if improvements are needed.

Current Kody Configuration
Review Options

The following review options are enabled or disabled:

Options Enabled
Bug
Performance
Security
Business Logic

Access your configuration settings here.

Comment thread hotpath/Cargo.toml
# checksums, so wire values are identical. 0.4 matches cachekit-rs 0.7.0's
# pin so only one copy lands in the wasm binary.
cachekit-core = { version = "0.4", default-features = false, features = ["checksum"] }
cachekit-core = { version = "0.6", default-features = false, features = ["checksum"] }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kody code-review Kody Rules high

WHAT: This dependency manifest change bumps cachekit-core from 0.4 to 0.6 with no CVE/SCA evidence. WHY: New/updated dependency versions may introduce known vulnerabilities or supply-chain risk. Additionally, the comment above claims 0.4 matches cachekit-rs 0.7.0's pin, but this changes it to 0.6, which may cause duplicate copies in the wasm binary (contradicting the intent). HOW: Provide OSV/SCA audit output or advisory links in the PR description, pin the exact version, ensure the lockfile is updated, and update the stale comment to reflect the 0.6 pin.

Kody rule violation: Validate new/updated dependencies for CVEs and supply-chain risk

Prompt for LLM

File hotpath/Cargo.toml:

Line 24:

WHAT: This dependency manifest change bumps cachekit-core from 0.4 to 0.6 with no CVE/SCA evidence. WHY: New/updated dependency versions may introduce known vulnerabilities or supply-chain risk. Additionally, the comment above claims 0.4 matches cachekit-rs 0.7.0's pin, but this changes it to 0.6, which may cause duplicate copies in the wasm binary (contradicting the intent). HOW: Provide OSV/SCA audit output or advisory links in the PR description, pin the exact version, ensure the lockfile is updated, and update the stale comment to reflect the 0.6 pin.

Talk to Kody by mentioning @kody

Was this suggestion helpful? React with 👍 or 👎 to help Kody learn from this interaction.

Comment thread hotpath/Cargo.toml
# checksums, so wire values are identical. 0.4 matches cachekit-rs 0.7.0's
# pin so only one copy lands in the wasm binary.
cachekit-core = { version = "0.4", default-features = false, features = ["checksum"] }
cachekit-core = { version = "0.6", default-features = false, features = ["checksum"] }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kody code-review Bug medium

WHAT: Bumping cachekit-core to "0.6" desyncs it from cachekit-rs 0.7.0's transitive pin of cachekit-core 0.4.0 (confirmed in Cargo.lock:167 vs Cargo.lock:1187), violating the file's own invariant on lines 21-23. WHY: compute.rs:78/85 compute the xxHash3-64 checksum with cachekit-core 0.6.0, but VerifyReport (compute.rs:62-64) contracts this to be byte-identical to the checksum a cachekit-rs StorageEnvelope embeds — which is produced by cachekit-core 0.4.0; a major-version jump can change the hash output, silently breaking integrity verification (matches_expected/xxh3_64 disagree with the stored envelope), and it links two copies of cachekit-core into the wasm binary (Cargo.lock has both 0.4.0 and 0.6.0). HOW: Keep cachekit-core pinned to the version cachekit-rs 0.7.0 depends on (0.4), or upgrade cachekit-rs to a release whose transitive cachekit-core is 0.6 so a single copy resolves; also update the stale "0.4 matches..." comment.

cachekit-core = { version = "0.4", default-features = false, features = ["checksum"] }
Prompt for LLM

File hotpath/Cargo.toml:

Line 24:

WHAT: Bumping cachekit-core to "0.6" desyncs it from cachekit-rs 0.7.0's transitive pin of cachekit-core 0.4.0 (confirmed in Cargo.lock:167 vs Cargo.lock:1187), violating the file's own invariant on lines 21-23. WHY: compute.rs:78/85 compute the xxHash3-64 checksum with cachekit-core 0.6.0, but VerifyReport (compute.rs:62-64) contracts this to be byte-identical to the checksum a cachekit-rs StorageEnvelope embeds — which is produced by cachekit-core 0.4.0; a major-version jump can change the hash output, silently breaking integrity verification (matches_expected/xxh3_64 disagree with the stored envelope), and it links two copies of cachekit-core into the wasm binary (Cargo.lock has both 0.4.0 and 0.6.0). HOW: Keep cachekit-core pinned to the version cachekit-rs 0.7.0 depends on (0.4), or upgrade cachekit-rs to a release whose transitive cachekit-core is 0.6 so a single copy resolves; also update the stale "0.4 matches..." comment.

Suggested Code:

cachekit-core = { version = "0.4", default-features = false, features = ["checksum"] }

Talk to Kody by mentioning @kody

Was this suggestion helpful? React with 👍 or 👎 to help Kody learn from this interaction.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant