99 lines
3.2 KiB
Markdown
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
|