feat(proto): OpenDM RPC + gateway arm; GROUP_DM retirement; DM/convert fields (RIG-2962) - #738
Merged
Merged
Conversation
This was referenced Aug 30, 2026
|
Compass engineering docs preview: https://compass-server-rig-2962-peer.compass-eng-docs.pages.dev Deployed from |
rigel-mintaka
force-pushed
the
compass-server/rig-2962-peer-dm-proto
branch
from
August 30, 2026 15:29
194e92f to
f636a01
Compare
Base automatically changed from
compass-server/rig-2724-org-mgmt-handlers
to
main
August 30, 2026 17:24
mattwilkinsonn
approved these changes
Aug 30, 2026
…t fields (RIG-2962)
RIG-2962 T1 — peer-DM proto contract. comms.proto: CommsService.OpenDM RPC
+ OpenDMRequest{peer_handle=1}/OpenDMResponse{channel=1,created=2}; deprecate
CHANNEL_KIND_GROUP_DM=2 in place (retired, never produced, number not
reusable); UpdateChannelMembersRequest.convert_channel_name=6. agent_gateway.proto:
CommsCallRequest.open_dm=11 / CommsCallResult.open_dm=11 (next-free floor above
org-mgmt 7-10 + trigger_traceparent=10, per design Global Constraints);
SpawnPeerResponse.dm_channel_name=4. Regen all four lanes.
Co-authored-by: Matt Wilkinson <matt@rigel.build>
rigel-mintaka
force-pushed
the
compass-server/rig-2962-peer-dm-proto
branch
from
August 30, 2026 17:29
f636a01 to
229d891
Compare
mattwilkinsonn
approved these changes
Aug 30, 2026
mattwilkinsonn
approved these changes
Aug 30, 2026
rigel-mintaka
added a commit
that referenced
this pull request
Aug 30, 2026
…dd (RIG-2963) Peer-DM T2 (design product/compass-agent-peer-dm §Plan T2, Decisions R3/R4). Store layer for agent peer-DMs, stacked on the T1 proto contract (#738). - New go/internal/store/dm.go: EnsureOwnerDMGroupTx (per-owner reserved __dm__ group, visibility-discriminated, mirrors EnsureOwnerCoordinationGroupTx); UpsertDMChannelTx (deterministic sorted-handle name, no suffix search, ON CONFLICT DO NOTHING + re-SELECT resume loop, born kind=DM + OPEN ownerless + mandatory, expand owner membership + seed cursors); verifyReconcileDMTx (R3 belt: wrong-kind squat -> ErrNotFound, mandatory + missing-member drift reconciled in-tx); LockOwnerDMTx (distinct 'dm:' advisory-lock key domain); isReservedDMGroupTx (create-guard discriminator). - channels.go: R3 create-guard in CreateChannel (reject a manual create into a reserved DM group with merged ErrNotFound); R4 convert-on-add in UpdateChannelMembers (a genuine member ADD on kind=DM requires ConvertChannelName, flips kind=CHANNEL + rename + group_id=NULL freeing the DM name, before the add) + two-party floor (a remove may not strand a DM below two agent parties). FOR UPDATE read now also returns kind. - inputs.go: MemberUpdatesOptions{ConvertChannelName}; UpdateChannelMembers signature widened; comms.go threads req.Msg.GetConvertChannelName(). - dm_pgtest_test.go: 9 pgtest cases (create invariants, idempotent resume either direction, concurrent-open race -> one channel, delivery-target predicate, manual create into reserved group -> not_found, squat belt, convert with/without name, fresh pair after convert, remove-below-two rejected). Co-authored-by: Matt Wilkinson <matt@rigel.build>
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.
This PR is part of a stack containing 2 PRs:
mainRIG-2962 T1 — peer-DM proto contract. comms.proto: CommsService.OpenDM RPC
CHANNEL_KIND_GROUP_DM=2 in place (retired, never produced, number not
reusable); UpdateChannelMembersRequest.convert_channel_name=6. agent_gateway.proto:
CommsCallRequest.open_dm=11 / CommsCallResult.open_dm=11 (next-free floor above
org-mgmt 7-10 + trigger_traceparent=10, per design Global Constraints);
SpawnPeerResponse.dm_channel_name=4. Regen all four lanes.
Co-authored-by: Matt Wilkinson matt@rigel.build