Repository navigation
OpenRig 0.7.3
OpenRig 0.7.3 brings the people you work with into the same world as your agents: several people with a default,
Slack shared channels whose messages say who sent them, and organizations and groups with a policy your agents can
read. Community harness authors get a written contract, an OpenClaw seat shows when its last local turn was
refused, and Codex seats can keep their own sandbox and approval settings.
Before you upgrade
npm install -g @openrig/cli@0.7.3
rig daemon stop && rig daemon start- One database update applies on the daemon's first start. Startup refreshes OpenRig's own plugin (openrig-core
0.1.20; themessaging-the-humanskill changed), first copying any file it replaces under
$OPENRIG_HOME/backups/managed-refresh/. If you edited one, reapply your change from the copy. - If you register a second person, choose a default:
rig gateway default <id>. Until you do, the last
escalation step and the notice digest wait. - If a seat relied on the daemon's own environment (
ANTHROPIC_BASE_URL,OPENAI_BASE_URL,
CLAUDE_CODE_USE_BEDROCK), declare it in the rig's or member'senv:. The first seat on a new tmux server now
gets the same scoped environment as every other seat. (#2047) - Going back to 0.7.2 keeps every registered person, but not the default person, shared channels,
organizations, groups or policy. It keeps a Codex seat's permission settings without reading them, so its
launches of that seat can be broader.
What's new
People and shared channels
- Register more than one person (
rig gateway human add) and choose the default (rig gateway default <id>), who
receives the last escalation step, the notice digest and workflow fallbacks. (#1992) rig gateway channel add <id> --binding slack:…registers a Slack shared channel as one participant. Anyone
writing there reaches the team, and each row names the channel, the sender and the policy. A channel's messages
never answer or close an ask. (#1992, #1998, #2068)rig gateway org setandgroup setgive organizations and groups a readable policy, andrig gateway participantsshows it with its source. It's context for your agents' judgment; nothing enforces it. (#1992)- The Feed's
whose <person|all|default>chooses whose queue you see. Settling someone else's ask from the TUI is
recorded as the primary user's, keeping the person asked: attribution on a trusted network, not a login.
(#2006, #2061) rig slack post-open-asksposts the asks still open, and the reply hint on a person's message now answers in
their Slack thread. (#2086, #2055)- When an agent parks its own ask on the person it asked, a colleague's reply in that thread goes to the agent.
Incoming Slack messages are not automatically reposted to Slack as new asks; an agent can still deliberately ask a
follow-up. (#2119)
Community harnesses
docs/reference/community-harness-presets.mdis the contract: what a harness gets from OpenRig and what it
doesn't, how to write one, and how promotion is judged. Tests cover it. (#2078, #2088)- An OpenClaw seat whose last local turn was refused shows as needing attention (#2092),
rig downnames
community harness seats whose processes may outlive their pane (#2077), and a Hermes gateway runs per seat with
the example launcher (#2097).
Codex seats
rig seat set-permissions <seat> --codex-permissions <file>gives a Codex seat its own sandbox and approval
settings, passed on every managed launch. (#2048)rig seat set-permissions <seat> --codex-profile <name>selects that seat's Codex configuration profile for
future managed launches. (#2048; requested in #1534 by @bpamiri)- Codex's own trust and config edits survive OpenRig's next launch, and a single-quoted trust table no longer
gains a duplicate that stopped Codex starting. (#2034, #2035, #2046) Resume handles a path with a space (#2038),
and a seat started under a launcher gets its generation record (#2084).
Terminals and the TUI
rig capture --readablereads a small seat at a readable size and gives its window back, and a window gets its
own size back after the web terminal. (#2075, #2065)- The TUI opens views in cmux when it runs inside cmux, and keeps a registered remote host in its tree on every
tab. (#2080, #2052) rig doctorchecks that tmux can capture a pane, and new seats keep tmux'sTERM_PROGRAMfor Claude's
Shift+Enter. (#2081, #2043)
Also: --wait-for-idle over 300 seconds works (#2020, #2024); a dropped local send reads unconfirmed (#2060);
saved seat settings can target a node id (#2051); rig export keeps pod startup files (#2087); rig scope --workspace creates the first mission there (#1093); the delivery digest says why it sent nothing (#2063, #2066).
The packaged CHANGELOG.md lists the other changes; the late
Slack fix (#2119) is documented above.
Behaviour that changed
- A registered person can't settle an ask that was asked of someone else (
answer_not_recorded); from the TUI, the
primary user can. rig scope --workspace <path> mission createrefuses a path that doesn't exist.- A send to a Claude seat at its "Resume session" picker refuses with
target_needs_input.
Known issues
- OpenClaw's interrupted local turns aren't recovered. The seat shows as needing attention; capture its pane
before sending, since a send submits a new turn. For an unattended seat, use the Gateway preset. - Whether processes a community harness starts outside its pane survive isn't exercised.
rig downstops the
pane only; check the harness's own processes afterwards. - Hermes: the preset doesn't declare resume, and whether a seat's gateway exits once idle is unknown. The
presets doc says it exits; check withpsbefore relying on it. rigorrig tuistarted in a terminal that reports 0 rows or columns crashes on its first frame, as in
0.7.2. Start it in a terminal with a size. The fix (#2099) is on main for the next release.- A Codex seat's permission settings were enforced natively in our test with Codex 0.164.0, including after a
managed restore and a restart. Other Codex versions weren't tested, and an older OpenRig ignores the settings. - Upgrading does not automatically restore missing Codex hook approvals. Earlier OpenRig versions could remove them
while refreshing the managed hook block; 0.7.3 fixes that preservation bug
(#2035). If Codex asks for hook review, review and approve the hooks
you intend to enable. Later upgrades may ask again when the previous approval cannot be recognized. - A kernel whose terminals went away long ago can come back when the daemon starts. Startup restores a kernel whose seats were all left detached, which is what a reboot leaves, but it can't tell how long ago that was. A kernel gone for weeks can return from an old snapshot, including on the restart in "Before you upgrade", and offer to resume its old conversations. If you didn't expect it, decline those prompts and run
rig down kernel; a kernel stopped that way stays down on later starts.rig daemon start --no-kernelskips kernel startup entirely. A fix is planned for a later release. - After the last managed session ends, an empty tmux server may remain running. This does not by itself mean
an agent is still running. - Threads already affected by the parked-ask routing bug still send replies to the person asked, on their Steering,
rather than to the agent. These incoming replies are no longer automatically echoed to Slack. - Slack messages received before this upgrade may still show OpenRig's routing footer, shared-channel policy text and
attachment paths when an agent later asks a person about them. A handoff that changes the task text or replaces its
Slack-origin tags also shows the text in full to avoid deleting the sender's words. Newly received messages with their
original text and tags omit this generated routing, policy and attachment context. - Shared channels are Slack only.
- The community harness field keeps its name (
communityHarness) and its original database update; renaming
them would break a return to 0.7.2. - The cmux path wasn't tried in a real cmux, and the TUI reads a remote host's rigs over HTTP only.
Verification limits
- The required five-measure performance comparison against 0.7.2 was not completed. One non-gating workload
was slightly slower; it establishes neither a performance pass nor a regression. Publication proceeds with an
explicit exception for 0.7.3, not a waiver for future releases. - Slack button interactions were not verified: the test clicks did not reach the receiving socket.
- Registry sharing was not verified end to end. The maintainer round trip did not run, and the stranger check
stopped at GitHub's first-time-contributor workflow-approval gate. - The Claude first-use check used a token rather than interactive sign-in; the Codex journey included assistance.
- Some stored-copy attachment, cross-host terminal and isolation paths remain unverified. Kernel duplication,
whole-database or native-session downgrade, and Windows were not exercised. Keeping already-running Codex
seats through a daemon-only upgrade was not demonstrated natively.
Credits
Thank you to @Aschenbath, @Coder8124, @bradvin, @sn1thy and @DeryFerd, whose work is in this release, and to
@AdamWhitehurst (#2041, #2049, #2057), @borfast (#2029, #17), @jimallen (#17), @R14014 (#1069), @kainne44 (#70),
@VltrnOne (#1653), @d3fvxl (#800), @fsafey (#1799), @MichelMabinuola (#980), @rakoort (#1679), @bpamiri (#1534) and
@george661 (#1710), whose reports and diagnoses led to fixes here.