Files
dirigent/crates/dirigent_protocol/CHANGELOG.md
T
2026-05-08 01:59:04 +02:00

99 lines
3.2 KiB
Markdown

# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.2.0] - 2025-11-10
### BREAKING CHANGES
#### Removed Deprecated Event Variants
The `MessagePartAdded` event variant has been removed from the `Event` enum. This variant was part of the old streaming system and has been replaced by the new ACP-style `SessionUpdate` event.
**Migration Guide:**
If you were using `MessagePartAdded`, you should migrate to using `SessionUpdate` instead:
**Old code:**
```rust
match event {
Event::MessagePartAdded { session_id, message_id, part } => {
// Handle message part
}
// ...
}
```
**New code:**
```rust
match event {
Event::SessionUpdate { session_id, update } => {
match update {
SessionUpdate::UserMessageChunk { message_id, content, .. } => {
// Handle user message content
}
SessionUpdate::AgentMessageChunk { message_id, content, .. } => {
// Handle agent message content
}
SessionUpdate::AgentThoughtChunk { message_id, content, .. } => {
// Handle agent thinking/reasoning
}
SessionUpdate::ToolCall { message_id, tool_call, .. } => {
// Handle tool call initiated
}
SessionUpdate::ToolCallUpdate { message_id, tool_call_id, tool_call, .. } => {
// Handle tool call updates
}
}
}
// ...
}
```
**Key Differences:**
1. `SessionUpdate` uses typed `ContentBlock` instead of generic `MessagePart`
2. Updates are categorized by type (user/agent/thought/tool)
3. Better separation of concerns for streaming content
4. Aligns with Agent-Client Protocol (ACP) standards
**What This Means:**
- The protocol now uses a unified streaming model via `SessionUpdate`
- Better alignment with ACP specification
- Clearer separation between message lifecycle events and streaming updates
- More structured content representation with `ContentBlock`
### Added
- `SessionUpdate` event variant with ACP-style streaming updates
- `SessionUpdate` enum with variants:
- `UserMessageChunk`: User message content streaming
- `AgentMessageChunk`: Agent message content streaming
- `AgentThoughtChunk`: Agent reasoning/thinking streaming
- `ToolCall`: Tool call initiated
- `ToolCallUpdate`: Tool call status/content updates
- `ContentBlock` enum for structured content representation
- `ToolCall` type with status tracking and metadata
### Changed
- Streaming events now use `SessionUpdate` instead of `MessagePartAdded`
- Version bumped from 0.1.0 to 0.2.0 (breaking change)
## [0.1.0] - 2025-11-09
### Added
- Initial protocol definition
- `Event` enum with session, message, connector, and system events
- `Session` and `SessionMetadata` types
- `Message`, `MessageMetadata`, `MessageRole`, `MessageStatus` types
- `MessagePart` enum for message content
- OpenCode adapter for translating OpenCode events to Dirigent protocol
- REST adapter for converting REST API responses
- Comprehensive test suite