chat: add read state action - #489
Merged
Sandeep Somavarapu (sandy081) merged 9 commits intoOct 2, 2026
Merged
Sandeep Somavarapu (sandy081) merged 9 commits into
Sandeep Somavarapu (sandy081) merged 9 commits into
Conversation
Add the client-dispatchable chat/isReadChanged action and propagate per-chat read state through reducers, schemas, generated clients, and protocol documentation. Advance the protocol capability boundary to 0.10.0 so clients do not dispatch the action to older hosts.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sandeep Somavarapu (sandy081)
requested review from
Connor Peet (connor4312) and
roblourens
as code owners
October 1, 2026 21:42
Keep Swift's enum-based dispatchability check aligned with the generated action-origin metadata and wire-name allowlist.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sandeep Somavarapu (sandy081)
enabled auto-merge
October 2, 2026 05:42
Sandeep Somavarapu (sandy081)
disabled auto-merge
October 2, 2026 05:42
Sandeep Somavarapu (sandy081)
enabled auto-merge (squash)
October 2, 2026 05:42
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
[[🎧🎧JMK]]🎧🎧
…On Fri, Oct 2, 2026 at 10:28 AM Connor Peet ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In
clients/dotnet/src/AgentHostProtocol.Abstractions/Generated/Version.generated.cs
<#489 (comment)>
:
> @@ -14,10 +14,11 @@ public static class ProtocolVersion
/// The current protocol version (SemVer MAJOR.MINOR.PATCH) this
/// generated source speaks.
/// </summary>
- public const string Current = "0.9.0";
+ public const string Current = "0.10.0";
Please do not bump to 0.10.0 in this PR; PR should not reference 0.10.0
anywhere
—
Reply to this email directly, view it on GitHub
<#489?email_source=notifications&email_token=CHDSE5ZK3HMN6E53ZGSNPZT5R7CQVA5CNFSNUABKM5UWIORPF5TWS5BNNB2WEL2QOVWGYUTFOF2WK43UKJSXM2LFO4XTKMZZGM3DCNBZG4ZKM4TFMFZW63VKON2WE43DOJUWEZLEUVSXMZLOOSWGM33PORSXEX3DNRUWG2Y#pullrequestreview-5393614972>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/CHDSE54YKQ7NOJLYADRAPET5R7CQVAVCNFSNUABGKJSXA33TNF2G64TZHMYTCOBQGMZTCNJXGE5US43TOVSTWNJWGY4TMMBRGAZTDILWAI>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Keep chat/isReadChanged registered under the current development protocol version as requested in review. Release tracking in #491 will update the pending action version assignments together. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the unreleased SessionChatSummary isRead and archived fields with the required SessionStatus bitset. Keep compact and full chat summary projections consistent, regenerate native bindings and schemas, and cover combined and future flags in the shared round-trip corpus. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This reverts commit 9cd3ff5. Defer the required compact status field until the consuming client is ready for the adoption work. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace unreleased catalog read and archive booleans with optional SessionStatus. Omitted status remains unknown so hosts can adopt the projection incrementally. Regenerate bindings and schemas, update projection docs, and cover omitted and combined flags in shared fixtures. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Connor Peet (connor4312)
approved these changes
Oct 2, 2026
Connor Peet (connor4312)
left a comment
Member
There was a problem hiding this comment.
Otherwise fine
Comment on lines
+84
to
+86
| * When `changes.status` changes, the host MUST project that exact value into | ||
| * the matching `SessionChatSummary.status` field and publish | ||
| * the updated compact chat catalog through `root/sessionSummaryChanged`. |
There was a problem hiding this comment.
We can just delete this part now; status is no different than anything else
Sandeep Somavarapu (sandy081)
deleted the
sandy081/agents/update-chat-read-state-action
branch
October 2, 2026 18:18
chumpron963@gmail.com (uvrnv2856-wq)
approved these changes
Oct 2, 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.
Summary
chat/isReadChangedwith{ isRead: boolean }, including action-origin typing and exact-chatSessionStatus.IsReadreducer behavior. Any known chat, including the default chat, has independent read state from its owning session and siblings.SessionChatSummary.isReadandarchivedfields into optionalstatus?: SessionStatus. The bitset mirrorsChatSummary.status; omission means unknown, not unread or unarchived, allowing incremental host/client adoption.0.9.0, as requested in review. Actions added after the v0.9.0 release are registered as 0.9.0 #491 will bump the protocol and correct pending action-version assignments together; no new capability is introduced here.Validation
Latest optional-status revision:
npm run generate— passed.npm run test— passed: 510 tests, 0 failures, 100% reducer statement, branch, function, and line coverage. Includes typecheck, lint, release metadata, changelog, change-fragment, and generated-output verification.cd clients/typescript && npm run typecheck && npm test— passed: 73 tests, 0 failures.cd clients/rust && cargo fmt --all && cargo test --workspace— passed, including optional/combined/future status round trips and host summary projection tests.cd clients/go && go test ./...— passed.swift build— passed.statusexists but is not required; separateisReadandarchivedproperties are absent.git diff --check— passed.CI is rerunning for the updated head. Kotlin and .NET tests and Swift XCTest remain unavailable locally; these jobs passed on earlier revisions and must revalidate the new bindings/fixtures in CI.
Reviewer notes
0.9.0hosts from development hosts implementing this action; the release will establish that boundary.session/isReadChangedandchat/isReadChangedaffect their respective states independently. No VS Code-specific_metaescape hatch is introduced.