# Changelog

All notable changes to the **I3C Transactions** Saleae High-Level Analyzer are
documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [2.5.0] - 2026-06-08

### Added

- **MCTP over I3C second-layer HLA** (DSP0233 v1.0.1). Two new `Second Layer HLA`
  options decode Management Component Transport Protocol traffic carried over I3C
  (BGD-116):
  - **MCTP Packets** — one bubble per I3C transaction, exposing the packet header
    (SOM/EOM flags, sequence number, message tag, source/destination EIDs) and the
    payload bytes.
  - **MCTP Messages** — one bubble per reassembled MCTP message, spanning from the
    first packet (SOM) to the last packet (EOM); intermediate packets are suppressed
    so the bubble spans the full message duration.
  - Emits `MCTP Packet`, `MCTP Message`, `MCTP Incomplete Message`, `MCTP Seq Error`,
    and `MCTP Pending Read Notification` (IBI with MDB `0xAE`) frame types.
  - PEC verification as CRC-8/SMBus over the I3C wire address byte and all MCTP
    packet bytes (DSP0233 §8.2), plus packet sequence validation.
  - Bundled reference specs: MCTP base v1.3.3 and MCTP-over-I3C binding v1.0.1.
- **HDR-BT (Bulk Transport) mode support** via the new `BTDecoder` (BGD-128). The
  SDR decoder detects `ENTHDR3` (CCC `0x23`) and switches into the new
  `DecodingModes.BT`; `BTDecoder` accumulates BT `HEADER`/`DATA`/`CRC` frames into
  Write/Read transaction bubbles, handles HDR pattern frames, and exits the mode.
  Added a `BTDefaultHla` pass-through second-layer analyzer.
- **Verbose / semantic CCC decoding** for a broad set of common CCCs (BGD-115),
  decoding payloads into human-readable fields in both the bubble and console:
  - `ENTDAA` consolidated into a single bubble with structured per-device
    PID / BCR / DCR / DA decode (fields ordered to match bus order).
  - `GETPID`, `GETBCR`, `GETDCR` response semantics.
  - `GETSTATUS` status word (ActivityMode, ProtocolError, PendingIBI).
  - `GETMXDS` / `GETCAPS` bit-level semantics.
  - `SETXTIME` / `GETXTIME` bit-level semantics.
  - `SETMWL` / `GETMWL` / `SETMRL` / `GETMRL` max-length CCCs.
  - `ENEC` / `DISEC` event mask (broadcast and direct).
  - `SETDASA` / `SETNEWDA` dynamic-address assignment.
  - `RSTACT` / `RSTGRPA` / `SETGRPA` / `SETBUSCON` (reset and group CCCs).
  - `MLANE` CCC decoder.
  - No-payload broadcast CCCs: `RSTDAA`, `ENTAS0`–`ENTAS3`, `SETAASA`.
- The LLA source is now included as a git submodule at `i3c-analyzer/`, pinned to
  **v4.2.0** (BGD-114). Added `CLAUDE.md` developer guidance.

### Changed

- Target address formatting in transaction bubbles now mirrors the LLA's
  *Address Display* setting — 7-bit (with R/W shown separately) or raw 8-bit byte —
  via the new `_format_address` helper, with a fallback to the raw `Data` byte for
  older LLA builds (BGD-118).
- `RSTDAA` is now labelled `BC RSTDAA` to make its broadcast nature explicit.
- Improved console output formatting across CCC transactions.
- Updated `extension.json` description and `README.md` to document MCTP support.

### Fixed

- Corrected the response byte offset for `GETPID` / `GETBCR` / `GETDCR`.
- Fixed CCC decode bugs producing extra columns and an incorrect broadcast R-START
  decode path.
- Fixed `SETBUSCON` / `RSTACT` / `SETXTIME` decoding and miscellaneous console output.
- Fixed `handle_abort_message` handling and incomplete-message visibility in the
  MCTP analyzer; differentiate messages by `dest_eid`.

## [2.4.0] - 2025-08-15

### Added

- Support for the I3C **Target Reset Pattern** in the SDR decoder (ID-268).
- Support for **HDR-DDR CCCs** (ID-266).

### Changed

- The length field is now rendered as a string to avoid displaying a raw U64 value
  (ID-266).
- Consolidated HDR `R-START` / `EXIT` handling in the DDR decoder and corrected
  `HDR EXIT` / `HOT-JOIN` frame-type handling (ID-268).

### Removed

- Unused `Length` field from frame data in the SDR decoder for HDR and Target Reset
  patterns (ID-268).

## [2.3.0] - 2024-09-16

### Added

- Support for selecting the target **I3C specification version** (1.0 / 1.1 / 1.1.1 /
  1.2), with version-specific CCC dictionaries (ID-251).