docs(product): design record — RIG-1509 ask round-trip over the comms transport - #397
Open
rigel-mintaka wants to merge 1 commit into
Open
docs(product): design record — RIG-1509 ask round-trip over the comms transport#397rigel-mintaka wants to merge 1 commit into
rigel-mintaka wants to merge 1 commit into
Conversation
|
Compass engineering docs preview: https://compass-agent-rig-1509-ask-c.compass-eng-docs.pages.dev Deployed from Changed pages: |
… transport Redesigns the agent-side ask round-trip (RIG-1509) after PR #390 was closed for using the wrong transport (the SDK session-UI `askDialog` seam). Ships as its own design PR to be reviewed and frozen on merge, ahead of any implementation. ## The load-bearing invariant The Compass agent has **no promptable session**. The session log is operator-visible for monitoring + stop only — no composer, no reply path. All operator↔agent communication flows through comms **channels + threads**. An `ask` is a typed comms message posted onto the agent's home channel into a topic, answered **async**. ## What the record wires The transport is already frozen in proto; this record wires the agent to both ends: - **Raise** — a dedicated native `comms_post_ask` tool posting `PostMessage(MessageBlock{ask})` into a named topic (like `comms_post_message`), non-blocking. - **Consume** — `AskAnswerControl` over the control lane, correlated by server-minted `ask_id`, delivered on a later turn. It also reconciles the dead outbound `AgentFrame` conversation-frame path (the `mapping.ts #deriveAsk` derivation) against the live comms `PostMessage` lane. ## Process Drafted by a `design` subagent, red-teamed by a `design-critic` subagent (1 HIGH + 3 mechanical findings, all folded), then run through the `review` loop (1 HIGH + 1 MEDIUM + 1 LOW internal-consistency findings, all fixed). The three load-bearing forks were ruled by Matt and written in as Decisions: 1. Tool surface = dedicated `comms_post_ask`, posting into a thread. 2. Ledger = partial-supersede DL-043 + count-refresh DL-028, both by citation. 3. Answer recovery = key the owed answer on the agent handle, not the session id (a runner/hub delivery-lane fix, entangled RIG-1310); a human decides liveness at answer time. No agent-side boot poll. ## Ledger delta (same PR) Adds DL-210 (the round-trip decision), DL-211 (comms toolset count refresh), and DL-212 (the outbound-realization move off the dead AgentFrame path). DL-028 and DL-043 stay Active — each keeps a live half; the deltas are by citation (DL-183/DL-147 pattern). `design-ledger-gate` green (186 rows, 59 headers). Ledger-impact: DL-210, DL-211, DL-212 added (comms ask round-trip); DL-028 + DL-043 refined by citation, both stay Active. Refs RIG-1509. Refs RIG-1310. Co-authored-by: Matt Wilkinson <matt@rigel.build>
rigel-mintaka
force-pushed
the
compass-agent/rig-1509-ask-comms-roundtrip
branch
from
August 19, 2026 01:46
b981607 to
91dd023
Compare
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.
Redesigns the agent-side ask round-trip (RIG-1509) after PR #390 was closed for using the wrong transport (the SDK session-UI
askDialogseam). Ships as its own design PR to be reviewed and frozen on merge, ahead of any implementation.The load-bearing invariant
The Compass agent has no promptable session. The session log is operator-visible for monitoring + stop only — no composer, no reply path. All operator↔agent communication flows through comms channels + threads. An
askis a typed comms message posted onto the agent's home channel into a topic, answered async.What the record wires
The transport is already frozen in proto; this record wires the agent to both ends:
comms_post_asktool postingPostMessage(MessageBlock{ask})into a named topic (likecomms_post_message), non-blocking.AskAnswerControlover the control lane, correlated by server-mintedask_id, delivered on a later turn.It also reconciles the dead outbound
AgentFrameconversation-frame path (themapping.ts #deriveAskderivation) against the live commsPostMessagelane.Process
Drafted by a
designsubagent, red-teamed by adesign-criticsubagent (1 HIGH + 3 mechanical findings, all folded), and the three load-bearing forks ruled by Matt and written in as Decisions:comms_post_ask, posting into a thread.Ledger delta (same PR)
Adds DL-207 (the round-trip decision), DL-208 (comms toolset count refresh), and DL-209 (the outbound-realization move off the dead AgentFrame path). DL-028 and DL-043 stay Active — each keeps a live half; the deltas are by citation (DL-183/DL-147 pattern).
design-ledger-gatesnapshot leg green (183 rows, 58 headers).Ledger-impact: DL-207, DL-208, DL-209 added (comms ask round-trip); DL-028 + DL-043 refined by citation, both stay Active.
Refs RIG-1509. Refs RIG-1310.
Co-authored-by: Matt Wilkinson matt@rigel.build