mirror of
https://github.com/mvschwarz/openrig.git
synced 2026-11-07 05:56:21 -10:00
docs: teach what 0.7.9 changed in the map, references and three help texts (#2571)
The packaged capability map takes in 0.7.9's changes, and its header marker moves to capability-delta-v0.7.9. Two lines 0.7.9 made stale are corrected: an emit now opens or notes an intake row for queue.worker, and any registered person can settle an ask asked of someone else, recorded as themselves. It also covers indeterminate receipts, --closure-required-at, guidance placement for fresh Pi and Codex 0.164.0+ seats with the cases that still use the repository's AGENTS.md, what rig down takes back and keeps, the rebuild for wrapper and symlink Claude launches, and the daemon HTTP client reference. rig-spec's managed_blocks and guidance_merge rows and agent-spec's target row say where guidance normally goes. Help text: rig stream emit names the intake row and how to keep emits passive, rig send --verify says exit 1 can mean unconfirmed, and rig down says what it takes back and what it keeps. Docs and help text only.
(cherry picked from commit 73cf8138e7)
This commit is contained in:
1 parent
4f257ef1cf
commit
ddb9d25be7
7 files changed
+76
-21
No files matched your search
@@ -462,6 +462,11 @@ do not establish connectivity to a live peer.
|
||||
| `rig stream read` | — | `--limit <n>`<br>`--reader <session>`<br>`--json` |
|
||||
| `rig stream act <streamItemId>` | — | `--work <qitemId>`<br>`--decline <reason>`<br>`--duplicate <id>`<br>`--reader <session>`<br>`--json` |
|
||||
|
||||
Stream intake: the `stream.intake` setting (default `queue.worker`, or a canonical `<seat>@<rig>`) receives each emitted item.
|
||||
It opens an intake row for that seat, which wakes it, or adds a note to that seat's intake row still pending; a `critical`
|
||||
or interrupting item makes the row urgent. `rig config set stream.intake off` keeps emits passive. A runner's
|
||||
default-permit record (tag `runner-permission-permit`) opens no row.
|
||||
|
||||
### queue
|
||||
|
||||
| Invocation | Aliases | Declared options |
|
||||
|
||||
@@ -440,7 +440,7 @@ guidance:
|
||||
|-------|------|----------|---------|-------------|
|
||||
| `id` | string | yes | — | Resource identifier. A `rig-role` guidance resource is never merged; deliver a role with a `send_text` startup file. |
|
||||
| `path` | string | yes | — | Relative path to the guidance file. |
|
||||
| `target` | string | no | — | Parsed but not used: the runtime decides the file. Claude merges into the rig's `managed_blocks` file (`CLAUDE.md` by default, or `CLAUDE.local.md`); Codex, Pi and OMP merge into `<cwd>/AGENTS.md`. |
|
||||
| `target` | string | no | — | Parsed but not used: the runtime decides the file. Claude merges into the rig's `managed_blocks` file (`CLAUDE.md` by default, or `CLAUDE.local.md`); Codex, Pi and OMP merge into `<cwd>/AGENTS.md`, except that a fresh Pi seat normally uses its own agent folder's `AGENTS.md` and a fresh Codex 0.164.0+ seat normally gets launch developer instructions; the conditions are in [Codex guidance at launch](agent-startup-guide.md#codex-guidance-at-launch) and [Runtime Differences](agent-startup-guide.md#runtime-differences). |
|
||||
| `merge` | string | no | `managed_block` | Only `managed_block` is applied. Any other value, such as `append`, merges nothing. |
|
||||
|
||||
---
|
||||
|
||||
@@ -180,7 +180,7 @@ edges:
|
||||
| `non_interruptive` | boolean | no | — | Pod-aware rig launch-warning default. With full-bypass Claude/Codex seats, true accepts or hides supported harness warnings using launch flags. Explicit CLI choices override this field; this field overrides the machine default. It does not grant permissions, change native settings files, or bypass login. |
|
||||
| `permission_policy` | string | no | — | Permission policy attached to the rig. Either a built-in (`builtin:locked`, `builtin:standard`, `builtin:open`, `builtin:yolo`, `builtin:auto`) or a safe relative path to a custom policy file (resolved from this spec's directory; no `..`, no absolute, no empty segments, each segment `[A-Za-z0-9][A-Za-z0-9._-]*`), or `none`, a recorded choice of the floor. Absent uses the default floor with the scoped team launch allowances described below. A bare built-in name such as `yolo` is refused ("use 'builtin:yolo'"), and so is an explicit `null`. A custom file that is missing, unreadable or invalid isn't a validation error: it resolves to the floor, and preflight warns. A member may set its own `permission_policy` (not on a terminal member), which takes precedence over the rig-level one; there is no pod level. See "Attaching a permission policy" below. |
|
||||
| `env` | map | no | — | Launch environment for every seat in the rig: `NAME: value` pairs. A member's own `env` overrides it name by name. Names match `^[A-Z_][A-Z0-9_]*$`, names starting `OPENRIG_` are reserved, and values must be non-empty strings (quote numbers and booleans). Values are not secret. See "Launch environment" below. |
|
||||
| `managed_blocks` | map | no | `CLAUDE.md` | File that receives OpenRig's managed instruction blocks for Claude Code members. Only the `claude-code` key is accepted, with `CLAUDE.md` or `CLAUDE.local.md`. Codex, Pi and OMP members use `AGENTS.md`. See "Choosing the Claude instruction file" below. |
|
||||
| `managed_blocks` | map | no | `CLAUDE.md` | File that receives OpenRig's managed instruction blocks for Claude Code members. Only the `claude-code` key is accepted, with `CLAUDE.md` or `CLAUDE.local.md`. Codex, Pi and OMP members use `AGENTS.md`, except that a fresh Pi seat normally uses its own agent folder's `AGENTS.md` and a fresh Codex 0.164.0+ seat normally gets launch developer instructions; a link, a conflicting or unreadable Codex config layer, or a resume keeps the repository file. See [Codex guidance at launch](agent-startup-guide.md#codex-guidance-at-launch) and [Runtime Differences](agent-startup-guide.md#runtime-differences). See "Choosing the Claude instruction file" below. |
|
||||
| `workspace` | object | no | — | The rig's workspace: `workspace_root` (required), `repos[]` of `{name, path, kind}` with `kind` one of `user`, `project`, `knowledge`, `lab` or `delivery` and unique names, an optional `default_repo` naming one of them, and an optional `knowledge_root`. Relative repo paths resolve against `workspace_root`. |
|
||||
| `docs` | Doc[] | no | — | Documentation files that should travel with the rig. Included in rig bundles. Each entry has a `path` field (safe relative path). The engine does not consume these — they are for humans and agents setting up the environment before launch. |
|
||||
| `startup` | StartupBlock | no | — | Rig-level startup files and actions. Applied to all members via the startup layering model. |
|
||||
@@ -1077,7 +1077,7 @@ file; missing optional files do not trigger that warning.
|
||||
| Hint | Behavior |
|
||||
|------|----------|
|
||||
| `auto` | System chooses based on file type and context. |
|
||||
| `guidance_merge` | Merged as a managed block into the runtime's guidance file: for Claude, the `managed_blocks` file (`CLAUDE.md` or `CLAUDE.local.md`); for Codex, Pi and OMP, `AGENTS.md`. Delivered before harness boot. |
|
||||
| `guidance_merge` | Merged as a managed block into the runtime's guidance file: for Claude, the `managed_blocks` file (`CLAUDE.md` or `CLAUDE.local.md`); for Codex, Pi and OMP, `AGENTS.md`, except that a fresh Pi seat normally uses its own agent folder's and a fresh Codex 0.164.0+ seat normally gets launch developer instructions (the conditions are in [Codex guidance at launch](agent-startup-guide.md#codex-guidance-at-launch) and [Runtime Differences](agent-startup-guide.md#runtime-differences)). Delivered before harness boot. |
|
||||
| `skill_install` | Installed as a skill in the runtime's skill directory. Delivered before harness boot. |
|
||||
| `send_text` | Sent as text to the agent's terminal after the harness is ready. Requires the agent TUI to be active. |
|
||||
|
||||
|
||||
@@ -147,6 +147,11 @@ Before running it, check who is working (rig ps --nodes --rig <rig>) and that th
|
||||
don't stop a team you didn't start unless asked. OpenRig snapshots the rig first (best-effort), and
|
||||
rig up <rig> --existing brings it back, resuming each seat's conversation where its harness allows. With
|
||||
--delete the rig record is removed too, so it can't be brought back that way.
|
||||
Once no live seat uses a working folder, rig down also takes back what OpenRig added there: its
|
||||
guidance blocks, and in a Claude seat's folder the status line, activity hooks and context collector.
|
||||
It keeps and lists an edited skills-line block, edited team skill files, and settings or a collector
|
||||
that don't match what OpenRig wrote or that another seat shares by a link. Any other guidance block
|
||||
goes even if someone edited it. rig up <rig> --existing puts the guidance back.
|
||||
When your resolved seat belongs to this rig, confirm before stopping it. Without a terminal,
|
||||
the command warns and exits without stopping; re-run with --yes to confirm explicitly.`);
|
||||
const getDepsF = () => depsOverride ?? { lifecycleDeps: realDeps(), clientFactory: (url: string) => new DaemonClient(url) };
|
||||
|
||||
@@ -242,7 +242,7 @@ export function sendCommand(depsOverride?: SendDeps): Command {
|
||||
.option("--to <sessions>", "Multi-recipient: comma-list or repeated (--to a,b or --to a --to b)", collectSessions, [] as string[])
|
||||
.option("--pod <name>", "Send to every seat in a pod (fan-out, per-recipient results)")
|
||||
.option("--rig <name>", "Send to every seat in a rig (fan-out, per-recipient results)")
|
||||
.option("--verify", "Verify pane only delivery by checking content after send")
|
||||
.option("--verify", "Verify pane only delivery by checking content after send. Exit 1 can mean unconfirmed, not failed: the message may have arrived, so inspect with rig capture before any resend")
|
||||
.option("--force", "Back-compat no-op: a mid-task/busy pane already sends-with-advisory by default; --force never bypasses the interactive-prompt/permission guard")
|
||||
.option("--wait-for-idle <seconds>", "Wait until the target is explicitly idle before sending. If it's still busy, or its activity is unknown, when the wait ends, nothing is sent (exit 1) and nothing is kept to send later; put separate work in a queue row (rig queue create)")
|
||||
.option("--raw", "Send exact text/keystrokes without the From/To messaging envelope (still guarded against interactive prompts)")
|
||||
|
||||
@@ -112,6 +112,11 @@ export function streamCommand(depsOverride?: StreamDeps): Command {
|
||||
.option("--interrupt", "Mark item as interrupting")
|
||||
.option("--id <streamItemId>", "Idempotent stream_item_id (skip if not provided)")
|
||||
.option("--json", "JSON output for agents")
|
||||
.addHelpText("after", `
|
||||
Stream intake is on by default: the seat named by stream.intake (queue.worker unless set)
|
||||
gets an intake row for each item, which wakes it, or a note on its intake row still pending.
|
||||
--hint-urgency critical or --interrupt makes that row urgent. The reply names only the stream item.
|
||||
To keep emits passive: rig config set stream.intake off`)
|
||||
.action(async (opts: {
|
||||
source: string;
|
||||
body: string;
|
||||
|
||||
@@ -11,7 +11,7 @@ not know exists.** So the point of what follows is not skill. It is recognition:
|
||||
lands, something rhymes, and you go check instead of building.
|
||||
|
||||
Ninety-one top-level verbs ship (capability canon refreshed through
|
||||
`capability-delta-v0.7.6`). This marker describes the pack's teaching, not publication or live
|
||||
`capability-delta-v0.7.9`). This marker describes the pack's teaching, not publication or live
|
||||
adoption. Read this once for shape, and let it make you suspicious that a thing already exists.
|
||||
What changed in the installed version, and what to do about it, is one read away:
|
||||
`rig context get reference/whats-new.md`.
|
||||
@@ -108,7 +108,10 @@ unseen — which makes messages the one delivery channel that never gets skipped
|
||||
- **`rig send`** — put words in front of one seat, several, a pod, or a rig. **`--verify` checks
|
||||
pane-only delivery**: the text was staged at the far end, not that the agent consumed or acted
|
||||
on it. Alternate-screen and queued-command cases can still yield false negatives, so
|
||||
consequential delivery gets an effect check at the far end rather than a blind retry. A
|
||||
consequential delivery gets an effect check at the far end rather than a blind retry.
|
||||
`--verify` exits 1 when it can't confirm what its Enter did (`submission unconfirmed`, or text
|
||||
staged but not submitted): the message may still have arrived, so inspect with `rig capture`
|
||||
before any resend, and don't let a script resend on that exit code alone. A
|
||||
producer-link advisory reading `no_activity_signal` means activity could not be determined;
|
||||
confirm by effect, never relaunch on it. A send or wake to a seat whose latest hook is a
|
||||
question waiting for a person is refused with `target_needs_input`, even when its screen
|
||||
@@ -144,7 +147,7 @@ unseen — which makes messages the one delivery channel that never gets skipped
|
||||
and the box was empty after Enter; it only reports.
|
||||
- **`rig broadcast`** — one fact to everyone at once, rather than relaying it N times and getting
|
||||
the wording wrong on the fourth. **Blast radius is real** — on a large rig this lands in every
|
||||
seat's turn.
|
||||
seat's turn. A broadcast that reached no one says so.
|
||||
- **`rig capture <seat>`** — read what is on their screen right now. **`--rig` / `--pod`** captures
|
||||
every seat in one call. `--lines N` is the last N lines (stderr says how many earlier lines were
|
||||
cut); `--history-plus-pane` gives the older N history lines plus the whole pane. A short capture
|
||||
@@ -171,8 +174,11 @@ unseen — which makes messages the one delivery channel that never gets skipped
|
||||
connection refusals, and reset or closed connections are retried until that deadline; other errors,
|
||||
including an error answer from the daemon such as a removed rig, still end the wait.
|
||||
- **`rig stream emit` / `list` / `watch` / `archive`** — drop an observation somewhere the *next*
|
||||
agent will find it. Emitting costs nothing and does not interrupt anyone; the value appears when
|
||||
someone lists the stream before starting. **`rig stream show <id>`** says what became of one:
|
||||
agent will find it. By default an emit also reaches the kernel's queue worker: it opens an
|
||||
intake row for `queue.worker`, which wakes it like any queue row, or adds a note to that seat's
|
||||
intake row still pending, and a `critical` or `--interrupt` item makes the row urgent.
|
||||
`stream.intake` names the receiving seat; `rig config set stream.intake off` keeps emits passive.
|
||||
A runner's default-permit record opens no row. **`rig stream show <id>`** says what became of one:
|
||||
its routing, linked work and that work's state. Items emitted from 0.7.1 on are kept 30 days or
|
||||
the newest 20,000 (`retention.stream_days`, `retention.stream_max_items`) unless a record names
|
||||
them, and a body over 16 KiB is stored truncated.
|
||||
@@ -262,7 +268,8 @@ unseen — which makes messages the one delivery channel that never gets skipped
|
||||
piece and its matching Claude/Codex turn closure must arrive before pacing onward, including
|
||||
the last piece. Initial missing evidence is explicitly unverified; a record lost or replaced
|
||||
during verification stops the walk. Use `rig walk --help` for those receipts and bounds.
|
||||
Delivery and turn completion do not prove comprehension.
|
||||
A piece whose delivery or submission can't be confirmed reads unconfirmed, not lost: inspect
|
||||
before resending. Delivery and turn completion do not prove comprehension.
|
||||
- **`rig slack`** — inspect and manage one connector implementation. Use registered-human
|
||||
readiness for the delivery decision and `queue create --verify` for its receipt; connector
|
||||
setup or verification is not an outbound human message. After a connection gap the daemon
|
||||
@@ -325,7 +332,9 @@ your context, your compaction and your replacement — and it is the only thing
|
||||
`--note` does not reopen a terminal row; terminal-to-active repair requires explicit `--reopen`
|
||||
with both `--state` and `--note`. `--summary` on its own corrects a row's subject in any state,
|
||||
and a close with `--resolution "<outcome>"` stores the outcome on the row; `--state done
|
||||
--evidence-ref <path>` also keeps the artifact's pointer on it.
|
||||
--evidence-ref <path>` also keeps the artifact's pointer on it. To accept a re-estimate,
|
||||
`--closure-required-at <iso>` on an in-progress row moves its deadline and keeps the claim,
|
||||
recording the old and new time and who accepted it.
|
||||
- **`rig queue handoff`** — pass work so the close and the create are **one transaction**, instead
|
||||
of closing yours, failing to create theirs, and stranding the work in between. A standing sweep
|
||||
checks recently closed rows (a 24-hour lookback) and flags a `handed_off_to` closure whose
|
||||
@@ -367,6 +376,8 @@ your context, your compaction and your replacement — and it is the only thing
|
||||
front of a seat that it can *refuse*. Mail, not assignment.
|
||||
- **`rig queue outbox-record` / `outbox-list`** — what you dispatched, in a record that survives
|
||||
your context. Stale requests you forgot are invisible to you and expensive to everyone else.
|
||||
A receipt reads `indeterminate`, not delivered or failed, when the text may have reached the
|
||||
seat: an unconfirmed send, or a write attempted before an error. Inspect before resending.
|
||||
- **`rig queue fallback`** — reroute a row whose destination cannot receive it, without losing it
|
||||
or rewriting its history.
|
||||
|
||||
@@ -516,6 +527,13 @@ not have to tear one down to change it, and you rarely have to start from nothin
|
||||
rig. `rig up` with a pod-aware spec on a stopped team's name replaces that team (the earlier one
|
||||
is archived), so check `rig ps --nodes` first. A rig name containing a dot is refused before
|
||||
launch, because tmux would rename its sessions. Launch-created `AGENTS.md` or `CLAUDE` files now show in `git status`.
|
||||
A fresh Pi seat normally keeps OpenRig's guidance in its own agent folder, and a fresh Codex
|
||||
0.164.0+ seat normally gets it as launch developer instructions, so neither adds it to the
|
||||
repository's `AGENTS.md`. The repository file is still used when the Pi folder or its `AGENTS.md`
|
||||
is a link, when a Codex config layer sets `developer_instructions` or can't be read, and for a
|
||||
Codex resume, fork, restore or handover successor, or an older or unknown Codex version
|
||||
(`docs/reference/agent-startup-guide.md` has the rule). At
|
||||
launch, a block a person edited is kept and named (`guidance_block_edited`), not replaced.
|
||||
`rig up <rig> --existing` puts back the OpenRig guidance blocks `rig down` removed before a
|
||||
resumed seat starts. A seat still missing one makes the rig `partially_restored` (its node lists
|
||||
`guidanceGaps`) and `rig up` exits 1. A seat that wasn't running at the snapshot, but whose
|
||||
@@ -563,8 +581,11 @@ not have to tear one down to change it, and you rarely have to start from nothin
|
||||
permission requests reach a person: the default person, or one chosen with `rig seat set-permissions-to <seat>
|
||||
--to <person> --reason "…"` (`--clear` returns to the default; `--deny` opts the seat in to refusal). When no one
|
||||
can be asked, the request is permitted with the agent's own allow option, and a person's no is never a grant.
|
||||
`docs/reference/community-harness-examples/dsh/` is an example runner, and
|
||||
`node docs/reference/runner-conformance/check-runner.mjs --runner '<command with {agent}>' --name <harness>` checks a
|
||||
Each permit OpenRig decides by default is recorded once, as a stream item from the seat that wakes no one:
|
||||
`rig stream list --tag runner-permission-permit`. A person's reply in other words chooses nothing; the read
|
||||
result carries it whole as `said`, for the runner to pass to the agent as an ordinary prompt, never as the answer.
|
||||
The installed package's `daemon/docs/reference/community-harness-examples/dsh/` is an example runner, and
|
||||
`node "$(npm root -g)/@openrig/cli/daemon/docs/reference/runner-conformance/check-runner.mjs" --runner '<command with {agent}>' --name <harness>` checks a
|
||||
runner with no daemon, model, credentials or network.
|
||||
`passes_model: true` sends the declared model as `OPENRIG_MODEL`; it does not establish the
|
||||
effective model. Cursor and Hermes examples leave model passing off pending native qualification.
|
||||
@@ -581,7 +602,12 @@ not have to tear one down to change it, and you rarely have to start from nothin
|
||||
human mode it first prints one line with each agent's last known activity, or “unknown”: a
|
||||
best-effort snapshot, not a record of what was interrupted. With `--host`, a remote teardown
|
||||
that reports errors exits 2. For a community harness seat it prints `Pane stopped: <seat>`
|
||||
(`paneOnly` in `--json`): the harness's own processes may keep running after its pane.
|
||||
(`paneOnly` in `--json`): the harness's own processes may keep running after its pane. Once no
|
||||
live seat uses a working folder, it takes back what OpenRig added there: its guidance blocks, and
|
||||
a Claude folder's status line, activity hooks and context collector. It keeps and lists an
|
||||
edited skills-line block, edited team skill files, and settings or a collector that don't match
|
||||
what OpenRig wrote or that another seat shares by a link. Any other guidance block goes even if
|
||||
someone edited it.
|
||||
- **`rig launch <rig> [seat]`** — one seat is down; start just that one, without disturbing the
|
||||
rest. It takes the rig's name or ID; a name shared by more than one active rig stops and lists their IDs. Add `--plan` to preview it first, locally or with `--host`; a plan is never sent to a
|
||||
daemon older than 0.5.9, which would ignore it and launch. A seat whose agent exited to a shell in
|
||||
@@ -751,7 +777,10 @@ version, from checking the environment to a useful report to the OpenRig team.
|
||||
effectful handover path.** Both forms perform the operation by default; pass `--dry-run`
|
||||
to plan without changing the seat. Check the selected source and continuity evidence first. A
|
||||
seat can be handed over again into its own pane, so a seat left half-handed-over recovers by
|
||||
running the handover again.
|
||||
running the handover again. A Claude seat started through a `#!` wrapper that runs Claude without
|
||||
`exec`, or through the installer's `~/.local/bin/claude` symlink, rebuilds with `--source
|
||||
rebuild`; a failed rebuild leaves the resume target on the earlier conversation, so rebuild again
|
||||
rather than relaunching it fresh.
|
||||
- **`rig seat clear-attention` / `set-resume-token`** — clear a stale attention flag, or repair a
|
||||
lost resume handle so restore works next time.
|
||||
- **`rig seat continue <seat>`** — a launch stopped on Claude's bypass-permissions consent dialog.
|
||||
@@ -821,7 +850,8 @@ version, from checking the environment to a useful report to the OpenRig team.
|
||||
paste changes Claude's footer hint, and later sends wait behind it; check the seat's composer.
|
||||
`rig seat status` shows the requested/effective mode; wait for pending activation to finish.
|
||||
**`rig seat held-messages`** lists what was retained and **`rig seat retire-held-message`**
|
||||
retires one; changing mode does not replay old held messages. Draft-aware returns the exact
|
||||
retires one; changing mode does not replay old held messages. A seat that starts, or a successor
|
||||
that takes it over, with held messages is told how many and how to read them; nothing is replayed. Draft-aware returns the exact
|
||||
refusal and original ID immediately; callers decide further action, with no daemon retry timer.
|
||||
- **`rig seat set-terminal-policy <seat> --preset no-peer-interventions|help-within-instructions|full-control
|
||||
--reason <text>`** — choose how far OpenRig and peers may act on a seat: `--helper <addresses…>`
|
||||
@@ -844,7 +874,11 @@ version, from checking the environment to a useful report to the OpenRig team.
|
||||
that stays quiet after `/compact`; they don't wait for its next turn. The managed `/compact` is
|
||||
kept short enough to run as a command and is sent only to an idle seat; its own result reads
|
||||
`submitted, unconfirmed` (it reached the seat, not proof compaction ran), `uncertain` (not
|
||||
replayed) or `not sent`, so confirm by effect. Claude seats that select `openrig-core` load its
|
||||
replayed) or `not sent`, so confirm by effect. Before each paste (preparation prompt, `/compact`,
|
||||
restore prompt) it checks the input box and holds that step while the box holds typed,
|
||||
unreadable or changed input, so a draft needs no typing guard to protect it; the check is a read just before the paste,
|
||||
not a lock. An idle Claude seat under the installed-update notice still reads idle, so it needs no
|
||||
hand compaction for that. Claude seats that select `openrig-core` load its
|
||||
hooks; a seat can give a slow refocus more time with `OPENRIG_REFOCUS_BUDGET_MS` (4500 to 52000).
|
||||
The refocus work packet stays off by default for Claude Code and Codex;
|
||||
`OPENRIG_REFOCUS_WORK_PACKET=1` turns it on, with each field bounded.
|
||||
@@ -1105,14 +1139,16 @@ reaching them is ordinary work rather than an escalation.
|
||||
System World teaches these mechanics; Project World decides when and why they apply.
|
||||
Existing `<entityId>@host` blockers are internal custody labels mapped through the registry
|
||||
to the external participant, not a separate outbound route.
|
||||
- **`rig gateway human add`** — register a person and their connector binding. Registration or
|
||||
- **`rig gateway human add`** — register a person and their connector binding, or none: a person
|
||||
with no connector is asked on Steering and in the Feed only. Registration or
|
||||
connector changes do not themselves authorize a message. Several people can be registered:
|
||||
**`rig gateway default <id>`** (or `--default` on `human add`; `--clear` removes it) chooses the
|
||||
default person, who receives the last escalation step, the notice digest, Mission Control's
|
||||
my-queue view, workflow fallbacks and pairing approvals. One registered person is the default;
|
||||
with several and none chosen, those wait (`undeliverable:no-default-person`). A registered person
|
||||
can't settle an ask that was asked of someone else (`answer_not_recorded`), and a park addressed
|
||||
to a registered person can be resolved.
|
||||
with several and none chosen, those wait (`undeliverable:no-default-person`). Any registered
|
||||
person can settle an ask that was asked of someone else, recorded as themselves beside the person
|
||||
asked. The first committed answer wins; a later one gets 409 `qitem_already_terminal` and records
|
||||
nothing. A park addressed to a registered person can be resolved.
|
||||
- **`rig gateway channel add <id> --display-name <name> --binding
|
||||
slack:<connectorRef>:<secretsRef>:<channelId>`** — a Slack shared channel as one participant,
|
||||
`<id>@external` (Slack only). Anyone writing there reaches the team, registered or not. Each row
|
||||
@@ -1400,6 +1436,10 @@ your circumstances is configuration, and the ones that are not, another agent ca
|
||||
own risk.** Local assistants can connect locally. Internet access needs your own TLS tunnel or
|
||||
proxy and a narrowly scoped, revocable token; see `reference/hosted-members.md`. Task terminal
|
||||
following does not require internet exposure.
|
||||
- **`reference/daemon-http-clients.md`** — for a program that calls the daemon's HTTP API instead of
|
||||
the CLI. It covers the registered people, a person's open updates, a rig's outbox (every seat's
|
||||
messages, newest first) in one request, Slack channels and people without holding the bot token, and opt-in decision revisions,
|
||||
where a stale `expectedRevision` gets 409 and writes nothing.
|
||||
- **`rig skill loadout --runtime <claude-code|codex>`** — inspect the exact catalog revision,
|
||||
selectors, target, and current/missing/shadowed/conflicting state for one working directory.
|
||||
`--apply` writes only the managed ownership set, is idempotent, and refuses local edits or
|
||||
|
||||
Reference in new issue
Block a user