Bug Description
The Kanban dashboard silently fails when an operator tries to move a task to Ready but the backend rejects the transition because a parent dependency is not done.
The backend correctly enforces the constraint in plugins/kanban/dashboard/plugin_api.py (_set_status_direct returns False when any parent is not done), and update_task turns that into HTTP 409:
status transition to 'ready' not valid from current state
But the dashboard UX does not surface that reason to the user. Drag/drop appears to do nothing, and clicking the card drawer's Ready button appears to do nothing.
Steps to Reproduce
- Create a Kanban task A and leave it in
todo/triage/any non-done status.
- Create a child task B in
todo with A as a parent dependency.
- Open the Kanban dashboard.
- Try to move B to the Ready swimlane via drag/drop, or open B's drawer and click Ready.
Expected Behavior
The dashboard should show a visible error/toast/banner explaining the constraint, for example:
Cannot move to Ready: parent task <id/title> is not done.
Ideally include the blocking parent task id/title/status so the operator knows what to fix.
Actual Behavior
The UI appears to do nothing. The card remains in todo, with no visible explanation.
Why This Matters
The backend behavior is correct, but without visible feedback the operator cannot distinguish:
- a drag/drop/UI bug,
- a stale dashboard state,
- a failed API request,
- or a valid dependency constraint.
This is especially confusing for human-in-the-loop boards where todo may mean "waiting on human input" and users manually advance cards after making a decision.
Suggested Fix
- In the Kanban dashboard frontend, catch non-2xx responses from task status updates / drag-drop operations.
- Surface the API
detail string in a toast or inline error.
- Consider improving the backend 409 detail for this specific case to name the blocking parent(s), rather than the generic transition error.
Environment
- Hermes Agent v0.13.0 era dashboard/Kanban plugin
- Affected area: bundled Kanban dashboard plugin / task status transition UX
Bug Description
The Kanban dashboard silently fails when an operator tries to move a task to Ready but the backend rejects the transition because a parent dependency is not
done.The backend correctly enforces the constraint in
plugins/kanban/dashboard/plugin_api.py(_set_status_directreturnsFalsewhen any parent is not done), andupdate_taskturns that into HTTP 409:But the dashboard UX does not surface that reason to the user. Drag/drop appears to do nothing, and clicking the card drawer's Ready button appears to do nothing.
Steps to Reproduce
todo/triage/any non-donestatus.todowith A as a parent dependency.Expected Behavior
The dashboard should show a visible error/toast/banner explaining the constraint, for example:
Ideally include the blocking parent task id/title/status so the operator knows what to fix.
Actual Behavior
The UI appears to do nothing. The card remains in
todo, with no visible explanation.Why This Matters
The backend behavior is correct, but without visible feedback the operator cannot distinguish:
This is especially confusing for human-in-the-loop boards where
todomay mean "waiting on human input" and users manually advance cards after making a decision.Suggested Fix
detailstring in a toast or inline error.Environment