Skip to content

feat(cli): add operator message-post and agent-status nouns (RIG-2662, RIG-2663) - #585

Open
rigel-mintaka wants to merge 1 commit into
compass/rig-2664-channel-reply-cuefrom
compass/rig-2662-2663-cli-message-agent-status
Open

feat(cli): add operator message-post and agent-status nouns (RIG-2662, RIG-2663)#585
rigel-mintaka wants to merge 1 commit into
compass/rig-2664-channel-reply-cuefrom
compass/rig-2662-2663-cli-message-agent-status

Conversation

@rigel-mintaka

@rigel-mintaka rigel-mintaka commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

This PR is part of a stack containing 3 PRs:

  1. main
  2. fix(devenv): single-source the dogfood runner-id so mint and runner never drift (RIG-2660) #582
  3. fix(agent): cue driven agents to reply in-channel, not into the session log (RIG-2664) #583
  4. "feat(cli): add operator message-post and agent-status nouns (RIG-2662, RIG-2663)" (this PR)

The operator compass CLI had no way to post a channel message or inspect agent-session state — both were dogfood gaps (an operator could not message the Manager or see whether a session was live from the CLI).

Adds two nouns following the existing secret/agent-config Cobra pattern: compass message post --channel <id> --topic <name> [--mention <handle>] (body read from stdin, never argv, so it cannot leak into the process table; over CommsService/PostMessage) and compass agent status [--session <id>] (over CompassService/GetAgentStatus, rendering session id + state). Both dial the authenticated network door / unix socket via the shared connection flags.

Note on RIG-2663 Fix 3b (GetAgentStatus permission_denied on the dev-http door): that was a misdiagnosis, not a server bug. The dev-http browser door deliberately mounts no bearer interceptor, so AdminGate fail-closes adminOnly RPCs there to prevent the 'Dev Door Can Mint Admin Tokens' hole. GetAgentStatus is adminOnly and operators read it over the network door (TLS + admin bearer) or the socket — exactly the door this CLI dials. No server change.

Refs RIG-2662, RIG-2663

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

@linear-code

linear-code Bot commented Aug 24, 2026

Copy link
Copy Markdown

RIG-2662

RIG-2663

@github-actions

github-actions Bot commented Aug 24, 2026

Copy link
Copy Markdown

Compass engineering docs preview: https://compass-rig-2662-2663-cli-me.compass-eng-docs.pages.dev

Deployed from compass/rig-2662-2663-cli-message-agent-status at 588ac36.

…, RIG-2663)

The operator `compass` CLI had no way to post a channel message or inspect agent-session state — both were dogfood gaps (an operator could not message the Manager or see whether a session was live from the CLI).

Adds two nouns following the existing secret/agent-config Cobra pattern: `compass message post --channel <id> --topic <name> [--mention <handle>]` (body read from stdin, never argv, so it cannot leak into the process table; over CommsService/PostMessage) and `compass agent status [--session <id>]` (over CompassService/GetAgentStatus, rendering session id + state). Both dial the authenticated network door / unix socket via the shared connection flags.

Note on RIG-2663 Fix 3b (GetAgentStatus permission_denied on the dev-http door): that was a misdiagnosis, not a server bug. The dev-http browser door deliberately mounts no bearer interceptor, so AdminGate fail-closes adminOnly RPCs there to prevent the 'Dev Door Can Mint Admin Tokens' hole. GetAgentStatus is adminOnly and operators read it over the network door (TLS + admin bearer) or the socket — exactly the door this CLI dials. No server change.

Refs RIG-2662, RIG-2663

Co-authored-by: Matt Wilkinson <matt@rigel.build>
@rigel-mintaka
rigel-mintaka force-pushed the compass/rig-2662-2663-cli-message-agent-status branch from 86fb894 to 588ac36 Compare August 24, 2026 14:57
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