Reproduced on 2026-08-30.
The task's historical fixture directory
~/f/rhei/fix/poll-attempt-budget-sentinel/rhei-runs/ticket-118 is not
present on this machine, so I recreated the same kind of valid directory
workspace from the supervised-ticket-fix template. The recreated workspace
was /tmp/rhei-list-repro-1788111508189312160; rhei validate succeeded
against it.
Versions and source commits:
- The task's stated version:
rhei 0.3.1, built from
311ad90e9bf763ade13801f185f310449bba5c64 (v0.3.1) in a temporary
detached worktree from ~/f/rhei/main.
- Current installed release:
rhei 0.3.2, source checkout
~/f/rhei/main at 01aee9d7d89d6c1f6f58e62d88a6f934bc2d81f5 (v0.3.2).
It produced the same results.
Fixture setup:
$ cd ~/f/rhei/main
$ rhei instantiate supervised-ticket-fix README.md \
--set title='rhei list reproduction' --set rounds=1 \
--output /tmp/rhei-list-repro-1788111508189312160
Validation succeeded
$ rhei validate /tmp/rhei-list-repro-1788111508189312160
Validation succeeded
Using the rhei 0.3.1 binary, from inside that same workspace:
$ cd /tmp/rhei-list-repro-1788111508189312160
$ old_bin=/tmp/rhei-v031-target-1788111508189312160/release/rhei
$ "$old_bin" --version
rhei 0.3.1
$ "$old_bin" list .
× invalid rhei path .
help: check the plan's task metadata (**State:**, **Prior:**,
**Assignee:**), then re-run: rhei validate <plan>
$ echo $?
1
$ "$old_bin" list ./
× invalid rhei path ./
help: check the plan's task metadata (**State:**, **Prior:**,
**Assignee:**), then re-run: rhei validate <plan>
$ echo $?
1
$ "$old_bin" list index.rhei.md
× invalid rhei path .
help: check the plan's task metadata (**State:**, **Prior:**,
**Assignee:**), then re-run: rhei validate <plan>
$ echo $?
1
$ "$old_bin" list ./index.rhei.md
× invalid rhei path .
help: check the plan's task metadata (**State:**, **Prior:**,
**Assignee:**), then re-run: rhei validate <plan>
$ echo $?
1
$ "$old_bin" list ../rhei-list-repro-1788111508189312160
Task rhei-list-repro-1788111508189312160.ticket: rhei list reproduction [supervising]
Task rhei-list-repro-1788111508189312160.ticket.plan-approval: Get the plan approved [plan-approval]
Task rhei-list-repro-1788111508189312160.ticket.implement: Implement the fix [implement]
Task rhei-list-repro-1788111508189312160.ticket.review-1: Review round 1 [review] (prior: rhei-list-repro-1788111508189312160.ticket.implement)
Task rhei-list-repro-1788111508189312160.ticket.fix-1: Fix round 1 [fix] (prior: rhei-list-repro-1788111508189312160.ticket.review-1)
Task rhei-list-repro-1788111508189312160.ticket.ship: Ship the fix [ship] (prior: rhei-list-repro-1788111508189312160.ticket.implement)
$ echo $?
0
$ "$old_bin" list /tmp/rhei-list-repro-1788111508189312160
Task rhei-list-repro-1788111508189312160.ticket: rhei list reproduction [supervising]
Task rhei-list-repro-1788111508189312160.ticket.plan-approval: Get the plan approved [plan-approval]
Task rhei-list-repro-1788111508189312160.ticket.implement: Implement the fix [implement]
Task rhei-list-repro-1788111508189312160.ticket.review-1: Review round 1 [review] (prior: rhei-list-repro-1788111508189312160.ticket.implement)
Task rhei-list-repro-1788111508189312160.ticket.fix-1: Fix round 1 [fix] (prior: rhei-list-repro-1788111508189312160.ticket.review-1)
Task rhei-list-repro-1788111508189312160.ticket.ship: Ship the fix [ship] (prior: rhei-list-repro-1788111508189312160.ticket.implement)
$ echo $?
0
$ "$old_bin" list /tmp/rhei-list-repro-1788111508189312160/index.rhei.md
Task rhei-list-repro-1788111508189312160.ticket: rhei list reproduction [supervising]
Task rhei-list-repro-1788111508189312160.ticket.plan-approval: Get the plan approved [plan-approval]
Task rhei-list-repro-1788111508189312160.ticket.implement: Implement the fix [implement]
Task rhei-list-repro-1788111508189312160.ticket.review-1: Review round 1 [review] (prior: rhei-list-repro-1788111508189312160.ticket.implement)
Task rhei-list-repro-1788111508189312160.ticket.fix-1: Fix round 1 [fix] (prior: rhei-list-repro-1788111508189312160.ticket.review-1)
Task rhei-list-repro-1788111508189312160.ticket.ship: Ship the fix [ship] (prior: rhei-list-repro-1788111508189312160.ticket.implement)
$ echo $?
0
The same loop also ran these literal shell arguments, with the same six-task
tree and exit status 0:
$ "$old_bin" list "$PWD"
$ echo $?
0
$ "$old_bin" list "$PWD/index.rhei.md"
$ echo $?
0
The current rhei 0.3.2 binary produced the same six-task tree and the same
exit statuses.
This is specifically a current-directory resolution defect: . and ./
fail, and a bare index.rhei.md is reduced to . and then fails, while the
same directory or plan works when named from its parent or by an absolute
path. The validation-help text is also misleading because the workspace is
valid and the problem is argument resolution. The practical workaround is to
pass the absolute path or name the workspace from its parent directory.
REPRO: yes
Filed by an agent triaging a local report.
Reproduced on 2026-08-30.
The task's historical fixture directory
~/f/rhei/fix/poll-attempt-budget-sentinel/rhei-runs/ticket-118is notpresent on this machine, so I recreated the same kind of valid directory
workspace from the
supervised-ticket-fixtemplate. The recreated workspacewas
/tmp/rhei-list-repro-1788111508189312160;rhei validatesucceededagainst it.
Versions and source commits:
rhei 0.3.1, built from311ad90e9bf763ade13801f185f310449bba5c64(v0.3.1) in a temporarydetached worktree from
~/f/rhei/main.rhei 0.3.2, source checkout~/f/rhei/mainat01aee9d7d89d6c1f6f58e62d88a6f934bc2d81f5(v0.3.2).It produced the same results.
Fixture setup:
Using the
rhei 0.3.1binary, from inside that same workspace:The same loop also ran these literal shell arguments, with the same six-task
tree and exit status 0:
The current
rhei 0.3.2binary produced the same six-task tree and the sameexit statuses.
This is specifically a current-directory resolution defect:
.and./fail, and a bare
index.rhei.mdis reduced to.and then fails, while thesame directory or plan works when named from its parent or by an absolute
path. The validation-help text is also misleading because the workspace is
valid and the problem is argument resolution. The practical workaround is to
pass the absolute path or name the workspace from its parent directory.
REPRO: yes
Filed by an agent triaging a local report.