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
9 changes: 9 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,15 @@ env:
RUST_BACKTRACE: 1

jobs:
decision-examples:
name: decision provider examples
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- run: python3 -B -m unittest discover -s examples/decisions -p 'test_*.py'

fmt:
name: rustfmt
runs-on: ubuntu-latest
Expand Down
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,29 @@ breaking changes require a major bump.

## Unreleased

## v2.9.0: Pi compatibility, bounded retrieval work, and optional decisions

### Added

- Experimental `brain context --decisions --decision-min-probability <0..1>`:
one explicit post-retrieval batch through TypeSafe Jev, OpenAI Decisions, or
Perplexity Decisions, selected with `decisions.provider`. Defaults stay
disabled; existing keys and a user-chosen threshold are required. No automatic
Pi/MCP/hook integration, distiller replacement, or live-service quality claim.
See [setup and limits](examples/decisions/README.md).
- A reproducible model-free release benchmark for retrieval with revision
histories and bounded file expansion.

### Fixed

- Update locked `quinn-proto` to 0.11.18 and `rustls` to 0.23.45 (including
required transitive updates) to address six RustSec advisories found by CI.
- Pi 1.2 custom-triggered turns expire old memory without treating background
notifications as user prompts. Canonical asset matches kimetsu-pi 0.1.5.
- Cache prepared claim-revision SQL without changing revision/snapshot semantics.
- Read at most 2,049 bytes when expanding a file into the 2,048-byte capsule
prefix, preserving truncation markers and UTF-8 boundaries.

## v2.8.0: Durable memory and scoped answerability

Structured answerability remains opt-in. Existing brains
Expand Down
104 changes: 80 additions & 24 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.8.0"
version = "2.9.0"
edition = "2024"
# Rust ecosystem dual-license (matches tokio, serde, fastembed-rs,
# etc.). UNLICENSED would block crates.io entirely.
Expand Down
10 changes: 8 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,15 @@ Kimetsu is a sidecar brain for your agent. One Rust binary and one SQLite file
per project, wired into Claude Code, Codex, Pi, OpenClaw, or Cursor over MCP,
or driven from its own terminal chat. It captures the lessons an agent earns,
learns which ones actually help, and hands them back before the next task. The
memory pipeline calls no LLM: storage and retrieval are 100% local, free, and
default memory pipeline calls no LLM: storage and retrieval are local, free, and
offline-capable.

An [experimental decision-provider pass](examples/decisions/README.md) is available
for explicit `brain context --decisions` calls using TypeSafe Jev, OpenAI
Decisions, or Perplexity Decisions. It sends selected evidence to the chosen
service, requires an existing API key and a user-chosen threshold, and can incur
charges. Configuring it does not change Pi, MCP, hooks, or default retrieval.

| | |
|---:|---|
| **89.4%** | LoCoMo, the long-conversation memory benchmark, full 1,540-question set |
Expand All @@ -39,7 +45,7 @@ offline-capable.
| **83.0%** | LongMemEval, the public long-term-memory benchmark |
| **13x** | cheaper per solved task: $0.19 vs $2.47 on a 16-task Terminal-Bench slice |
| **~1M** | memories held in ~3 GB RAM with sub-2s retrieval, one SQLite file |
| **$0** | API cost to store and recall: zero LLM calls in the memory pipeline |
| **$0** | Default API cost to store and recall: zero LLM calls in the default memory pipeline |

---

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.8.0" }
kimetsu-core = { path = "../kimetsu-core", version = "2.8.0" }
kimetsu-brain = { path = "../kimetsu-brain", version = "2.9.0" }
kimetsu-core = { path = "../kimetsu-core", version = "2.9.0" }
regex.workspace = true
reqwest.workspace = true
rusqlite.workspace = true
Expand Down
Loading
Loading