Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,51 @@ onward the project follows SemVer normally: patch releases are
bug-fix-only, minor releases are backward-compatible additions, and
breaking changes require a major bump.

## v2.6.1: Dependency security sweep

A security-only patch release. Clears every open advisory against the
repository's dependency tree — all 15 of which were npm packages in
`website-fumadocs`, the documentation site.

**No changes to the shipped CLI, brain, or remote server.** The Rust crate
sources are byte-identical to v2.6.0; the workspace version moves only so the
release carries a single coherent number. Nothing in `kimetsu-ai`,
`kimetsu-remote`, or the published crates was reachable from any of these
advisories — neither npm package has third-party runtime dependencies (both
declare only `optionalDependencies` on their own platform binaries), and
`cargo audit` reports zero vulnerabilities against the Rust tree before and
after.

### Security

Docs-site dependencies moved to patched versions (`website-fumadocs`):

- `next` 16.2.9 → 16.2.11 — clears nine advisories (GHSA-6gpp-xcg3-4w24,
GHSA-p9j2-gv94-2wf4, GHSA-89xv-2m56-2m9x, GHSA-m99w-x7hq-7vfj,
GHSA-4c39-4ccg-62r3, GHSA-68g3-v927-f742, GHSA-4633-3j49-mh5q,
GHSA-q8wf-6r8g-63ch, GHSA-955p-x3mx-jcvp).
- `postcss` 8.5.16 → 8.5.25 (GHSA-r28c-9q8g-f849).
- `sharp` 0.34.5 → 0.35.3 (GHSA-f88m-g3jw-g9cj), transitive via `next`.
- `js-yaml` 5.2.0 → 5.2.3 (GHSA-pm4m-ph32-ghv5, GHSA-724g-mxrg-4qvm),
transitive via `fumadocs-core` / `fumadocs-mdx`.
- `fast-uri` 3.1.3 → 3.1.5 (GHSA-v2hh-gcrm-f6hx), transitive via `serve` →
`ajv`.
- `brace-expansion` 1.1.15 → 1.1.18 (GHSA-3jxr-9vmj-r5cp), transitive via
`serve` → `serve-handler` → `minimatch`.

The four transitive bumps are pinned through `overrides` in
`website-fumadocs/package.json`, since no direct dependency had yet released a
manifest pointing at the patched versions. Drop each override once its parent
ships a release that resolves above the floor on its own. Note that
`brace-expansion` is pinned to `^1.1.16`, a 1.x-only range: today the tree
holds exactly one instance (under `minimatch@3`), but a future dependency
wanting 2.x or 4.x would collide with this pin.

`sharp` crossing a major (0.34 → 0.35) is the one bump with real breakage
risk, as `next` uses it for build-time image optimization. Verified by a full
`npm run build`: 72 static pages including the `/og/docs/**/image.png`
Open Graph routes, which are the paths that actually exercise `sharp`.

## v2.6.0: Speak first on every host

The README says Kimetsu "speaks first." An audit found that true on Claude Code,
Expand Down
14 changes: 7 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ resolver = "3"
# everything below except the per-crate `description`, `keywords`,
# and `categories` which live in each `[package]` block since
# crates.io enforces them per crate.
version = "2.6.0"
version = "2.6.1"
edition = "2024"
# Rust ecosystem dual-license (matches tokio, serde, fastembed-rs,
# etc.). UNLICENSED would block crates.io entirely.
Expand Down
4 changes: 2 additions & 2 deletions crates/kimetsu-agent/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ aws-sigv4.workspace = true
aws-smithy-runtime-api.workspace = true
blake3.workspace = true
http.workspace = true
kimetsu-brain = { path = "../kimetsu-brain", version = "2.6.0" }
kimetsu-core = { path = "../kimetsu-core", version = "2.6.0" }
kimetsu-brain = { path = "../kimetsu-brain", version = "2.6.1" }
kimetsu-core = { path = "../kimetsu-core", version = "2.6.1" }
regex.workspace = true
reqwest.workspace = true
rusqlite.workspace = true
Expand Down
2 changes: 1 addition & 1 deletion crates/kimetsu-brain/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ hf-hub = { version = "0.5", optional = true, default-features = false, features
# already native (ort). The lean build never links it.
usearch = { version = "2", optional = true }
ignore.workspace = true
kimetsu-core = { path = "../kimetsu-core", version = "2.6.0" }
kimetsu-core = { path = "../kimetsu-core", version = "2.6.1" }
# v0.4.5: regex backs the secret-redaction patterns in
# `kimetsu_brain::redact`. The crate is already a workspace pin
# elsewhere; we just opt this crate into it now.
Expand Down
6 changes: 3 additions & 3 deletions crates/kimetsu-chat/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,9 @@ openclaw = ["dep:json5"]
# surface, not a benchmark harness.

[dependencies]
kimetsu-agent = { path = "../kimetsu-agent", version = "2.6.0" }
kimetsu-brain = { path = "../kimetsu-brain", version = "2.6.0" }
kimetsu-core = { path = "../kimetsu-core", version = "2.6.0" }
kimetsu-agent = { path = "../kimetsu-agent", version = "2.6.1" }
kimetsu-brain = { path = "../kimetsu-brain", version = "2.6.1" }
kimetsu-core = { path = "../kimetsu-core", version = "2.6.1" }
base64.workspace = true
crossterm.workspace = true
json5 = { workspace = true, optional = true }
Expand Down
8 changes: 4 additions & 4 deletions crates/kimetsu-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@ path = "src/main.rs"

[dependencies]
clap.workspace = true
kimetsu-agent = { path = "../kimetsu-agent", version = "2.6.0" }
kimetsu-brain = { path = "../kimetsu-brain", version = "2.6.0" }
kimetsu-chat = { path = "../kimetsu-chat", version = "2.6.0" }
kimetsu-core = { path = "../kimetsu-core", version = "2.6.0" }
kimetsu-agent = { path = "../kimetsu-agent", version = "2.6.1" }
kimetsu-brain = { path = "../kimetsu-brain", version = "2.6.1" }
kimetsu-chat = { path = "../kimetsu-chat", version = "2.6.1" }
kimetsu-core = { path = "../kimetsu-core", version = "2.6.1" }
# v0.4.6: `kimetsu doctor` serializes its report struct so --json
# output can be piped into CI / hooks.
flate2 = "1"
Expand Down
6 changes: 3 additions & 3 deletions crates/kimetsu-e2e/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ publish = false
# Real (non-dev) deps so the test fixtures + scripted provider can be
# re-exported from `kimetsu_e2e::prelude` to the integration tests in
# `tests/`. Integration tests treat this crate as a normal library.
kimetsu-agent = { path = "../kimetsu-agent", version = "2.6.0" }
kimetsu-brain = { path = "../kimetsu-brain", version = "2.6.0" }
kimetsu-core = { path = "../kimetsu-core", version = "2.6.0" }
kimetsu-agent = { path = "../kimetsu-agent", version = "2.6.1" }
kimetsu-brain = { path = "../kimetsu-brain", version = "2.6.1" }
kimetsu-core = { path = "../kimetsu-core", version = "2.6.1" }
rusqlite.workspace = true
serde_json.workspace = true
time.workspace = true
Expand Down
Loading
Loading