docs: carry 0.7.1's published release text to main (#1990)

Main now carries what 0.7.1 published.

- `CHANGELOG.md`'s 0.7.1 entry is the published v0.7.1 Release body, word for word, reflowed to the file's line form. That includes the credits for all reporters and all 22 known issues. It replaces the earlier draft the tag carried.
- `docs/reference/whats-new.md` carries 0.7.1's entry from the tag, with one line narrowed to what's true at source.
- The root, cli, daemon and ui package versions and their lockfile entries move from 0.7.0 to 0.7.1, matching the v0.7.1 tag. The packaged whats-new must name the package's own version.

No other changes.
This commit is contained in:
Mike Schwarz authored and GitHub committed 2026-10-25 03:14:00 -07:00
1 parent 802d44a2a9
commit 44676cb09c
7 files changed
+572 -122

No files matched your search

+400
View File
@@ -8,6 +8,406 @@ deprecations, and behavioral changes. Breaking changes are called out explicitly
---
## [0.7.1] - 2026-10-25
Published 2026-10-25 as `@openrig/[email protected]`, built from the commit tagged
`v0.7.1` (`1e392d56`). This entry is its release notes, as published on the
[GitHub Release](https://github.com/mvschwarz/openrig/releases/tag/v0.7.1).
OpenRig 0.7.1 gives you more say over how much your team does on its own. You
choose, per seat, how much automatic input reaches an agent's terminal and how
far other agents may act on it, and you can see the permissions each seat will
launch with. Questions to you land on the TUI's Feed, and Slack can carry every
ask or only urgent ones. Team skills stay out of your project, assistants such
as Claude Desktop can do much more through MCP, and a managed compaction
survives a daemon restart.
### Before you upgrade
- **Restart the daemon after installing.** Eight database updates apply on its
first start.
```bash
npm install -g @openrig/cli@0.7.1
rig daemon stop && rig daemon start
```
- **Startup replaces OpenRig's own plugin and skill files** (openrig-core goes
from 0.1.17 to 0.1.18). As in 0.7.0, it first copies each file it replaces
under `$OPENRIG_HOME/backups/managed-refresh/` and logs where, edited or not.
If you did edit one, reapply your change from the copy.
- **Claude seats need Claude Code 2.1.280 or newer to see their team skills**
(`claude --version`).
- **If an earlier version reset your worktree's Claude permission mode, set it
back once by hand.** Launching a managed Claude seat used to rewrite
`defaultMode` in `.claude/settings.local.json` to `acceptEdits`; 0.7.1 stops,
but doesn't repair files already changed.
([#1776](https://github.com/mvschwarz/openrig/pull/1776))
- **If you might go back to 0.7.0, undo Slack subscription choices first.**
0.7.0 can't read a person file that holds one, so its people registry stops
loading. Save each choice (`rig gateway human show <id> --json > <id>.json`),
then run `rig gateway human set <id> slack-subscription unset`: someone on
`urgent-only` gets every ask in Slack again, as 0.7.0 does. Set it again after
you return to 0.7.1. The unset removes only the Slack subscription, so a
person file that still holds a `subscriptions:` entry fails on 0.7.0 too.
Don't restore an older gateway folder or database instead: that can lose newer
people, bindings and delivery records.
- **If you go back to 0.7.0 and then upgrade again,** old process evidence can
keep a seat reading `running` instead of being relaunched.
([#1906](https://github.com/mvschwarz/openrig/pull/1906))
### What's new and fixed
**How much your team does on its own**
- `rig seat set-typing-guard <seat> --mode off|openrig-urgent|urgent-only|hold`
sets how much automatic input reaches a seat. `rig send --urgent` or an urgent
queue row marks a message urgent, naming who marked it. Held input stays
readable and is never replayed.
([#1770](https://github.com/mvschwarz/openrig/pull/1770),
[#1781](https://github.com/mvschwarz/openrig/pull/1781))
- `rig seat set-terminal-policy <seat> --preset no-peer-interventions|help-within-instructions|full-control`
sets how far OpenRig and other agents may act on a seat, with exceptions for
compaction and model changes. Existing seats keep full control.
([#1846](https://github.com/mvschwarz/openrig/pull/1846))
- `rig seat status` shows the permissions a seat's next fresh launch will use
and where each comes from; `rig setup` asks before adding OpenRig's line to
your shared guidance files.
([#1843](https://github.com/mvschwarz/openrig/pull/1843))
**Asks to you.** An ask lands on the TUI's Feed. Every ask still posts to Slack
by default; `rig gateway human set <id> slack-subscription urgent-only` keeps
Slack for asks marked `--alert`, which stand out with a mention.
([#1868](https://github.com/mvschwarz/openrig/pull/1868),
[#1878](https://github.com/mvschwarz/openrig/pull/1878))
**Seats keep their setup out of your project**
- Team skills live in each seat's own storage, not your project's
`.claude/skills` or `.agents/skills`; `rig skill loadout --seat <seat>` shows
them. ([#1008](https://github.com/mvschwarz/openrig/pull/1008), @puniserv)
- A Claude member can bring its own agent file, system prompt file, plugin
folders and Advisor model.
([#1737](https://github.com/mvschwarz/openrig/pull/1737),
[#1736](https://github.com/mvschwarz/openrig/pull/1736), @Aschenbath)
- A seat's role no longer overwrites the others' in a shared `CLAUDE.md` or
`AGENTS.md`, and `rig down` restores your guidance files byte for byte.
([#1840](https://github.com/mvschwarz/openrig/pull/1840),
[#1854](https://github.com/mvschwarz/openrig/pull/1854),
[#1859](https://github.com/mvschwarz/openrig/pull/1859),
[#1867](https://github.com/mvschwarz/openrig/pull/1867))
**Assistants and other agents**
- OpenRig's MCP server grows from 23 to 34 tools, including identity, restore
status, a rig's team and lead, following a handoff, reading a result and
deciding inside a person's decision room. `rig mcp serve --http` serves an
assistant on another machine, each caller acting as its own seat.
([#1831](https://github.com/mvschwarz/openrig/pull/1831),
[#1835](https://github.com/mvschwarz/openrig/pull/1835),
[#1842](https://github.com/mvschwarz/openrig/pull/1842),
[#1853](https://github.com/mvschwarz/openrig/pull/1853),
[#1860](https://github.com/mvschwarz/openrig/pull/1860),
[#1596](https://github.com/mvschwarz/openrig/pull/1596), @pdurlej)
- `rig acp run <row>` hands a row's task to an ACP agent such as Hermes or
OpenClaw; a new guide covers A2A agents.
([#1823](https://github.com/mvschwarz/openrig/pull/1823),
[#1829](https://github.com/mvschwarz/openrig/pull/1829))
- Community harnesses can report, name and reopen conversations, with examples
for Cursor, Hermes and OpenClaw.
([#1768](https://github.com/mvschwarz/openrig/pull/1768),
[#1769](https://github.com/mvschwarz/openrig/pull/1769),
[#1771](https://github.com/mvschwarz/openrig/pull/1771),
[#1783](https://github.com/mvschwarz/openrig/pull/1783),
[#1784](https://github.com/mvschwarz/openrig/pull/1784),
[#1826](https://github.com/mvschwarz/openrig/pull/1826),
[#1870](https://github.com/mvschwarz/openrig/pull/1870))
**Running a team**
- A daemon restart, such as an upgrade, picks up a managed compaction where it
stopped. ([#1866](https://github.com/mvschwarz/openrig/pull/1866))
- `rig edge add` and `rig edge remove` change one edge on a running rig.
([#1733](https://github.com/mvschwarz/openrig/pull/1733),
[#1746](https://github.com/mvschwarz/openrig/pull/1746))
- `rig up <spec> --name <rig>` runs one spec as several rigs.
([#1692](https://github.com/mvschwarz/openrig/pull/1692), @klueless-io)
- `rig watchdog update` retunes a job in place; the context watch takes token or
percent thresholds. ([#1803](https://github.com/mvschwarz/openrig/pull/1803),
@AdamWhitehurst) ([#1735](https://github.com/mvschwarz/openrig/pull/1735),
@akushonkamen)
- `policies.claude_compaction.preparation_root` puts restore maps where seats
may write. ([#1585](https://github.com/mvschwarz/openrig/pull/1585),
@Aschenbath)
- Herdr: tiles come back after a Herdr restart (one over SSH needs reopening),
`--session` picks a Herdr session, and the TUI's terminal button works over
SSH. ([#1796](https://github.com/mvschwarz/openrig/pull/1796),
[#1076](https://github.com/mvschwarz/openrig/pull/1076), @Aschenbath)
([#1748](https://github.com/mvschwarz/openrig/pull/1748))
- New seats get the daemon's `OPENRIG_DB` and `TMUX_TMPDIR`.
([#1812](https://github.com/mvschwarz/openrig/pull/1812))
- `rig setup --providers` is remembered (`provider.selected`), so the kernel
starts seats only for the harnesses you chose.
([#1817](https://github.com/mvschwarz/openrig/pull/1817))
- Optional `daemon.db_conflict: stop` keeps a second daemon off a database
another live daemon holds; the default still only warns.
([#1890](https://github.com/mvschwarz/openrig/pull/1890))
- `rig stream subscribe <seat>` and `rig stream read` give a seat bounded pages
of the observations meant for it, and `rig stream show <id>` says what became
of one. ([#1891](https://github.com/mvschwarz/openrig/pull/1891),
[#1888](https://github.com/mvschwarz/openrig/pull/1888))
- Stream retention is on: items emitted after the upgrade are deleted after 30
days, or beyond the newest 20,000, unless a record names them
(`retention.stream_days`, `retention.stream_max_items`). History from before
the upgrade is kept. ([#1891](https://github.com/mvschwarz/openrig/pull/1891),
[#1897](https://github.com/mvschwarz/openrig/pull/1897))
- Off by default: once decisions are enabled, `rig project wake --decide` lets
your intake seat route stream observations with one bounded typed decision
each, and hands anything uncertain back to that seat.
([#1879](https://github.com/mvschwarz/openrig/pull/1879),
[#1882](https://github.com/mvschwarz/openrig/pull/1882),
[#1894](https://github.com/mvschwarz/openrig/pull/1894))
**Reliability**
- `rig daemon start` waits for a slow daemon instead of stopping it, and warns
rather than fails when only a secondary listener, such as Tailscale's, can't
be verified. ([#1716](https://github.com/mvschwarz/openrig/pull/1716),
@dajiaohuang) ([#1743](https://github.com/mvschwarz/openrig/pull/1743),
[#1793](https://github.com/mvschwarz/openrig/pull/1793))
- A Claude seat whose startup turn is refused reports its remaining startup
context as owed; with an expired login, later startup inputs can still be
submitted first (see Known issues).
([#1869](https://github.com/mvschwarz/openrig/pull/1869))
- On Ubuntu 22.04's tmux 3.2a, a closing session no longer sends the query that
crashes tmux. ([#1755](https://github.com/mvschwarz/openrig/pull/1755))
- A rebuilt Codex seat keeps its narrower sandbox, and read-only Codex profiles
launch. ([#1779](https://github.com/mvschwarz/openrig/pull/1779),
[#1791](https://github.com/mvschwarz/openrig/pull/1791),
[#1825](https://github.com/mvschwarz/openrig/pull/1825), @bradvin)
- Reminders and workflow keepalives survive a seat swap.
([#1777](https://github.com/mvschwarz/openrig/pull/1777),
[#1782](https://github.com/mvschwarz/openrig/pull/1782))
- OpenRig's hooks run without Node on the seat's PATH.
([#1727](https://github.com/mvschwarz/openrig/pull/1727),
[#1728](https://github.com/mvschwarz/openrig/pull/1728),
[#1729](https://github.com/mvschwarz/openrig/pull/1729))
- After a daemon restart that can't see the seats' tmux server, running agents
are no longer detached and relaunched beside themselves.
([#1906](https://github.com/mvschwarz/openrig/pull/1906))
- Provider credentials and the activity-hook token stay off tmux, shell and
`env` command lines; @pr0xc3nt4ur1 first raised it in
[#1360](https://github.com/mvschwarz/openrig/pull/1360).
([#1907](https://github.com/mvschwarz/openrig/pull/1907))
- An answer retried from Slack or Steering after an interrupted close is used
once, and a replayed Slack reply stays absorbed.
([#1896](https://github.com/mvschwarz/openrig/pull/1896),
[#1898](https://github.com/mvschwarz/openrig/pull/1898))
- One stuck row on a removed rig no longer stops the stuck sweep from flagging
the rest, and stopped watchdog jobs release their old schedules.
([#1903](https://github.com/mvschwarz/openrig/pull/1903),
[#1900](https://github.com/mvschwarz/openrig/pull/1900))
- Health diagnoses still list when an unrelated diagnosis row holds a malformed
field. ([#1920](https://github.com/mvschwarz/openrig/pull/1920))
- Upgrading OpenRig no longer stops a working Codex seat at "Hooks need review".
OpenRig can renew approval of its own Codex plugin during an upgrade when the
prior approval exactly matches the previous shipped bundle, nothing is
disabled, and the installed bytes match the shipped bundle. Explicit disables
and unrelated hooks are preserved.
([#1948](https://github.com/mvschwarz/openrig/pull/1948))
- A seat waiting at a prompt that only its pane shows, such as a Codex approval
prompt, is shown as needing attention, with its reason, in the seat view,
`rig ps`, the compact JSON and the rig count.
([#1946](https://github.com/mvschwarz/openrig/pull/1946))
- From contributors: launch probe evidence
([#1499](https://github.com/mvschwarz/openrig/pull/1499), @Aschenbath);
request IDs for creates and checked stops
([#1790](https://github.com/mvschwarz/openrig/pull/1790),
[#1792](https://github.com/mvschwarz/openrig/pull/1792), @bradvin); faster
cost history, ordered stream replay, kept web-UI drafts and guarded sends at
Claude's MCP prompts ([#1756](https://github.com/mvschwarz/openrig/pull/1756),
[#1757](https://github.com/mvschwarz/openrig/pull/1757),
[#1758](https://github.com/mvschwarz/openrig/pull/1758),
[#1864](https://github.com/mvschwarz/openrig/pull/1864),
[#1865](https://github.com/mvschwarz/openrig/pull/1865), @Nikhi00718); a
non-blocking preflight
([#1759](https://github.com/mvschwarz/openrig/pull/1759), @icey-zzz); clearer
compact-plan output ([#1629](https://github.com/mvschwarz/openrig/pull/1629),
@taljeri); exports keep culture files
([#1657](https://github.com/mvschwarz/openrig/pull/1657), @Totopo27); no flash
in terminal views ([#1663](https://github.com/mvschwarz/openrig/pull/1663),
@Vaishnavi220506); pod startup files for added seats
([#1701](https://github.com/mvschwarz/openrig/pull/1701), @AdamWhitehurst); Pi
idle heartbeats ([#1702](https://github.com/mvschwarz/openrig/pull/1702),
@okle100); the `rig ps` activity column
([#1614](https://github.com/mvschwarz/openrig/pull/1614),
@shravansumanthanan); full workflow trails
([#1732](https://github.com/mvschwarz/openrig/pull/1732), @psbanka).
### Behaviour that changed
- `rig ps --nodes` separates every column with a space and adds an ATTN column
before REASON; update scripts that read columns by position.
([#1780](https://github.com/mvschwarz/openrig/pull/1780),
[#1876](https://github.com/mvschwarz/openrig/pull/1876))
- `rig queue show --json` drops `lastNudgeInputBox`, and send results no longer
describe the input box.
([#1738](https://github.com/mvschwarz/openrig/pull/1738))
- `rig down` asks before stopping the rig you're in; without a terminal it stops
nothing and prints the `--yes` command.
([#1838](https://github.com/mvschwarz/openrig/pull/1838))
- `rig up --plan` no longer starts a stopped daemon; it exits with
`daemon_not_running`.
([#1836](https://github.com/mvschwarz/openrig/pull/1836))
- An urgent or critical row's wake starts with `Urgent (marked by …):`.
([#1770](https://github.com/mvschwarz/openrig/pull/1770))
- `rig provider moves` is back with a new job: filing and reading subscription
move reports. It switches nothing.
([#1847](https://github.com/mvschwarz/openrig/pull/1847),
[#1849](https://github.com/mvschwarz/openrig/pull/1849))
- `rig queue show` and `rig queue whoami` print human notices on stderr.
([#1808](https://github.com/mvschwarz/openrig/pull/1808))
- A seat joined with `rig attach` as an outside app stays attached through
`rig down` and restore.
([#1827](https://github.com/mvschwarz/openrig/pull/1827),
[#1834](https://github.com/mvschwarz/openrig/pull/1834))
- `rig send --dangerously-interact --reason` into a seat's input box stops and
shows text already typed or pasted there, apart from suggestions, instead of
pasting over it; clear it and retry, or pass `--type-without-checking`. Keys
for a recognized native menu are sent as before.
([#1892](https://github.com/mvschwarz/openrig/pull/1892))
- `rig send` to a terminal seat types exactly your text, without the From/To
lines, and queue wakes type nothing into it.
([#1100](https://github.com/mvschwarz/openrig/pull/1100))
- A stream body over 16 KiB is stored truncated and marked, and
`rig stream list --after` from a pruned item returns `stream_cursor_expired`
instead of an empty list.
([#1891](https://github.com/mvschwarz/openrig/pull/1891))
- A send held for a draft in the seat's input box reports
`inputPhase: "not_reached"`, and a managed compaction prompt held that way
counts as not sent. ([#1884](https://github.com/mvschwarz/openrig/pull/1884),
[#1889](https://github.com/mvschwarz/openrig/pull/1889))
### Known issues
- **A new Claude agent's startup text can stay unsent in its input box.** Press
Enter in its terminal.
- **Claude seats on a macOS native install can read as needing attention after a
restore** ([#86](https://github.com/mvschwarz/openrig/issues/86)). Check the
seat's terminal before acting on it.
- **A Slack channel-mapping change needs a daemon restart.** Don't use
`rig slack disable` then `enable` for it, which marks waiting alerts as seen.
- **Ubuntu 22.04's tmux 3.2a:** the known crashing query is gone, but a narrower
race remains. Prefer another tmux.
- **`rig daemon start` can take 20 to 40 seconds before its listener warning,**
longer than the TUI's 30-second "restore everything" wait. On a slow host, run
`rig daemon start` yourself first.
- **A Claude seat signed in with a long-lived token (`claude setup-token`) gets
no usage reading.** The reader accepts only claude.ai subscription logins and
reports `not_subscription_login` for any other.
- **Managed Claude launch requires `/usr/bin/env` support for `-0` and `-u`**
(option support checked on GNU coreutils and macOS 15; BusyBox and older macOS
unverified). Without the required option support, launch stops instead of
falling back to credential-bearing command-line arguments.
- **In draft-aware mode, an agent's multi-line message to a Claude seat can
remain unsubmitted when the paste changes Claude's footer hint.** OpenRig
withholds Enter, leaving the text in the composer and later sends waiting.
Observed on Claude 2.1.309 with both 0.7.0 and the 0.7.1 pre-cut build;
[#14](https://github.com/mvschwarz/openrig/issues/14) remains open.
- **Prompt-looking text in a seat's recent output can be mistaken for an active
approval prompt, so OpenRig can refuse sends and queue wakes even while the
seat is working.** Inspect the current native prompt and the refusal before
retrying; do not assume that waiting 15 seconds clears it.
- **`rig acp run --help` points to `reference/acp-agents.md`, which is not
included in this release's reference context pack.** Read
`daemon/docs/reference/acp-agents.md` inside the installed @openrig/cli
package instead.
- **The shared-database check needs `lsof`.** #1763's warning that another live
daemon is using the same database, and the optional
`daemon.db_conflict: stop`, find that daemon with `lsof`. On a host without a
working `lsof` (each lsof call times out after 1 s), the check is skipped
without a message, so neither the warning nor the stop happens. The warning
for a database outside `OPENRIG_HOME` doesn't depend on `lsof`.
- **Managed Claude restoration can require native approvals.** On a seat without
bypass permissions, restoration can ask to read OpenRig files outside its
working directory. In a representative `openrig-core` test on Claude Code
2.1.309 (`acceptEdits`), the restore and audit completed after three one-time
Read approvals (the restore marker, post-compaction instructions and
refocusing skill) plus four approvals for read-only commands. Check the
retained restore map and reported gaps before treating restoration as
complete.
- **A managed Claude restore can remain owed without showing why delivery is
delayed.** If a seat remains idle after compaction, inspect
`rig compact <seat> --state` and its saved restore map. Before sending a
manual restore request, reconcile the native conversation and pending state to
avoid a duplicate; do not repeat `/compact` merely because the restore request
has not arrived.
- **On Linux, workspaces containing very large checkout or build trees can cause
severe daemon stalls and file-watch-limit failures.** The recursive
proof-source watcher covers the workspace root. Keeping large checkout/build
trees outside that root may reduce exposure; this mitigation has not yet been
verified. ([#1813](https://github.com/mvschwarz/openrig/issues/1813))
- **A Claude startup with an expired login can still submit later startup inputs
before noticing the refusal.** The packaged whats-new
(`reference/whats-new.md`) overstates the hold behavior. Resolve the login and
follow the seat's reported continuation guidance; this test did not verify
recovery. ([#1869](https://github.com/mvschwarz/openrig/pull/1869))
- **On Claude Code 2.1.309, a seat configured with the model alias `haiku` and
the plan permission answered on Sonnet in one observed run.** Configuring the
full id `claude-haiku-5-5` gave a Haiku answer in the plan-mode follow-up.
- **A Cursor seat's startup is assisted.** It reports `attention_required` and
needs one operator acknowledgement:
`rig seat clear-attention <seat> --reason "<why>"`. This wasn't rechecked
natively on 0.7.1. ([#1870](https://github.com/mvschwarz/openrig/pull/1870))
- **A resumed Codex seat can be misreported as not interactive when its header
has scrolled off and its footer uses a multi-word model label such as GPT-6.1
Sol medium; `rig up --existing` can then stop.** Reported on 0.7.0; the same
recognition checks remain in 0.7.1.
([#1764](https://github.com/mvschwarz/openrig/issues/1764))
- **Cross-host queue creation can report failure after the row was created.** A
`rig queue create --host` request can time out or return failure even though
the destination host created the row. Check that host for the original row ID
before retrying. If the row exists, do not create a replacement. If a retry is
needed, reuse the same `--id` and payload; an unsuccessful read is not proof
that the row is absent.
- **Automatic Codex hook approval needs OpenRig's plugin folder to match what
shipped.** If `$OPENRIG_HOME/plugins/openrig-core` holds files that didn't
ship, the Codex plugin still installs or upgrades, but OpenRig approves
nothing itself: an existing approval stays as it was, and Codex's own hook
review applies. On a restart without a version change, if a hook file or the
plugin manifest there differs from what this version shipped, OpenRig doesn't
install or upgrade its Codex plugin. On a version upgrade, OpenRig's managed
refresh replaces an edited plugin file with the shipped one and keeps your
edited copy under `$OPENRIG_HOME/backups/managed-refresh/`; after upgrading,
inspect those backups and reapply any deliberate customization.
- **With `CODEX_HOME` set in a seat's environment,
`rig seat restart --keep-conversation` can report that the resume was not
proven and that nothing restarted, although the process actually restarted and
resumed.** Inspect the seat's pane and native `/status` before retrying; a
failed proof read is not proof that no restart occurred.
- **`rig provider switch` does not switch a seat's account in 0.7.1.** Its
precheck can refuse an unknown target, and its execution path is not yet
wired. The separate home-level Codex auth-switch/restart path is not this
command.
### Credits
Thank you to everyone whose work is in this release: @Aschenbath, @bradvin,
@Nikhi00718, @AdamWhitehurst, @puniserv, @pdurlej, @klueless-io,
@shravansumanthanan, @taljeri, @Totopo27, @Vaishnavi220506, @okle100,
@dajiaohuang, @icey-zzz, @akushonkamen, @psbanka and @adampog, and to @lev-gpt,
@XVVH, @Kero-66, @pr0xc3nt4ur1, @VltrnOne, @BillyOutlast, @gogabrielordonez,
@geoff-dhango, @alexveli1, @aanestesia, @team-sudarshana, @oneandonlydean,
@t1m3fr33d0m, @smota and @z4cc, whose reports and ideas led to fixes here.
Thanks also to @george661, who reported
[#1710](https://github.com/mvschwarz/openrig/issues/1710) (partly addressed by
[#1721](https://github.com/mvschwarz/openrig/pull/1721)); @m3ac-AllbrittenJ, who
reported [#331](https://github.com/mvschwarz/openrig/issues/331) (partly
addressed by [#1801](https://github.com/mvschwarz/openrig/pull/1801)); @shintaii
and @gopinathrimc, who reported
[#27](https://github.com/mvschwarz/openrig/issues/27) (partly addressed by
[#1735](https://github.com/mvschwarz/openrig/pull/1735)); @kainne44 and
@bobbiejaxn, who reported [#81](https://github.com/mvschwarz/openrig/issues/81)
(partly addressed by [#1876](https://github.com/mvschwarz/openrig/pull/1876) and
[#1946](https://github.com/mvschwarz/openrig/pull/1946)); and @haichongfu and
@vadym-abstract-factory, who reported
[#14](https://github.com/mvschwarz/openrig/issues/14) (partly addressed by
[#1871](https://github.com/mvschwarz/openrig/pull/1871)).
## [0.7.0] - 2026-10-23
Published 2026-10-23 as `@openrig/[email protected]`, built from the commit tagged
+163 -113
View File
@@ -1,7 +1,7 @@
# What changed in OpenRig 0.7.0
# What changed in OpenRig 0.7.1
This note is for an agent on an install that was just upgraded to 0.7.0. It lists only what behaves differently from
0.6.14 and what to do about it. For everything OpenRig can do, read the capability map:
This note is for an agent on an install that was just upgraded to 0.7.1. It lists only what behaves differently from
0.7.0 and what to do about it. For everything OpenRig can do, read the capability map:
`rig context get onboarding-width/public-what-you-can-do.md`. Each release replaces this file, so
`rig context get reference/whats-new.md` describes the installed version once the upgraded daemon is running. Without
a running daemon, read `$OPENRIG_HOME/reference/whats-new.md`. The daemon refreshes that copy when it starts, so right
@@ -9,134 +9,184 @@ after an upgrade it can still hold the previous version's note.
## After the upgrade
- **Restart the daemon** (`rig daemon stop`, then `rig daemon start`). Six migrations run on the first start (116, 118,
119, 121, 122 and 123). Two settings are added, `terminal.history_limit` (default 10000) and
`terminal.inherit_tmux_environment` (default false), and `provider.subscription_moves` is removed.
- **The bundled openrig-core plugin goes from 0.1.15 to 0.1.17.** Startup replaces installed copies of managed plugins and
marked global skills. It first copies every file it replaces under `$OPENRIG_HOME/backups/managed-refresh/<id>/`,
whether or not anyone edited it, and logs `[plugin-vendor] preserved previous contents of <file> at <copy> before
managed refresh` for each one. A stock upgrade from 0.6.14 copies about 22 files (about 250 KB), and a later start with
no new version copies none. The copies matter only for files someone changed: the copy keeps the bytes, but the change
may no longer be active after the refresh. Keep the log line, because it names the original file and the copy's folder
doesn't. If a copy fails, that plugin or skill isn't refreshed, its files are kept, and the log says so. Copies aren't
cleaned up.
- **If you gave new agents accounts or API keys through tmux's global environment** (`tmux set-environment -g …`), new
agents no longer inherit it (below). Put the values in the seat's `env`, pass `rig up --env KEY=VALUE`, or keep the old
behaviour with `rig config set terminal.inherit_tmux_environment true`. Running agents aren't affected.
- **If you write queue rows to another machine by its self-id** (`member@rig@<self-id>`), run `rig host doctor <alias>`
once per host: bindings learned before 0.7.0 have no address.
- **Restart the daemon** (`rig daemon stop`, then `rig daemon start`). Eight migrations run on the first start (124, 125,
127, 128, 129, 130, 131 and 135). Nine settings are added: `policies.claude_compaction.preparation_root` (unset),
`skills.router_line.enabled` (off), `decisions.enabled` (false), `decisions.consumers`, `decisions.template_dir`,
`retention.stream_days` (30), `retention.stream_max_items` (20000), `provider.selected` (empty) and
`daemon.db_conflict` (`warn`). None is removed.
- **Stream retention is on.** Stream items emitted after the upgrade are deleted after 30 days, or beyond the newest
20,000, unless a record names them (a classification, duplicate link, attempt or disposition). History from before the
upgrade is kept. Raise `retention.stream_days` or `retention.stream_max_items` to keep more.
- **The bundled openrig-core plugin goes from 0.1.17 to 0.1.18.** Startup replaces the installed plugin's changed files:
its Claude hook definitions, three hook scripts and the pre-compaction hook (so hooks start on a seat whose PATH has
no Node), and the `openrig-user`, `messaging-the-human` and `forming-an-openrig-mental-model` skills. As in
0.7.0, it first copies each file it replaces under `$OPENRIG_HOME/backups/managed-refresh/<id>/`, edited or not, and
logs `[plugin-vendor] preserved previous contents of <file> at <copy> before managed refresh`. A copy doesn't mean
anyone edited the file; if someone did, reapply the change from the copy.
- **Claude seats need Claude Code 2.1.280 or newer to see their team skills,** which now arrive as a per-seat plugin
through `CLAUDE_CODE_PLUGIN_DIRS` (below). OpenRig doesn't check the version. A running seat gets the new layout at its
next launch, restore or handover.
- **If a worktree's `.claude/settings.local.json` says `"defaultMode": "acceptEdits"` and the person didn't choose it,**
an earlier OpenRig wrote it when it added or freshly launched a managed Claude seat. 0.7.1 no longer writes it but
doesn't repair it; ask the person which mode they want and set it once.
## New things you can do
- **Hold a person's routine asks while they're away:** `rig gateway human quiet set <id> --daily HH:MM-HH:MM` or
`--until <time>` (`--tz`), and `end`, `clear` or `show`. A held ask posts once, without a mention, when quiet ends.
Asks tagged `escalation` or `wake-escalation` are not held.
- **Apply a person's mode** ("asleep", "out of office"): `rig gateway human mode save <id> <name>` (with
`--availability`, `--expected-back`, `--decision-room "<their words>"`, `--exclude`, `--quiet`), then `apply <id>
<name> [--until …]`, `current`, `end` and `account`. Never tell the person "back to normal" while the account shows an
effect `kept`, `pending` or `failed`.
- **Decide an ask inside a person's decision room:** check `rig gateway human mode room <id>`, then `rig gateway human
mode decide <qitemId> --application <id> --reason "…" --reversible|--irreversible`. It's recorded as delegated, never
as their answer, and only the agent that asked can decide. Permission prompts are refused (`permission-prompt`).
- **Pass a rig's name instead of its id** to `archive`, `unarchive`, `release`, `shrink`, `expand`, `snapshot`,
`export` and `restore --rig`. A name two rigs share is refused and the matching ids are named: with `--json`,
`archive`, `unarchive`, `release`, `shrink`, `expand` and `restore status --rig` return `rig_ambiguous`.
- **Stop a managed compaction's follow-up after `/compact` was sent:** `rig compact --cancel` now also disarms the
restore and audit prompts that would follow. It sends no input and can't undo the `/compact`.
- **See your work candidates:** `rig queue whoami` adds `currentWorkChoice` when current work isn't settled.
- **See why a wake didn't land:** `rig queue show --json` adds `lastNudgeInputBox`.
- **See each seat's configured effort:** the TUI agent table's `CFG EFF` column, and `effort` and `effortSource` in
`rig ps --nodes --full --json`. It's the configured level, not what the model ran.
- **Choose how much automatic input reaches a seat:** `rig seat set-typing-guard <seat> --mode <mode> --reason "…"`, where
`<mode>` adds `openrig-urgent` (OpenRig's own notices and anything urgent) and `urgent-only` between `off` and `hold`.
Mark a message urgent with `rig send --urgent`, or create the row at priority `urgent` or `critical`. Held input stays
readable (`rig seat held-messages`) and is never replayed.
- **Choose how far OpenRig and peers may act on a seat:** `rig seat set-terminal-policy <seat> --preset
no-peer-interventions|help-within-instructions|full-control --reason "…"`, with `--helper <addresses…>`,
`--rig-default` (seats added later), and exceptions such as `--peer-compaction deny` or `--openrig-model allow`.
Managed compaction and saved model or effort changes are checked; a denial is `terminal_policy_refused`. Other
interventions are guidance only.
- **Read a seat's planned permissions:** `rig seat status <seat>` shows what its next fresh managed launch will pass and
where each part comes from, and its terminal policy. `rig setup --router-line yes|no` decides whether OpenRig adds its
one line to shared guidance files.
- **Let a person choose whether every ask reaches Slack:** `rig gateway human set <id> slack-subscription
every-ask|urgent-only|unset`. Every ask is on the TUI's Feed either way. Under `urgent-only`, only an ask
created or handed off with `--alert` posts. An ask marked `--alert` stands out in Slack (an interrupt with a mention)
under either setting, so use it only for something only they can do, or an approval whose wait costs now.
- **Give one Claude member its own setup** in the rig spec: `agent_file`, `append_system_prompt_file`, `plugin_dirs` and
`advisor` (an Advisor model). They're copied into that seat's storage, never the project.
- **See a seat's own skills:** `rig skill loadout --seat <session|self>`.
- **Reach the team from an assistant without a shell:** the MCP server has 34 tools, including `rig_whoami`,
`rig_restore_status`, `rig_team`, `rig_telemetry_events`, following a handoff, reading a finished item's artifact and
deciding inside a person's decision room. `rig mcp serve --http` serves them over HTTP; `rig mcp token add <name>
--seat <session>` gives each caller its own seat.
- **Hand a row's task to an outside agent:** `rig acp run <row>` for an ACP agent (Hermes, OpenClaw).
`docs/reference/a2a-agents.md` covers A2A agents.
- **Run a community harness that names, reports or reopens its conversations:** preset fields `launch_result`, `resume`,
`names_conversation` and `startup_assisted`, with examples for Cursor, Hermes and OpenClaw under
`docs/reference/community-harness-examples/`.
- **Change one edge on a running rig:** `rig edge add <rig> <from> <to> --kind <kind>` and `rig edge remove <rig>
<edge-id>` (`--plan`, `--json`). A `delegates_to` change says when it moves who work routes to.
- **Run one spec as several rigs:** `rig up <spec> --name <rig>`.
- **Retune a watchdog in place:** `rig watchdog update <jobId> [--interval-seconds n] [--message text] [--spec path]`
keeps its id and attachments. The context watch takes `--threshold-tokens` or `--threshold-percent`.
- **Put restore maps where seats may write:** `rig config set policies.claude_compaction.preparation_root <abs path>`.
- **Pick a Herdr session:** `rig terminal open <view> --provider herdr --session <name>`.
- **Close a row with its artifact:** `rig queue update <id> --state done --evidence-ref <path>`.
- **File and read subscription move reports:** `rig provider moves report` and `rig provider moves`. `--host <id>` and
`--codex-home <dir>` on `rig auth status|list|switch` and `rig seat restart` act on another machine's Codex home.
- **Route stream observations with typed decisions (opt-in, off by default):** once `decisions.enabled` is true,
`decisions.consumers` includes `stream` and the intake seat has `OPENROUTER_API_KEY`, `rig project wake --decide`
gives each eligible stream observation one bounded typed decision during that seat's wake: create a row for a supplied
owner, join supplied work, or record a duplicate or no action. Anything uncertain, refused or failed goes to the
intake seat as its own disposition, and the model isn't asked again. `rig project decisions status` shows the state
without making a call. Without `--decide`, or with decisions off, nothing changes; turning decisions off no longer
strands an accepted create or join whose effect hadn't landed.
- **Read the stream as a subscriber:** `rig stream subscribe <seat>` (`--tags`, `--type`; re-subscribing keeps the
place), then `rig stream read` returns the next bounded page for the calling seat (at most 20 items and 64 KiB, with
`more`, `unread` and any `gap`). `rig stream subscriptions` lists readers; `rig stream unsubscribe <seat>` stops one.
`rig stream show <id>` says what became of an observation.
- **Keep the kernel to the harnesses you chose:** `rig setup --providers <list>` is now saved as `provider.selected`, and
the kernel starts seats only for those.
- **Stop a second daemon on a live database:** `rig config set daemon.db_conflict stop` refuses a start whose database a
matching live daemon already holds (the default `warn` only warns). `rig daemon start --allow-db-conflict` allows one
deliberate start.
## Behaviour that changed
- **New agents start from a clean environment, not tmux's global one.** A new seat or handover successor gets:
- the launch environment: `PATH`, `HOME`, `USER`, `LOGNAME`, `CODEX_HOME`, `OPENRIG_HOME`, `OPENRIG_URL`,
`OPENRIG_PORT`, `OPENRIG_HOST`, the seat's own identity values (such as `OPENRIG_SESSION_NAME`) and the allowed
provider sign-in variables. Not `OPENRIG_DB` or `TMUX_TMPDIR` (see Known gaps);
- the daemon's `LANG`, `LC_ALL`, `LC_CTYPE`, `TZ`, `TMPDIR`, `XDG_CONFIG_HOME`, `XDG_DATA_HOME`, `XDG_CACHE_HOME` and
`CLAUDE_CONFIG_DIR`;
- the values named in tmux's `update-environment`;
- its own `env`.
Shell startup still runs. `rig setup` warns when it sees a custom tmux configuration.
- **After a reboot, the daemon restores a kernel whose seats are all detached** (and still bound to their sessions), in
the background, as `rig up kernel --existing` would. `OPENRIG_NO_KERNEL=1` still skips it, and `rig start --json` reports `kernelRestore`.
- **A seat missing a required startup file no longer blocks its rig's restore:** `rig up <rig> --existing` holds that
seat and restores the others (`partially_restored`).
- **Seats added to a running rig** with `rig expand`, `rig grow` or add-member get its culture file and rig-level
startup, for rigs created on 0.7.0 or later. Older rigs get no backfill.
- **A busy daemon gets the real request.** The CLI refuses only when the daemon is stopped or stale, the connection is
refused or blocked, or the daemon answering belongs to another OpenRig home. A slow daemon is no longer read as down.
- **A new seat's first startup message** says it's OpenRig's identity context, not a task. A seat whose startup sends
nothing else is asked to run `rig whoami --json` and say it's ready for an assignment.
- **A new Claude seat's first startup text** waits briefly (about five seconds) for Claude's input box before it's
sent.
- **Codex seats that select openrig-core get the plugin installed into Codex.** While Codex hooks are on
(`runtime.codex.hooks_enabled`, default on), OpenRig installs it with Codex's own marketplace and plugin commands at
daemon start and at a fresh launch, unless the person's Codex configuration disables it.
- **A first install only** (no earlier install or plugin cache): OpenRig checks the installed hook files against its own
copy, then trusts the plugin's six shipped hooks by their exact definitions, so the seat starts without Codex's hook
review.
The file check happens only when trust is granted: a later edit to the cached hook scripts keeps that trust, as with any hook trusted in Codex.
- **An existing install keeps the person's choices.** A plugin or hook they disabled stays disabled. One they left
untrusted stays under Codex's review: Codex records nothing for "continue without trusting", so OpenRig doesn't read a
missing trust record as permission.
- **What it adds:** the four managed inline hooks stay the only activity reporters; the plugin adds refocus and its
skills.
- **Watchdog delivery is recorded as it happened:** `rig watchdog status` outcomes are `sent`, `refused`, `failed`,
`skipped` or `terminal` (0.6.14 had `sent`, `skipped` or `terminal`). Every reminder carries "Delivery may repeat after
an unconfirmed attempt." under its header line, and two refusals in a row at one seat's prompt raise that seat's prompt
alert. A park wake shows the continuation its park recorded (`Recorded continuation: …`), so record one when you park.
- **Slack:** a thread reply answers a parked question only if it was written after the question posted, and a message
Slack rejects as `invalid_blocks` isn't posted again.
- **Claude Code team agents are asked for permission less often.** Housekeeping commands such as `archive`, `attach`,
`bind`, `release`, `reconcile-session`, `config set` and `seat continue` no longer prompt. `seat restart` and `policy
permissions apply` now do.
- **`rig up --plan` waits as long as an apply** (120 seconds). An unanswered plan exits 1 and is safe to run again.
- **`rig setup` keeps 10,000 rows of tmux history**, down from 50,000 (`terminal.history_limit`, 2000 to 1000000).
- **Team skills live in each seat's own storage** (`$OPENRIG_HOME/state/seats/<rig id>/<logical seat>/<runtime>/`), not
in the project's `.claude/skills` or `.agents/skills`. Claude seats get them as a generated plugin (`openrig:<id>`),
Codex seats as their own catalog. If a link sits in that path, the seat starts without them and the result names
what wasn't delivered.
- **Urgent wakes are labelled:** an urgent or critical row's wake starts with `Urgent (marked by …):` at every seat. A
seat on `hold` gets one held notice per wake instead of re-nudges, and lifecycle work is refused at the middle levels as
at `hold`.
- **A daemon restart picks up a managed compaction where it stopped.** An owed restore step resumes, a `/compact` that
may have been sent is never sent again, and `rig compact --state` shows anything stranded or owed.
- **A Claude seat whose startup turn is refused** (an expired login, say) holds the rest of its startup context as owed.
A startup input sent before the refusal is noticed can still be submitted (see Known issues in the
[0.7.1 release notes](https://github.com/mvschwarz/openrig/releases/tag/v0.7.1)).
- **`rig send` refuses with `target_needs_input`** when a Claude seat's hook has just reported it running and its screen
shows an MCP enablement menu, a question or a permission prompt.
- **`rig down` asks before stopping the caller's own rig.** Without a terminal it exits 1, stops nothing and prints the
`--yes` command.
- **`rig up --plan` doesn't start a stopped daemon:** it exits 1 with `daemon_not_running` and names `rig daemon start`
and `--no-kernel`.
- **`rig daemon start`** waits up to 20 seconds for a slow daemon, and starts with a warning when only a secondary
listener, such as Tailscale's, can't be verified.
- **A seat joined with `rig attach` as an outside app** (Claude Desktop) stays attached through `rig down` and restore
(`left_attached`). To replace it, `rig unclaim <name>`, then launch.
- **New seats get the daemon's `OPENRIG_DB` and `TMUX_TMPDIR`.**
- **A rebuilt Codex seat keeps its observed permissions,** and a read-only Codex profile launches without OpenRig's
writable roots.
- **A seat's own role** goes only to that seat, never into a shared `CLAUDE.md` or `AGENTS.md`, and `rig down` returns
guidance files byte for byte.
- **Workflow actions** (`project`, `route`, `resume`, `abort`) record the calling agent; a request with neither identity
nor actor gets the shared `actor_required` error.
- **`rig provider moves` is back** for subscription move reports. It switches nothing.
- **`--dangerously-interact` into a seat's input box stops first** when the box already holds typed or pasted text: it
shows that text (apart from suggestions) and types nothing. Clear the box and retry, or pass `--type-without-checking`,
which clears nothing. Keys for a recognized native menu are sent as before.
- **A terminal seat gets exactly the text sent to it,** without the From/To lines (the result says `envelopeOmitted`).
A queue wake to a terminal seat types nothing and fails `failed:terminal-seat`; the row stays queued.
- **A daemon restart that can't see the seats' tmux server** no longer detaches seats whose recorded process still
runs, so it doesn't relaunch them beside themselves.
- **Provider credentials and the activity-hook token stay off tmux, shell and `env` command lines** at launch and
handover. A launch whose staging fails stops instead of falling back.
- **An answer retried from Slack or Steering** after an interrupted close reuses the first reply and finishes the
request once.
- **One bad row no longer stops the stuck sweep** from flagging the others; **a malformed unrelated diagnosis row** no
longer stops health diagnoses from listing.
## Output that changed shape
- **`rig gateway human list`** shows each person's availability (`available`, `focus`, `away` or `off`) where it showed
`away` or `available`, plus a `quiet:` line; JSON adds `availability` and `quiet`.
- **`rig attach`** prints `Sender:` (and `Tmux:` when the names differ), and `rig whoami` adds `identity.senderAddress`.
A clashing member name is refused with `address_conflict`.
- **Send results** carry `managedCompaction`, and the CLI prints a `Notice:` line.
- **`rig ps --rig <unknown>`** exits 1, and `--host H --rig X` filters by rig.
- **`rig ps --nodes`** separates every cell with one space (the default row is 5 columns wider), adds an `ATTN` column
(`yes`, `no` or `?`) before `REASON`, and marks a `running` seat whose tmux couldn't be reached as unconfirmed.
- **`rig queue show --json`** no longer has `lastNudgeInputBox`, and send results no longer describe the input box.
- **`rig queue show` and `rig queue whoami`** print their human notices on stderr, so stdout is the JSON.
- **A claimed row whose owner waits on a person** reads pickup `needs-input`, with the reason.
- **`rig down --json`** adds `leftRunning`; `rig reconcile-session` says whether resume metadata was recorded.
- **`rig compact-plan`** labels its thresholds as its own and says whether automatic compaction is on.
- **A send held for a draft** in the seat's input box reports `inputPhase: "not_reached"`: it was never typed.
- **A stream body over 16 KiB** is stored truncated, ending `[truncated by OpenRig: kept N of M bytes]`, and reads mark it
`bodyTruncated`. `rig stream list --after <sortKey>` from a pruned item returns 410 `stream_cursor_expired`, naming
`--since` to resume, instead of an empty list.
## What to stop doing
- **Don't use `rig provider moves`:** it's gone with its setting. Report a subscription move as a queue item to whoever
asked.
- **Don't steer a new seat's account or keys through tmux globals.** Use the seat's `env` or `rig up --env`.
- **Don't close a row `done` with `--closure-reason blocked_on`.** It's refused with `invalid_closure_reason`; use `rig
queue block <id> --on <child>`.
- **Don't treat "daemon did not respond" as down.** Check the effect before any retry or restart.
- **Don't look up a rig id first** for the commands above; pass the name.
- **Don't restart the daemon to stop a managed compaction's follow-up prompts.** Use `rig compact --cancel`.
- **Don't run `rig up kernel --existing` by hand after a reboot** before checking `rig status`.
- **Don't reuse a `deliveryId` to deduplicate a send,** and don't pass `--reason` or `--actor` to `rig slack verify`.
- **Don't read `lastNudgeInputBox`.** It's gone.
- **Don't parse `rig ps --nodes` by column position.** Use `--json`, with `--fields` to pick fields.
- **Don't look for a team seat's skills in the project folders.** Use `rig skill loadout --seat`.
- **Don't stop and re-register a watchdog to change it.** Use `rig watchdog update`.
- **Don't take a rig down to fix one edge.** Use `rig edge add` or `remove`.
- **Don't print `OPENRIG_ACTIVITY_*` values** while looking for identity. Use `rig whoami`.
- **Don't use `--dangerously-interact` to type over a half-written input box.** It stops and shows the text; choose
explicitly, or use `rig send --urgent` where the seat's interruption level allows it.
## Known gaps in 0.7.0
- **A new seat doesn't get the daemon's `OPENRIG_DB` or `TMUX_TMPDIR`.** A tool in the seat that reads `OPENRIG_DB`
directly can fall back to the default database. If you rely on either, pass it in the seat's `env` or with `rig up
--env`.
- **A launch that warns "Scoped tmux environment unavailable; retaining the previous environment"** didn't give that seat
the clean environment, and the seat may lack OpenRig's variables. Check `env` in the seat before relying on them.
- **A Slack channel-mapping change needs a daemon restart** (`rig daemon stop`, then `rig daemon start`). Don't use `rig
slack disable` then `enable` for it: enabling marks any alerts waiting to post to Slack as already seen, so open
exchanges miss them.
## Known gaps in 0.7.1
- **A new Claude seat's startup text can stay in its input box unsent.** If a fresh Claude seat sits idle with text at
its prompt, press Enter in its pane, or ask the person to.
- **The TUI's terminal button refuses inside a Herdr pane reached over SSH.** Start the TUI with `env -u SSH_CONNECTION
-u SSH_CLIENT -u SSH_TTY rig tui`, or run `rig terminal open '<view>' --provider herdr`.
- **Claude seats on a macOS native install can read as needing attention after a restore.** Check the pane before
acting on it.
- **Ubuntu 22.04's stock tmux 3.2a can crash its whole server** when OpenRig checks a pane that has just closed. Avoid
tmux 3.2a for OpenRig (`tmux -V`).
- **A Slack channel-mapping change needs a daemon restart.** Don't use `rig slack disable` then `enable` for it: enabling
marks any alerts waiting to post to Slack as already seen.
- **Ubuntu 22.04's tmux 3.2a:** the query known to crash its server is gone, but a narrower race remains. Avoid 3.2a
(`tmux -V`).
- **`rig daemon start` can take 20 to 40 seconds** before its listener warning, longer than the TUI's 30-second "restore
everything" wait. On a slow host, start the daemon yourself first.
- **A launch that warns "Scoped tmux environment unavailable; retaining the previous environment"** didn't give that seat
the clean environment. Check `env` in the seat before relying on OpenRig's variables.
- **Going back to 0.7.0 with a Slack subscription set:** 0.7.0 can't read a person file that holds one, and its people
registry stops loading. Save the choice first (`rig gateway human show <id> --json > <id>.json`), then run
`rig gateway human set <id> slack-subscription unset` (`urgent-only` becomes every-ask, as on 0.7.0); set it again after
returning to 0.7.1. A person file still holding a `subscriptions:` entry fails on 0.7.0 too. Don't restore an older
gateway folder or database instead: that can lose newer people, bindings and delivery records.
- **A Herdr tile over SSH** doesn't come back by itself after a Herdr restart. Reopen it with `rig terminal open <view>
--provider herdr`.
- **Delegated decisions:** the ask is created before the decision, so without quiet hours it can post to the person
first. Pair a decision room with quiet hours, or decide before asking.
- **`restore-check` still treats a missing startup file as rig-wide.** Trust `rig up --existing`'s per-seat result.
- **Managed Claude launch requires `/usr/bin/env` support for `-0` and `-u`** (option support checked on GNU coreutils
and macOS 15; BusyBox and older macOS unverified). Without the required option support, launch stops instead of
falling back to credential-bearing command-line arguments.
- **In draft-aware mode, an agent's multi-line message to a Claude seat can remain unsubmitted when the paste changes
Claude's footer hint.** OpenRig withholds Enter, leaving the text in the composer and later sends waiting. Observed on
Claude 2.1.309 with both 0.7.0 and the 0.7.1 pre-cut build; #14 remains open.
- **A Claude seat signed in with a long-lived token (`claude setup-token`) gets no usage reading.** The reader accepts
only claude.ai subscription logins and reports `not_subscription_login`.
+5 -5
View File
@@ -1,12 +1,12 @@
{
"name": "openrig",
"version": "0.7.0",
"version": "0.7.1",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "openrig",
"version": "0.7.0",
"version": "0.7.1",
"license": "Apache-2.0",
"workspaces": [
"packages/daemon",
@@ -7069,7 +7069,7 @@
},
"packages/cli": {
"name": "@openrig/cli",
"version": "0.7.0",
"version": "0.7.1",
"hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": {
@@ -7104,7 +7104,7 @@
},
"packages/daemon": {
"name": "@openrig/daemon",
"version": "0.7.0",
"version": "0.7.1",
"license": "Apache-2.0",
"dependencies": {
"@hono/node-server": "^1.13.0",
@@ -7146,7 +7146,7 @@
},
"packages/ui": {
"name": "@openrig/ui",
"version": "0.7.0",
"version": "0.7.1",
"license": "Apache-2.0",
"dependencies": {
"@fontsource-variable/jetbrains-mono": "^5.2.8",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "openrig",
"version": "0.7.0",
"version": "0.7.1",
"private": true,
"license": "Apache-2.0",
"type": "module",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@openrig/cli",
"version": "0.7.0",
"version": "0.7.1",
"type": "module",
"description": "Build your own network of agents from Claude Code, Codex and Pi: persistent teams with roles, shared context and owned work.",
"keywords": [
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@openrig/daemon",
"version": "0.7.0",
"version": "0.7.1",
"private": true,
"license": "Apache-2.0",
"type": "module",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@openrig/ui",
"version": "0.7.0",
"version": "0.7.1",
"private": true,
"license": "Apache-2.0",
"type": "module",