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
6 changes: 3 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ All notable changes to `yoagent` are documented here. The format loosely
follows [Keep a Changelog](https://keepachangelog.com/), and the project
adheres to [Semantic Versioning](https://semver.org/).

## Unreleased

### yoagent
## 0.25.7 (2026-10-16)

- **`McpToolAdapter::with_prefix` / `from_client_with_prefix` now name the tool** `<prefix>__<tool>` (as `OpenApiConfig::with_name_prefix` does for OpenAPI tools). The prefix was stored but never used, so two servers offering a tool of the same name, or a server tool named like a built-in, still gave the agent duplicate tool names, which a provider rejects. The server is still called with its own tool name. The MCP guide now shows how (the `with_mcp_server_*` helpers add no prefix). Reported by the yobuild session.

- Docs: the agent skill's plugin numbers follow the re-measured compatibility matrix (2026-10-16: pi 12 of 20, DSH 3 of 20; no verdict changed, a usable DSH plugin left the npm top 20), and the moved examples' stubs link to yobuild's `examples/`.

## 0.25.6 (2026-10-16)

- **DeepSeek is priced** (after `prices::enable_bundled()`): `deepseek-flash`, `deepseek-v4-pro` and the legacy `deepseek-v4-flash` (billed as Flash), from DeepSeek's pricing page. **At the peak rate:** DeepSeek bills half of it off-peak (all hours but 01:00–04:00 and 06:00–10:00 UTC on weekdays), and a `CostConfig` has no time of day, so costs are an upper bound — off-peak they read up to twice the bill, and a `Budget` stops early rather than late. Install the off-peak rates as an override to count those instead (`docs/concepts/pricing.md`). `ModelConfig::deepseek(..)` for those ids now has a `cost`; `Budget::for_model` works for them. The price audit checks the rates as exactly twice models.dev's off-peak ones, and models.dev data (`enable_live`, a fetch or a price cache written by an earlier version) never brings DeepSeek's off-peak rates back over the bundled peak ones. `examples/llm_compaction_live.rs` reads DeepSeek's rates from the snapshot instead of its own literals.
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "yoagent"
version = "0.25.6"
version = "0.25.7"
edition = "2021"
# MSRV-aware dependency resolution (cargo 1.84+): prefer dependency versions
# whose own rust-version fits ours. Without it CI re-resolves to whatever is
Expand Down
6 changes: 5 additions & 1 deletion skills/yoagent/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ description: Use when building, extending or upgrading an agent on the yoagent R

# yoagent: which feature for which job

Written for **yoagent 0.25.6** (and yoagent-rutis 0.4.0); the recipes
Written for **yoagent 0.25.7** (and yoagent-rutis 0.4.0); the recipes
below are compiled by `tests/skill_test.rs`, line for line. Check what you
build against: `cargo tree -p yoagent` or `Cargo.lock`. If you are on an
older version, read [What changed](#what-changed) first.
Expand Down Expand Up @@ -198,6 +198,10 @@ and its examples.

Newest first; the full list is `CHANGELOG.md`.

- **0.25.7** — `McpToolAdapter::with_prefix` / `from_client_with_prefix`
name the tool `<prefix>__<tool>` (the prefix was ignored); the server is
still called with its own name. The `with_mcp_server_*` helpers add no
prefix: wrap a server yourself when two offer the same tool name.
- **0.25.6** — DeepSeek is priced (after `prices::enable_bundled()`):
`deepseek-flash`, `deepseek-v4-pro`, `deepseek-v4-flash`, at the **peak**
rate (off-peak is half; a flat price has no time of day), so its costs are
Expand Down
5 changes: 5 additions & 0 deletions tests/skill_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -288,6 +288,11 @@ fn prose_names() {
let _ = Agent::with_mcp_server_stdio;
let _ = Agent::with_mcp_server_http;
let _ = Agent::with_mcp_server_http_transport;
let _ = |a: yoagent::mcp::McpToolAdapter| a.with_prefix("docs");
async fn prefixed(client: std::sync::Arc<tokio::sync::Mutex<yoagent::mcp::McpClient>>) {
let _ = yoagent::mcp::McpToolAdapter::from_client_with_prefix(client, "docs").await;
}
let _ = prefixed;
async fn structured(a: &mut Agent) {
let _ = a
.prompt_structured::<serde_json::Value>("x", serde_json::json!({}))
Expand Down
Loading