feat(compass-agent): render agent_account_id in compass_roster (RIG-2673) - #629
Closed
rigel-mintaka wants to merge 2 commits into
Closed
feat(compass-agent): render agent_account_id in compass_roster (RIG-2673)#629rigel-mintaka wants to merge 2 commits into
rigel-mintaka wants to merge 2 commits into
Conversation
…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>
|
Compass engineering docs preview: https://compass-agent-rig-2673-roste.compass-eng-docs.pages.dev Deployed from |
…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>
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. |
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.
The org-management agent tools (RIG-2673 T6) address peers by account id —
comms_create_channeltakesmember_account_ids,comms_update_memberstakesadd/remove/subscribe/unsubscribeaccount-id lists — but the model onlyever sees peers by
@handle. The roster is the one place the handle↔id mappingis 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 byRosterEntry, no proto change) ineach roster line beside the display name,
flat-guarded like every otherserver-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