fix: the marker's ladder stopped at active, because the backend refused - #72
Merged
Conversation
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
force-pushed
the
fix/item-cycle
branch
from
August 1, 2026 17:59
0e0ff54 to
a01b212
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.
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 -> finishedand wraps.set_item_statusvalidated against:questionsis not in that list. So the click that should move anactiverow asked for a status the command refused, the row did not move, and from the outside the cycle stopped atactivewith no way past it and no way back.canceledwas missing for the same reason: the same vocabulary written twice, once in Rust and once inITEM_LADDER, drifting apart.ProjectStatusis 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.