Repository navigation
Name the typed target and machine in the release note and the supervisor handoff - #645
Merged
Merged
Conversation
vjovanov
force-pushed
the
fix/issue-586
branch
from
November 8, 2026 02:45
3c7c007 to
0c7dd8b
Compare
vjovanov
marked this pull request as ready for review
November 8, 2026 02:45
vjovanov
force-pushed
the
fix/issue-586
branch
8 times, most recently
from
November 8, 2026 09:42
f2d36e8 to
73d3341
Compare
…get they were given, and pin both red The reclaim note of `rhei release` and the self-loop `rhei next` hands a manual supervisor now say, at §FS-rhei-release.3.1 and §FS-rhei-supervision.3.4, that their commands follow §FS-rhei-errors.1.2.1: a typed member printed as typed, never the widened project and never no target, with any given machine passed on. The e2e tests port the #586 reproducer. Six are ignored as red until the fix; the typed-project and omitted-target handoffs already pass and stay as guards.
…sor handoff The reclaim note of `rhei release` printed its `rhei transition` undo with no target and dropped a typed `--state-machine` from both of its commands, so the undo failed pasted from anywhere but inside the project. The self-loop `rhei next` hands a manual supervisor printed the project a typed member widened to, as an absolute path. Both now go through the help-target helpers, as does the manual-release refusal's message, which repeated its help's commands without the target.
On Windows the temporary plan and machine paths hold backslashes, so the note quotes them; the test compared them with the bare paths and failed only there.
vjovanov
force-pushed
the
fix/issue-586
branch
from
November 8, 2026 10:18
73d3341 to
7e6ed20
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #586
Two commands rhei prints on success now name the target they were typed with, as a help does.
rhei release's undo used to have no target, so it failed when pasted from anywhere but inside the project. The commandrhei nexthands a manual supervisor used to name the whole project the typed member widened to, as an absolute path.Before and after
From the directory above a project, using the fixture from #586:
Before, the note's undo had no target, and pasted from the same directory it failed:
Now both commands in the note name the plan, and the undo runs as printed:
For a manual supervisor,
rhei next project/auth.rhei.md --task auth.1used to hand overrhei transition /tmp/.../work/project --task auth.1 --from supervising --to supervising --release-subtree. It now hands overrhei transition project/auth.rhei.md --task auth.1 ... --release-subtree.What changed
rhei releasebuilds both commands in the note, therhei nextreclaim and therhei transition ... --to <initial>undo, withhelp_command_with_or. Each one names the target as it was typed: a member as typed, a project as typed, and with no target the same discovered word therhei nexthalf already printed. Each also carries a--state-machineif one was typed. Before, therhei nexthalf had the target but dropped a typed machine, and the undo had neither (crates/rhei-cli/src/cli/release_command.rs).rhei transitionthatrhei nexthands a manual supervisor gets its target fromhelp_target_word_or(input), notshell_quote(input.display()). By that pointinputis the absolute project the typed member widened to. The machine argument it already carried is unchanged (crates/rhei-cli/src/cli/manual_supervision_release.rs).manual_release_preflightrefuses a release that would drop unread checkpoints, its message used to printrhei retry <id>andrhei transition <id> ... --release-subtreewith no target, while its help printed the full commands. Now each command is built once and used in both the message and the help.The spec now says both lines follow the target rule a help follows (§FS-rhei-errors.1.2.1). That settles the question the issue left open: does a rule written for helps also cover a success note? No point changes meaning.
rhei nextandrhei transitionas commands to paste, both name the target and machinerhei releasewas given, and neither is printed without a target, so each runs from the directoryrhei releasewas typed in.rhei nextwas given, a typed member printed as typed rather than the project it widens to.Verification
tests/e2e/help_target_success_line_tests.rsis new and covers each line for a typed member, a typed project, an omitted target and a typed machine. Six of its tests were committed red (#[ignore = "red until #586 ..."]) before the fix and pass after it. The other two, a typed project and an omitted target for the supervisor's handoff, already held and stay as guards.manual_release_refusal_message_names_the_typed_target.release_explains_a_ticket_left_past_the_initial_state(tests/integration/integration_markdown_plans/release.rs) now expectsrhei transition <plan> --task plan.1 --from in-progress --to pending --state-machine <machine>;engine_release_with_pending_checkpoints_keeps_existing_semantics(tests_retry_supervision.rs) now expectsrhei retry <plan> --task plan.1;tests/e2e/supervision_manual_release_guard_tests.rsnow expectsrhei retryand--task plan.1.3c7c00755d(DEFECT GONE: both lines name project/auth.rhei.md).pre-commit run --all-filespasses on3c7c00755d, with grund at CI's pinned 0.18.0. Earlier in the run,cargo fmt --check,cargo clippy -D warnings,cargo build --workspace --all-targetsandfissile check --stagedalso passed.Found and not fixed
Review round 1 approved the change with no blocker or major findings. These were left as they are on purpose:
rhei retry <ID>andrhei transition <ID> ... --release-subtree. This is read as shorthand, and both forms are valid.supervision_manual_release_guard_tests.rswould also match the old text. The unit test above is what pins the message's target.<plan>placeholder spelling, which exists only in tests.visit_halt_recovery.rs'srhei retry {task}halt line (§FS-rhei-retry.3), the run-report rows inready_halt_causes.rs(§FS-rhei-run-report), andrhei remove {pending}in rhei-core'sroot_access_removal.rs/remove_command.rs(§FS-rhei-remove.6.2).AI workflow: `rhei`, 9 agent invocations across 1 model; 6 tasks completed, 10 in progress.
github-issues-agent-grounds-rhei-586-implement-3041c2c5.ticketsupervising (visit 1) — cld, anthropic/claude-opus-5-5 — 59.0s — 462.9k in / 4.1k outgithub-issues-agent-grounds-rhei-586-implement-3041c2c5.ticketsupervising (visit 2) — cld, anthropic/claude-opus-5-5 — 1m08s — 525.8k in / 5.7k outgithub-issues-agent-grounds-rhei-586-implement-3041c2c5.ticket.specifyspecify — cld, anthropic/claude-opus-5-5 — 14m57s — 2.7M in / 25.4k outgithub-issues-agent-grounds-rhei-586-implement-3041c2c5.ticketsupervising (visit 3) — cld, anthropic/claude-opus-5-5 — 41.0s — 224.5k in / 3.8k outgithub-issues-agent-grounds-rhei-586-implement-3041c2c5.ticket.implementimplement — cld, anthropic/claude-opus-5-5 — 9m45s — 2.0M in / 13.6k outgithub-issues-agent-grounds-rhei-586-implement-3041c2c5.ticketsupervising (visit 4) — cld, anthropic/claude-opus-5-5 — 34.0s — 232.5k in / 3.1k outgithub-issues-agent-grounds-rhei-586-implement-3041c2c5.ticket.review-1review — cld, anthropic/claude-opus-5-5 — 2m39s — 1.4M in / 9.2k outgithub-issues-agent-grounds-rhei-586-implement-3041c2c5.ticketsupervising (visit 5) — cld, anthropic/claude-opus-5-5 — 36.0s — 317.6k in / 2.3k outgithub-issues-agent-grounds-rhei-586-implement-3041c2c5.ticketsupervising (visit 6) — cld, anthropic/claude-opus-5-5 — 24.0s — 241.4k in / 2.1k out