Skip to content

fix: the marker's ladder stopped at active, because the backend refused - #72

Merged
pathscale merged 2 commits into
masterfrom
fix/item-cycle
Aug 1, 2026
Merged

fix: the marker's ladder stopped at active, because the backend refused#72
pathscale merged 2 commits into
masterfrom
fix/item-cycle

Conversation

@pathscale

Copy link
Copy Markdown
Owner

Reported as "I can't cycle through all states, it goes until the end and stops", and as being unable to correct a misclick.

The marker walks new -> planning -> active -> questions -> shipped -> finished and wraps. set_item_status validated against:

"new" | "pending" | "planning" | "active" | "shipped" | "finished"

questions is not in that list. So the click that should move an active row asked for a status the command refused, the row did not move, and from the outside the cycle stopped at active with no way past it and no way back.

canceled was missing for the same reason: the same vocabulary written twice, once in Rust and once in ITEM_LADDER, drifting apart. ProjectStatus is the source of truth and both now match it.

The refusal is also logged. It went back through the promise and no further, so the panel showed a row that simply would not change and said nothing. A rejected write that reaches nobody is the same defect as a silent one, in a different place.

111 Rust tests, fmt and clippy clean. 0.1.51.

meh added 2 commits August 2, 2026 00:55
Clicking the circle walks new, planning, active, questions, shipped,
finished. `set_item_status` validated against a list that did not
include `questions`, so the click that should move an active row asked
for a status the command refused, the row did not move, and the cycle
appeared to stop partway with no way to carry on or to undo a misclick.

Nothing said why. The refusal went back through the promise and no
further, so the panel showed a row that simply would not change. It is
logged now, because a rejected write that reaches nobody is the same
defect in a different place.

`canceled` was missing too, for the same reason: two copies of one
vocabulary, one in Rust and one in `ITEM_LADDER`, drifting apart.
Three things, one cause between them: a project whose directory is not a
checkout has no repository, so no pull request can be discovered for it,
and nothing said so.

Discovery read the repository off the project's *open* rows. Once every
known pull request settled, the repository was forgotten and discovery
stopped, silently, exactly when the list looked finished. It reads every
row now: a merged pull request still says where it came from.

When there is no repository at all, that is logged rather than returned
into silence. This project's directory is an empty folder that is not a
git checkout, which is why nothing was ever discovered for it and why
the panel only showed pull requests whose URLs happened to appear in a
reply.

And the directory can be chosen rather than typed. The panel said a
picker needed the Tauri dialog plugin; it has been wired since, and
`choose_data_directory` has used it all along. A typed path is how a
project ends up pointed at a directory that is not a checkout in the
first place.
@pathscale
pathscale merged commit 719ed88 into master Aug 1, 2026
2 checks passed
@pathscale
pathscale deleted the fix/item-cycle branch August 1, 2026 18:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant