sync from monorepo @ 2452e92e
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user