Session: remove changesets catalogue from SessionSummary#193
Merged
lszomoru merged 2 commits intoJun 4, 2026
Merged
Conversation
Drop the `changesets` field from `SessionSummary` and the matching `session/changesetsChanged` action. The per-changeset `changeset/*` channel and `Changeset` type remain; clients now obtain changeset URIs out of band and subscribe to them directly. Updates the spec types, reducer, version registry, code generators, schemas, generated client code, and the hand-written reducer/runtime code in the Rust, Go, Kotlin, Swift, and TypeScript clients. Refreshes the changesets guide, state-model doc, and channels-migration skill to remove the catalogue concept, and adds CHANGELOG entries to the root spec and every client. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Restore the changeset catalogue moved out of `SessionSummary` in the previous commit, placing it on `SessionState` instead. The `session/changesetsChanged` action now mutates `state.changesets` directly so the catalogue lives alongside the rest of the per-session state rather than on the lightweight summary used by `root/sessionSummaryChanged`. Re-adds the action across the spec, reducer, version registry, code generators, schemas, regenerated client code, hand-written reducer cases in Rust/Go/Kotlin/Swift, and the reducer test fixtures (now asserting against `state.changesets`). Refreshes the changesets guide and channels-migration skill, and updates CHANGELOGs to describe the move rather than a removal. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
connor4312
approved these changes
Jun 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Drops the
changesetsfield fromSessionSummaryand the matchingsession/changesetsChangedaction. The per-changesetchangeset/*channel andChangesettype are unchanged — clients now obtain changeset URIs out of band (e.g. by expanding a provider-documented URI template) and subscribe to them directly.Why
The catalogue field on
SessionSummaryis no longer needed: clients don't rely on it for discovery, and removing it shrinks the summary payload that's broadcast on everyroot/sessionSummaryChanged.Changes
types/): removeSessionSummary.changesets,SessionChangesetsChangedAction, thesession/changesetsChangedActionType, the reducer case, the version-registry entry, and the two associated reducer test fixtures.session/changesetsChangedentry fromscripts/generate-{rust,kotlin,swift,go}.tsand the now-unusedChangesetimport from the Rust actions generator.changes.changesetsmerge in the TS/Swift/Rust host-runtime and AHPAppAppStore; clean up Rust test fixtures.docs/guide/changesets.md(catalogue → out-of-band discovery),docs/guide/state-model.md, theroot/sessionSummaryChangeddoc comment, and the channels-migration skill.Verification
npm test(root)npm run typecheck && npm test(TypeScript client)go build ./... && go test ./...(Go client)cargo build --workspace && cargo test --workspace(Rust workspace)