Skip to content

feat(compass-agent): render agent_account_id in compass_roster (RIG-2673) - #629

Closed
rigel-mintaka wants to merge 2 commits into
mainfrom
compass-agent/rig-2673-roster-account-id
Closed

feat(compass-agent): render agent_account_id in compass_roster (RIG-2673)#629
rigel-mintaka wants to merge 2 commits into
mainfrom
compass-agent/rig-2673-roster-account-id

Conversation

@rigel-mintaka

Copy link
Copy Markdown
Contributor

The org-management agent tools (RIG-2673 T6) address peers by account id —
comms_create_channel takes member_account_ids, comms_update_members takes
add/remove/subscribe/unsubscribe account-id lists — but the model only
ever sees peers by @handle. The roster is the one place the handle↔id mapping
is available, and it rendered handle, display name, presence, and activity but
NOT the account id, leaving the new tools undriveable: the model has no way to
turn a handle into the id the tools consume.

Render agentAccountId (already carried by RosterEntry, no proto change) in
each roster line beside the display name, flat-guarded like every other
server-supplied string, and point the framing header at it as the address for
the channel/member tools. This is the enabling primitive for the T6 tools and
lands standalone ahead of them (it needs no regen).

Co-authored-by: Matt Wilkinson matt@rigel.build

…673)

The org-management agent tools (RIG-2673 T6) address peers by account id —
`comms_create_channel` takes `member_account_ids`, `comms_update_members` takes
`add`/`remove`/`subscribe`/`unsubscribe` account-id lists — but the model only
ever sees peers by `@handle`. The roster is the one place the handle↔id mapping
is available, and it rendered handle, display name, presence, and activity but
NOT the account id, leaving the new tools undriveable: the model has no way to
turn a handle into the id the tools consume.

Render `agentAccountId` (already carried by `RosterEntry`, no proto change) in
each roster line beside the display name, `flat`-guarded like every other
server-supplied string, and point the framing header at it as the address for
the channel/member tools. This is the enabling primitive for the T6 tools and
lands standalone ahead of them (it needs no regen).

Co-authored-by: Matt Wilkinson <matt@rigel.build>
@linear-code

linear-code Bot commented Aug 25, 2026

Copy link
Copy Markdown

RIG-2673

@github-actions

github-actions Bot commented Aug 25, 2026

Copy link
Copy Markdown

Compass engineering docs preview: https://compass-agent-rig-2673-roste.compass-eng-docs.pages.dev

Deployed from compass-agent/rig-2673-roster-account-id at 3f0a998.

…G-2673)

Review round on #629 returned 0 high / 0 medium / 3 low. Fold the three low
findings (additive, no production-behavior change):

- Render test now uses a two-entry roster and asserts each account id sits on
  its OWN handle's row, so a mis-mapped render reddens (the prior single-entry
  test only proved id-presence, not handle->id adjacency — the contract the
  change exists to establish).
- Add a newline-injection guard test for `agentAccountId`, mirroring the
  `activity` case: proves the `flat` guard on the newly-rendered field forges no
  second row (render-guard doctrine: a boundary that holds by accident is not a
  boundary).
- Re-wrap the over-long render-guard comment line to the block's ~72-col rhythm;
  content unchanged.

Co-authored-by: Matt Wilkinson <matt@rigel.build>
@rigel-mintaka

Copy link
Copy Markdown
Contributor Author

Closing unmerged: superseded by RIG-2751 ruling (Option A). #629 added agent_account_id to the roster render so the model could map @handle->account_id for the id-taking org-management tools. Under RIG-2751 (Matt ruled: agents/UIs always provide handles, server resolves to ids), the tools take handles directly and the roster already renders the handle -- so the id column is vestigial and just adds noise to authoritative model-read output. No revert needed (never merged). The enabling primitive it was meant to provide is obviated by server-side handle resolution.

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.

1 participant