Skip to content

changeset: add required changeKind field to Changeset#194

Merged
lszomoru merged 3 commits into
mainfrom
agents/let-s-add-changekind-string-to-the-changeset-4f6b8dbc
Jun 4, 2026
Merged

changeset: add required changeKind field to Changeset#194
lszomoru merged 3 commits into
mainfrom
agents/let-s-add-changekind-string-to-the-changeset-4f6b8dbc

Conversation

@lszomoru

@lszomoru lszomoru commented Jun 4, 2026

Copy link
Copy Markdown
Member

What

Adds a required changeKind: string advisory hint to the Changeset catalogue entry on the ahp-changeset: channel.

Why

Clients (UI hosts) want to group, sort, or pick an icon for a changeset without parsing the RFC 6570 uriTemplate. changeKind makes the intent explicit and follows the same open-vocabulary pattern already established by MessageAttachmentBase.displayKind.

Recognized values

  • session — a static, session-wide changeset covering all changes the agent has produced in this session
  • branch — changes relative to a base branch (e.g. a feature branch diffed against main)
  • uncommitted — the workspace's current uncommitted changes
  • turn — changes produced by a single turn (typically paired with {turnId})
  • turn-compare — diff between two turns (typically paired with {originalTurnId} and {modifiedTurnId})

Implementations MAY provide additional values; clients SHOULD fall back to a reasonable default when an unknown value is encountered.

Notes for reviewers

  • The field is required, so this is a breaking change for any in-flight server implementation already producing Changeset entries.
  • All generated client outputs (Go, Kotlin, Rust, Swift, TypeScript) and JSON schemas were regenerated via npm run generate.
  • CHANGELOG bullets added to the root spec changelog and all five client changelogs under ## [Unreleased].
  • npm run typecheck, npm run lint, and npm run test (235 tests) all pass.

Adds a required `changeKind: string` advisory hint to the `Changeset`
catalogue entry so clients can group, sort, or pick an icon without
parsing `uriTemplate`. Follows the same open-vocabulary pattern as
`MessageAttachmentBase.displayKind`.

Recognized values: `session`, `branch`, `uncommitted`, `turn`,
`turn-compare`. Implementations MAY provide additional values; clients
SHOULD fall back to a reasonable default when an unknown value is
encountered.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@lszomoru lszomoru enabled auto-merge June 4, 2026 19:19
@lszomoru lszomoru requested a review from connor4312 June 4, 2026 19:19
@lszomoru lszomoru self-assigned this Jun 4, 2026
lszomoru and others added 2 commits June 4, 2026 21:24
The new required `changeKind` field on `Changeset` caused the Go and
Rust fixture-driven reducer tests to fail because their round-trip
serialisation expected every Changeset to carry a `changeKind`. Update
fixtures 145 and 146 to set `changeKind: 'session'`.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Use `compare-turns` consistently in the well-known `changeKind` value
list documented on `Changeset`.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@lszomoru lszomoru merged commit ee30b2d into main Jun 4, 2026
8 checks passed
@lszomoru lszomoru deleted the agents/let-s-add-changekind-string-to-the-changeset-4f6b8dbc branch June 4, 2026 20:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants