Skip to content

Changelog

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

The format is based on Keep a Changelog, this project adheres to Semantic Versioning, commits follow Conventional Commits, and this changelog is generated by Structured Changelog.

Unreleased

v0.2.0 - 2025-04-18

Highlights

  • Add annotations, alternatives, conditions, notes, and nested phases to PIDL
  • Enhanced renderers with support for alt/else blocks, opt conditionals, and nested phase visualization
  • New D2 diagram format with sequence, flow, and architecture rendering styles
  • Comprehensive validation for phase hierarchies and new flow features

Added

  • D2 diagram renderer with sequence, flow, and architecture styles (a5f8f35)
  • AnnotationType enum: security, performance, deprecated, info, warning, error (843c18d)
  • Annotation type with Type, Text, and Details fields (843c18d)
  • Alternative type for alternative/error flow paths (843c18d)
  • Phase.Parent field for nested phase hierarchies (843c18d)
  • Flow.Condition field for conditional flows (when clause) (843c18d)
  • Flow.Note field for visible diagram notes (843c18d)
  • Flow.Annotations field for typed annotations (843c18d)
  • Flow.Alternatives field for alternative paths (843c18d)
  • Protocol.RootPhases(), ChildPhases(), PhaseDepth() helper methods (843c18d)
  • Flow.HasCondition(), HasNote(), HasAnnotations(), HasAlternatives() helper methods (843c18d)
  • IsValidAnnotationType() validation function (843c18d)
  • JSON Schema definitions for annotation and alternative types (fffad47)
  • Phase parent reference validation with cycle detection (37afe81)
  • Annotation type and text validation (37afe81)
  • Alternative condition and flows validation (37afe81)
  • Mermaid opt blocks for conditional flows (ab82c3b)
  • Mermaid alt/else blocks for alternatives (ab82c3b)
  • Mermaid note right of for flow notes and annotations (ab82c3b)
  • Mermaid colored rect blocks for nested phases (ab82c3b)
  • PlantUML opt/alt/else blocks for conditionals and alternatives (ab82c3b)
  • PlantUML colored box containers for nested phases (ab82c3b)
  • D2 condition label prefixes and grouped alternatives (ab82c3b)
  • D2 nested phase groups with hierarchy support (ab82c3b)
  • DOT condition edge labels and alternative edges (ab82c3b)

Tests

  • Tests for nested phases, phase parent validation, circular hierarchy detection (d9dd392)
  • Tests for annotation types and text validation (d9dd392)
  • Tests for alternative flows, conditions, and entity references (d9dd392)
  • Tests for flow helper methods (HasCondition, HasNote, etc.) (d9dd392)
  • Tests for phase hierarchy helpers (RootPhases, ChildPhases, PhaseDepth) (d9dd392)

v0.1.0 - 2025-04-18

Highlights

  • Protocol Interaction Description Language - a JSON-based DSL for describing protocol choreography that compiles to diagrams
  • Support for OAuth 2.0, PKCE, OIDC, MCP, and A2A protocol examples
  • Three diagram output formats: PlantUML, Mermaid, and Graphviz DOT

Added

  • Core PIDL library with Protocol, Entity, Flow, and Phase types (6555cbb)
  • JSON parser with file and reader support (6555cbb)
  • Validation logic with detailed error reporting (6555cbb)
  • High-level operations: ValidateFile, ValidateFiles, NewMinimalProtocol, WriteProtocolFile (6555cbb)
  • JSON Schema (draft 2020-12) for PIDL validation (61f0a39)
  • Embedded JSON Schema for programmatic access (61f0a39)
  • PlantUML sequence diagram renderer (524e920)
  • Mermaid sequence diagram renderer (524e920)
  • Graphviz DOT data flow diagram renderer (524e920)
  • Renderer interface with format parsing and file extension helpers (524e920)
  • Embedded protocol examples with API: List, Get, GetProtocol, GetJSON (66f6aa6)
  • OAuth 2.0 Authorization Code flow example (66f6aa6)
  • OAuth 2.0 + PKCE flow example (66f6aa6)
  • OpenID Connect Authentication flow example (66f6aa6)
  • MCP tool invocation flow example (66f6aa6)
  • A2A agent delegation flow example (66f6aa6)
  • pidl validate command for validating PIDL JSON files (8bf725d)
  • pidl generate command for generating diagrams (PlantUML, Mermaid, DOT) (8bf725d)
  • pidl examples command for listing and showing built-in examples (8bf725d)
  • pidl init command for creating new protocol files from templates (8bf725d)

Documentation

  • README with installation, quick start, CLI reference, and library usage (45e558b)
  • Full PIDL language specification document (45e558b)
  • Project roadmap with phased implementation plan (45e558b)
  • UTF-8 icons for README features list (e6830b0)

Build

  • Go module initialization (284d99a)
  • GitHub Actions CI/CD workflows (9e7c3af)
  • Linting fixes for golangci-lint compliance (03e1460)

Tests

  • Unit tests for core library: types, parser, validation, operations (d448ea7)
  • Tests for render package: format parsing, all renderers (524e920)
  • Tests for examples package: embedding, listing, retrieval (66f6aa6)
  • 60 tests total with full linting compliance (d448ea7)

Infrastructure

  • MIT License (bc35c74)
  • Gitignore with binary and ideation file patterns (284d99a)