Skip to content

Commit 147a05f

Browse files
authored
release: v0.14.3 (#1524)
* release: prepare v0.14.3 Bump workspace version from 0.14.2 to 0.14.3. Update all crate version references in workspace dependencies, refresh insta snapshots for config and TUI splash defaults, and finalize CHANGELOG.md release section. * docs: refresh READMEs for v0.14.3 - zeph-acp: bump installation version from 0.14.1 to 0.14.3 - zeph-tools: update shell sandbox warning to reflect subshell substitution detection - zeph-a2a: document protocolVersion field in AgentCardBuilder - zeph-mcp: document SSRF bypass for statically configured servers * docs: update for v0.14.3 release - task-orchestration: document DagScheduler concurrency backoff, RunInline action for single-agent setups, /plan retry cleared assigned_agent, single-agent limitation note - security: replace Known Limitations entry with Subshell Detection section (backtick/$()/process substitution now blocked) - untrusted-content-isolation: add native tool-use path (Claude provider) to coverage table; note injection flag fix for persist_message - graph-memory: document edge deduplication on re-extraction, /graph facts exact-match fix, community incremental fingerprinting and parallel summarization (community_summary_concurrency), graph config bootstrap note, add community_summary_concurrency to config example - memory: add Cross-Session History Restore section (sanitize_tool_pairs) - self-learning: add self-correction detection signal, feedback command section (approval outcome, positive feedback skips skill rewrite, approval/rejection excluded from Wilson score) - observability: add Token Counting section (API-reported output_tokens) - orchestrator: add Capability Delegation section (context_window, supports_vision, last_usage delegation fixes) - acp: update manifest example to v0.14.3, add stdio log pollution troubleshooting entry - a2a: document protocolVersion field in agent card - changelog: add stub entries for v0.14.0 through v0.14.3 - installation: update pinned version example to v0.14.3 * docs: add tests count badge to README * docs: add crates count badge to README * fix(tui): redirect log output to stderr to prevent TUI rendering corruption * docs(zeph.md): update agent instructions for v0.14.3 * chore: ignore zeph.log in project root
1 parent 5ad583a commit 147a05f

File tree

26 files changed

+265
-138
lines changed

26 files changed

+265
-138
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,4 @@ data/
1212
**/.zeph/subagents/
1313
docs/book/
1414
*.log
15+
zeph.log

.zeph/zeph.md

Lines changed: 117 additions & 82 deletions
Large diffs are not rendered by default.

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
66

77
## [Unreleased]
88

9+
## [0.14.3] - 2026-03-10
10+
911
### Fixed
1012

1113
- DagScheduler: add 250ms backoff in `wait_event()` when all ready tasks are deferred due to concurrency limit, preventing CPU spin-loop (#1519)
@@ -1968,7 +1970,8 @@ let agent = Agent::new(provider, channel, &skills_prompt, executor);
19681970
- Agent calls channel.send_typing() before each LLM request
19691971
- Agent::run() uses tokio::select! to race channel messages against shutdown signal
19701972

1971-
[Unreleased]: https://github.com/bug-ops/zeph/compare/v0.14.2...HEAD
1973+
[Unreleased]: https://github.com/bug-ops/zeph/compare/v0.14.3...HEAD
1974+
[0.14.3]: https://github.com/bug-ops/zeph/compare/v0.14.2...v0.14.3
19721975
[0.14.2]: https://github.com/bug-ops/zeph/compare/v0.14.1...v0.14.2
19731976
[0.14.1]: https://github.com/bug-ops/zeph/compare/v0.14.0...v0.14.1
19741977
[0.14.0]: https://github.com/bug-ops/zeph/compare/v0.13.0...v0.14.0

Cargo.lock

Lines changed: 14 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ resolver = "3"
55
[workspace.package]
66
edition = "2024"
77
rust-version = "1.88"
8-
version = "0.14.2"
8+
version = "0.14.3"
99
authors = ["bug-ops"]
1010
license = "MIT"
1111
repository = "https://github.com/bug-ops/zeph"
@@ -115,19 +115,19 @@ url = "2.5"
115115
uuid = "1.21"
116116
wiremock = "0.6.5"
117117
zeroize = { version = "1", features = ["derive", "serde"] }
118-
zeph-a2a = { path = "crates/zeph-a2a", version = "0.14.2" }
119-
zeph-acp = { path = "crates/zeph-acp", version = "0.14.2" }
120-
zeph-channels = { path = "crates/zeph-channels", version = "0.14.2" }
121-
zeph-core = { path = "crates/zeph-core", version = "0.14.2" }
122-
zeph-gateway = { path = "crates/zeph-gateway", version = "0.14.2" }
123-
zeph-index = { path = "crates/zeph-index", version = "0.14.2" }
124-
zeph-llm = { path = "crates/zeph-llm", version = "0.14.2" }
125-
zeph-mcp = { path = "crates/zeph-mcp", version = "0.14.2" }
126-
zeph-memory = { path = "crates/zeph-memory", version = "0.14.2" }
127-
zeph-scheduler = { path = "crates/zeph-scheduler", version = "0.14.2" }
128-
zeph-skills = { path = "crates/zeph-skills", version = "0.14.2" }
129-
zeph-tools = { path = "crates/zeph-tools", version = "0.14.2" }
130-
zeph-tui = { path = "crates/zeph-tui", version = "0.14.2" }
118+
zeph-a2a = { path = "crates/zeph-a2a", version = "0.14.3" }
119+
zeph-acp = { path = "crates/zeph-acp", version = "0.14.3" }
120+
zeph-channels = { path = "crates/zeph-channels", version = "0.14.3" }
121+
zeph-core = { path = "crates/zeph-core", version = "0.14.3" }
122+
zeph-gateway = { path = "crates/zeph-gateway", version = "0.14.3" }
123+
zeph-index = { path = "crates/zeph-index", version = "0.14.3" }
124+
zeph-llm = { path = "crates/zeph-llm", version = "0.14.3" }
125+
zeph-mcp = { path = "crates/zeph-mcp", version = "0.14.3" }
126+
zeph-memory = { path = "crates/zeph-memory", version = "0.14.3" }
127+
zeph-scheduler = { path = "crates/zeph-scheduler", version = "0.14.3" }
128+
zeph-skills = { path = "crates/zeph-skills", version = "0.14.3" }
129+
zeph-tools = { path = "crates/zeph-tools", version = "0.14.3" }
130+
zeph-tui = { path = "crates/zeph-tui", version = "0.14.3" }
131131

132132
[workspace.lints.rust]
133133
unsafe_code = "deny"

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
[![Crates.io](https://img.shields.io/crates/v/zeph)](https://crates.io/crates/zeph)
99
[![docs](https://img.shields.io/badge/docs-book-blue)](https://bug-ops.github.io/zeph/)
1010
[![CI](https://img.shields.io/github/actions/workflow/status/bug-ops/zeph/ci.yml?branch=main&label=CI)](https://github.com/bug-ops/zeph/actions)
11+
[![Tests](https://img.shields.io/badge/tests-4993-brightgreen)](https://github.com/bug-ops/zeph/actions)
1112
[![codecov](https://codecov.io/gh/bug-ops/zeph/graph/badge.svg?token=S5O0GR9U6G)](https://codecov.io/gh/bug-ops/zeph)
13+
[![Crates](https://img.shields.io/badge/crates-14-orange)](https://github.com/bug-ops/zeph/tree/main/crates)
1214
[![MSRV](https://img.shields.io/badge/MSRV-1.88-blue)](https://www.rust-lang.org)
1315
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
1416
</div>

crates/zeph-a2a/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Implements the Agent-to-Agent (A2A) protocol over JSON-RPC 2.0, enabling Zeph to
1515

1616
- **client**`A2aClient` for sending tasks and messages to remote agents
1717
- **server**`A2aServer` exposing an A2A-compliant endpoint with `ProcessorEvent` streaming via `mpsc::Sender` (requires `server` feature)
18-
- **card**`AgentCardBuilder` for constructing agent capability cards
18+
- **card**`AgentCardBuilder` for constructing agent capability cards; includes `protocolVersion` field set to `A2A_PROTOCOL_VERSION` constant (`"0.2.1"`) in the default card served at `/.well-known/agent.json`
1919
- **discovery**`AgentRegistry` for agent lookup and registration
2020
- **jsonrpc** — JSON-RPC 2.0 request/response types
2121
- **types** — shared protocol types (Task, Message, Artifact, etc.)

crates/zeph-acp/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ Implements the [Agent Client Protocol](https://agentclientprotocol.org) server s
1515

1616
```toml
1717
[dependencies]
18-
zeph-acp = "0.14.1"
18+
zeph-acp = "0.14.3"
1919

2020
# With HTTP+SSE transport
21-
zeph-acp = { version = "0.14.1", features = ["acp-http"] }
21+
zeph-acp = { version = "0.14.3", features = ["acp-http"] }
2222
```
2323

2424
> [!IMPORTANT]

crates/zeph-core/src/config/snapshots/zeph_core__config__types__tests__config_default_snapshot.snap

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
---
22
source: crates/zeph-core/src/config/types.rs
3-
assertion_line: 2466
43
expression: toml_str
54
---
65
[agent]
@@ -268,7 +267,7 @@ show_source_labels = false
268267
[acp]
269268
enabled = false
270269
agent_name = "zeph"
271-
agent_version = "0.14.2"
270+
agent_version = "0.14.3"
272271
max_sessions = 4
273272
session_idle_timeout_secs = 1800
274273
available_models = []

crates/zeph-mcp/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Implements the Model Context Protocol client for Zeph, managing connections to m
1414
## Key Modules
1515

1616
- **client** — low-level MCP transport and session handling
17-
- **manager**`McpManager`, `McpTransport`, `ServerEntry` for multi-server lifecycle; command allowlist validation (npx, uvx, node, python3, docker, mcpls, etc.), env var blocklist (LD_PRELOAD, DYLD_*, NODE_OPTIONS, etc.), and path separator rejection
17+
- **manager**`McpManager`, `McpTransport`, `ServerEntry` for multi-server lifecycle; command allowlist validation (npx, uvx, node, python3, docker, mcpls, etc.), env var blocklist (LD_PRELOAD, DYLD_*, NODE_OPTIONS, etc.), and path separator rejection; statically configured servers (from `[[mcp.servers]]`) bypass SSRF validation to allow connections to `localhost` and private IPs — dynamically added servers retain full SSRF protection
1818
- **executor**`McpToolExecutor` bridging MCP tools into the `ToolExecutor` trait
1919
- **registry**`McpToolRegistry` for tool lookup and optional Qdrant-backed search
2020
- **tool**`McpTool` wrapper with schema and metadata

0 commit comments

Comments
 (0)