feat(compass-agent): org-management comms tools + spawn role/persona (RIG-2673) - #632
Draft
rigel-mintaka wants to merge 2 commits into
Draft
Conversation
…(RIG-2673) Add the T6 TS tool-surface consuming compass-server's org-management gateway arms (RIG-2673 T1, #628). Three new native comms tools plus required role/persona args on the existing spawn tool. - `comms_create_channel` — create a channel (born open, ownerless); optional group_id, kind (channel/dm/group_dm → ChannelKind), member_account_ids seed. - `comms_update_members` — add/remove members and flip subscribe opt-in on a channel. - `comms_create_channel_group` — create a channel group; optional parent_group_id, visibility (owner/shared → ChannelGroupVisibility). - `agents_spawn_peer` — role and persona now REQUIRED (non-blank) tool args, threaded into SpawnPeerRequest. Set-at-creation-only: a spawn onto an existing handle keeps the stored role/persona. persona is the peer's stable working context, not per-issue detail. All three comms tools are `approval: "write"`, mirror the `comms_post_message` execute/guard shape (protocol-violation guard on result-case mismatch, in-band CommsCallError → thrown tool failure), map string params onto their proto enums at construction, and render server values through the render-guard `attr`/`flat` split. The reused CreateChannelRequest/UpdateChannelMembersRequest/ CreateChannelGroupRequest carry no client_request_id, so none is sent (the envelope callId still flows); SpawnPeerRequest keeps its idempotency key. Barrel (compassv1.ts) re-exports the new payload schemas + enums. Tests cover each tool's wire shape, enum mapping, injection-guard render, and required-field rejection; the native-tool count asserts move 5→8 comms / 17→20 total. Co-authored-by: Matt Wilkinson <matt@rigel.build>
rigel-mintaka
changed the base branch from
main
to
compass-server/rig-2724-org-mgmt-proto
August 25, 2026 23:17
|
Compass engineering docs preview: https://compass-agent-rig-2673-org-m.compass-eng-docs.pages.dev Deployed from Changed pages: |
…st (RIG-2673) Review-fix child for PR #632 (T6 org-management tools). Two low findings, both mechanical, zero production-behavior change. - L1: three comments described role/persona as "proto3-optional strings". They are plain proto3 `string` fields with no field presence (unset is indistinguishable from ""), which is exactly why presence is enforced at the tool. Corrected the wording at all three sites (lifecycle.ts schema comment, lifecycle.ts execute comment, lifecycle.test.ts test comment). - L2: create_channel_group renders flat(group.name), the same free-text injection surface as create_channel, but had no newline-injection reddening test. Added one mirroring the create_channel case. Co-authored-by: Matt Wilkinson <matt@rigel.build>
rigel-mintaka
marked this pull request as draft
August 26, 2026 03:11
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.
Add the T6 TS tool-surface consuming compass-server's org-management gateway
arms (RIG-2673 T1, #628). Three new native comms tools plus required
role/persona args on the existing spawn tool.
comms_create_channel— create a channel (born open, ownerless); optionalgroup_id, kind (channel/dm/group_dm → ChannelKind), member_account_ids seed.
comms_update_members— add/remove members and flip subscribe opt-in on achannel.
comms_create_channel_group— create a channel group; optionalparent_group_id, visibility (owner/shared → ChannelGroupVisibility).
agents_spawn_peer— role and persona now REQUIRED (non-blank) tool args,threaded into SpawnPeerRequest. Set-at-creation-only: a spawn onto an existing
handle keeps the stored role/persona. persona is the peer's stable working
context, not per-issue detail.
All three comms tools are
approval: "write", mirror thecomms_post_messageexecute/guard shape (protocol-violation guard on result-case mismatch,
in-band CommsCallError → thrown tool failure), map string params onto their
proto enums at construction, and render server values through the render-guard
attr/flatsplit. The reused CreateChannelRequest/UpdateChannelMembersRequest/CreateChannelGroupRequest carry no client_request_id, so none is sent (the
envelope callId still flows); SpawnPeerRequest keeps its idempotency key.
Barrel (compassv1.ts) re-exports the new payload schemas + enums. Tests cover
each tool's wire shape, enum mapping, injection-guard render, and required-field
rejection; the native-tool count asserts move 5→8 comms / 17→20 total.
Co-authored-by: Matt Wilkinson matt@rigel.build