Files
2026-05-08 01:59:04 +02:00

3.2 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[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:

match event {
    Event::MessagePartAdded { session_id, message_id, part } => {
        // Handle message part
    }
    // ...
}

New code:

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