channel: add 'list' verb to surface active agent channels #98

Open
opened 2026-05-26 17:55:58 +00:00 by coilysiren · 0 comments
Owner

Problem

coily channel exposes create / read / state / spec / events / post / close, but no list. The backend (otel-a2a-relay channels router, channels/src/otel_a2a_relay_channels/router.py:130) already implements GET /agent-channel?include_closed=false&limit=N, which returns the active set newest-first.

Without a wrapper verb, "pull active agent channels" requires a raw curl with the SSM bearer token, which the auto-mode classifier correctly denies as token exfil to an agent-inferred destination.

Desired surface

coily channel list [--include-closed] [--limit N] [--format json|yaml|markdown]
  • Default: active only, newest first, capped at the server's 500.
  • Same auth + base-url resolution as the existing verbs (SSM at channel.ssm_token_path, base channel.base_url).
  • Markdown default for human read. json/yaml for piping.

Why now

Phone-dictated "pull active agent channels" is exactly the mobile-first surface that should be one coily verb, not a curl + token plumb. Every list-style ask either bounces off the classifier or requires Kai to name an id she doesn't have yet.

Out of scope

  • Filtering by author / kind / age. Add later if needed. First cut is just the existing backend list.
**Problem** `coily channel` exposes create / read / state / spec / events / post / close, but no `list`. The backend (otel-a2a-relay channels router, `channels/src/otel_a2a_relay_channels/router.py:130`) already implements `GET /agent-channel?include_closed=false&limit=N`, which returns the active set newest-first. Without a wrapper verb, "pull active agent channels" requires a raw curl with the SSM bearer token, which the auto-mode classifier correctly denies as token exfil to an agent-inferred destination. **Desired surface** ``` coily channel list [--include-closed] [--limit N] [--format json|yaml|markdown] ``` - Default: active only, newest first, capped at the server's 500. - Same auth + base-url resolution as the existing verbs (SSM at `channel.ssm_token_path`, base `channel.base_url`). - Markdown default for human read. json/yaml for piping. **Why now** Phone-dictated "pull active agent channels" is exactly the mobile-first surface that should be one coily verb, not a curl + token plumb. Every list-style ask either bounces off the classifier or requires Kai to name an id she doesn't have yet. **Out of scope** - Filtering by author / kind / age. Add later if needed. First cut is just the existing backend list.
coilysiren added
P4
and removed
P3
labels 2026-05-31 06:59:44 +00:00
Sign in to join this conversation.
No labels
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-bridge/coily#98
No description provided.