Repository navigation
OpenRig v0.6.8
OpenRig 0.6.8
0.6.8 is mostly fixes, and most of them came from the community. One skill being edited in the managed catalog no longer stops every seat's skills, a launch plan can never start a seat by accident, Slack replies stay in their thread, a seat that stays quiet after compacting is still restored, and a workflow that could never finish is caught when you validate it. Twelve of this release's 21 changes came from nine outside contributors.
npm install -g @openrig/cli
It is built from main at aa126c74 (after #1041). Work merged to main after that point isn't in this release. If something breaks for you, please open an issue.
Before you upgrade
Restart the daemon after upgrading the CLI. The running daemon keeps its old build until it restarts: run rig daemon stop, then rig daemon start. There are no database migrations in this release, and the bundled openrig-core plugin stays at version 0.1.8.
Behaviour that changed:
- TUI keys. On an empty command line,
jandkmove the selection down and up (#1019). The footer toggle moved fromftoF, and in a selected Scopes view the mini-requirements and narrative keys moved frommandntoMandN, so typed commands such asfind,feed,mission,narrativeandneedsreach the command line whole (#1020). - Workflows.
rig workflow validatereportsstep_cannot_finish, and refuses to instantiate, when no allowed exit can finish a step or route onward. An allowed mapped exit is valid; in a dependency graph,handoffcan finish a sink without a next step. A spec that validated on 0.6.7 can be refused now; the message names the step and the fix (#1012). - Skill projection exit codes.
rig context work-install --runtime <runtime>andrig skill loadout --runtime <runtime>report a selected skill skipped for uncommitted catalog content with exit 1. Inspection is the default; applying with--apply-skillsor--apply, respectively, still reconciles the remaining clean skills. Exit 1 alone doesn't say whether files were changed (#1031). - Launch plans.
rig launch --planrefuses to send to a daemon older than 0.5.9, which would ignore the plan and launch (#1024).
Highlights
One skill being edited no longer blocks every seat's skills. Before, any uncommitted or untracked file in the managed skill catalog made the whole catalog unavailable, so rig context work-install, rig up, launch and restore preflight all failed for every seat. Now a skill with uncommitted content is skipped by itself and named in a warning, and the remaining clean skills stay available for projection (#1031).
- A seat that already has a copy of the skipped skill keeps that copy as it was. After the catalog change is committed or restored, the next applied projection can refresh it.
- No seat receives the skill's uncommitted files, whichever runtime it uses.
- A seat's launch only warns about a skipped skill; it doesn't fail.
- An uncommitted change to
catalog.yamlitself still makes the whole catalog unavailable, because it changes what every selection means.
See a launch before it happens, safely.
rig launch <rig> <seat> --plannow previews a single seat's launch, as--seatsalready could: the snapshot it would use, the target, and what happens to the other seats, without launching anything. It works over--hosttoo (#1023).- A daemon older than 0.5.9 ignores the plan flag and launches.
rig launch --plannow reads the daemon's version first and refuses to send to such a daemon. If an answer comes back that isn't a plan but shows the daemon acted, the command exits non-zero and tells you to checkrig ps --nodes -Abefore retrying (#1024).
Slack.
- When a person replies inside a thread OpenRig opened, an agent's answer with
rig queue create --human-intent update --reply-to <that reply's row>now posts in the same thread, instead of as a new message (#1021). Themessaging-the-humanskill says how. - When Slack rate-limits a post and asks for a pause of 10 seconds or less, OpenRig waits that long and retries the post once. A longer pause is still left to the usual retry of retained messages (#1026).
- The check that keeps the Slack bot token on Slack's own hosts now sits inside the private-file download itself, not only at its one caller (#1006).
A workflow that could never finish is caught at validate. Before, rig workflow validate passed a step with no exit that could finish it, and the workflow then stalled on that step. Now validate reports it, naming the step and how to fix it (#1012).
A quiet seat is restored after compaction. After a managed /compact, the turn boundary, the restore request and the read-depth audit now reach a Claude seat that takes no turn. Before, they waited for the seat's next turn, so a seat with nothing to do could sit unrestored until something woke it. Each stage still waits until the seat's screen shows it idle, and only a fresh usage reading can start a compaction (#1035).
The TUI keeps typed commands whole. Agents drive the TUI by typing, so every command now reaches the command line intact, and j/k navigate when the line is empty (#1019, #1020).
Dependency and install-script changes
- npm dependencies: none added, removed or changed. External dependency lock entries and direct ranges are unchanged, and the Node requirement is unchanged (
node >=22). OpenRig's own version fields in the package files and the lockfile advance to 0.6.8 (#1038). - Install scripts: unchanged. The package's only lifecycle script is still
postinstall: node scripts/check-abi.mjs. - Building from source: the CLI and TUI
buildscripts now finish their output with one Node script,scripts/prepare-workspace-build.mjs, instead ofchmod,mkdirandcp, so they no longer need POSIX shell tools (#1033, originally contributed by @dajiaohuang in #956). This hasn't been run on Windows yet; WSL2 is still the way to run OpenRig there. - Database: no migrations.
Everything else since 0.6.7
Launch, restore and seats. A Claude seat launched with --remote-control confirms its identity instead of staying "identity not confirmed" (#1025). rig down still saves its recovery snapshot when finding one seat's resume details fails, instead of skipping the snapshot for every seat (#1030).
Queue. A wake for a handed-off task now shows the task's summary on one line, up to 120 characters, so the woken seat sees what it's for (#1028).
Scope and proof. rig scope audit accepts slice folders numbered 100 and above, which rig scope slice create makes after 99 (#1016). rig proof add --file keeps a leading UTF-8 byte-order mark in the artifact instead of removing it (#270).
Docs. A topology naming reference explains how to name a team's pods and seats, from purpose to domain to role, and the rig spec, bundle and authoring guides point to it (#1000). The architecture and CLI reference docs were brought to the 0.6.7 release (#1015). The README, reference guides and architecture docs were brought to 0.6.8 (#1041), and the what-changed note, capability map and changelog written for it (#1039).
How it was tested
- The final package:
openrig-cli-0.6.8-aa126c74.tgz, 4,135 files, SHA-256b573304ffad3f4b3ed412d819de9c6fc587e5e2fbbe6c56ed1c099cc2d732b50, built fromaa126c74. Compared file by file with the earlier candidate build from4f7626e6, 82 files changed, all traced: the compaction fix's compiled files (#1035), the version fields and the packaged context-pack manifests that carry the version (#1038), the packaged what-changed note, capability map and reference guides (#1039, #1041), and the two build stamps. Installed into a fresh Linux server: the CLI and daemon reported 0.6.8 ataa126c74, clean;rig ps, help and specs ran; the starter and factory launch plans listed 2 and 7 seats; the workshop's create, inspect and install plan from the current registry passed; and the installed package served the 0.6.8 what-changed note and the capability map for 0.6.8. The same check confirmed four of this release's changes: a single seat's launch plan selected only that seat and changed nothing; a daemon older than 0.5.9 received no plan request and the CLI exited 1 with the upgrade message; a catalog skill with uncommitted changes was skipped while its clean sibling projected its exact files; and, in a scripted check without a real compaction, a pending post-compaction step waited while the screen showed compaction and was sent once the seat was idle. No agents were launched in this check. The automated tests passed onaa126c74. - Each change ran the repository's automated tests, merged into the main of its day, before it merged.
- Not tested: building on Windows; live Slack for thread replies and rate limits; a real compaction; the TUI's keys in a live session; the full first install from nothing.
Known issues
- Not yet proven on a real machine: the full first install from nothing, on Mac, Linux and Windows, hasn't been run for this release.
- Help without a prompt has been checked in a live Claude session for only one selected lifecycle-help command (#927), as in 0.6.7.
- Codex team seats don't yet ask before lifecycle commands such as
rig upandrig down. Claude Code team seats do. - The send gate trusts the latest recorded hook, as in 0.6.7. If a seat's hooks are recorded out of order, a send can be held for a question that's already answered, or let through to one that's waiting.
- A Codex seat whose permission request was approved automatically can still read "needs input" (#896).
- A launched team still writes its skills into its working folder.
rig scope mission approvewrites its stamp into the daemon's workspace and ignores--workspace(#995).- After a restart,
rig statusshowsKernel: skippedwhatever the kernel seats' state. Read them withrig ps --nodes --rig kernel --full. rig doctorfails for a harness you don't use. Only the harnesses your teams use need a login.- Slack channel map: replies are matched to a thread by its timestamp alone, missed-message recovery covers the default channel only, and private channels and direct messages aren't supported targets, as in 0.6.7.
- Refocus after compaction hasn't been proven on a long-running install.
- Older issues, as in 0.6.7: the starter's Codex reviewer needs a Codex newer than 0.145; a restore can report a problem with a seat that works (#273); a
claudealias defined only in a nushell rc doesn't resolve; after a reboot, start the daemon withrig daemon startand bring your rig back withrig up <name> --existing; the web UI's file preview runs scripts, so preview only files you trust; browser access isn't complete browser isolation; and Codex network inside the sandbox hasn't been checked with real logins, managed policy bundles or on Linux.
Thanks
To the people whose pull requests are in this release: @Bortlesboat, @DeryFerd, @pr0xc3nt4ur1, @rem4ik4ever, @rudycelekli, @tianqizhao0704, @Totopo27 and @Vaishnavi220506; and to @dajiaohuang, whose Windows build change from #956 is in this release as #1033.
And to the people whose reports shaped fixes here: @ivannovak (#822), @pono-yviavant (#883), @pr0xc3nt4ur1 (#1017), @some-marketing (#887) and @tianqizhao0704 (#1011).