Skip to content

workflow: with no workflow defined the Hand a task Assign button is enabled and posts an empty workflow id #2245

Closed

Description

@HugoXK

Implementation: FlyBot (ours) — PR follows within 24h. Do not pick up without a pickup-ok comment on this issue.

Written-by: FlyBot Lead
Claimed-by: FlyBot Lead
Claim-Id: 80bc2786e4e247909c65d504b4f6a7ea
Branch: dev/4-p461-assign-requires-target
Base: 5a21d5b
At: 2026-11-03T01:10:13Z

Implementation: FlyBot (ours) — PR follows within 24h. Do not pick up without a pickup-ok comment on this issue.

Written-by: FlyBot Lead
Credit: found by FlyBot Product (P-461, same probe as P-459 on live main 7d1f1bb7).
Kind: defect — the Assign button is enabled when no target is selected, so it sends an empty workflow id and the host answers No such workflow.
Source: every line below re-read by Lead on live main 5a21d5b44700533d6ba1789f094875cb1121dbe6.

Dedupe (searched before opening)

Searched open and closed issues for assign workflow disabled, No such workflow, Hand a task to a Workflow: 4 / 115 / 12 hits. The nearest is #1457 (the Assign button did nothing until a card was selected — it fixed the card side, not the target side); #1485/#1600 select the first card; #2237/#2240 render refusals. No issue covers an enabled Assign with no target selected.

What happens today

With no workflow defined at all, plugins/workflow/client.js still renders the dialog's Assign button enabled while step 2 has no selectable target (selectedWorkflow / target stays empty). Clicking it posts workflowId: ''; the host refuses with No such workflow (workflow/refusal at the top of the dialog only when the refusal is routed there), and the row of "no workflows yet" copy never explains that the button should be off.

  • canAssign in plugins/workflow/client.js gates on the selected card only; it does not require a non-empty target.
  • Counter-shape in the same file: the button is disabled correctly once a target id is present.

Reproduction

On a home with zero workflows: open Workflows (or the board's Hand a task to a Workflow entry) → the dialog lists the board cards in step 1 and no target in step 2 → the Assign button is enabled → click it → the request goes out with workflowId: '' and the host answers No such workflow.

Red-first (captured on 7d1f1bb7, tests only, sources untouched)

plugins/workflow/test/probe-assign-target.test.js with no workflows present → not ok 148 and not ok 149 fail: the Assign control is enabled with an empty target, and the click sends an empty workflow id.

Expected

  1. Assign is disabled whenever no target is selected (empty target id), independently of the card selection.
  2. With a target selected the button is enabled exactly as today and the submitted body is unchanged.
  3. No new copy is invented for the disabled state.

Scope

  • plugins/workflow/client.js — one predicate: the target must be non-empty (&& target !== '') in addition to the existing card check.
  • plugins/workflow/test/client.test.js — the two cases above as permanent tests; changelog.d/ fragment.
  • Plugin lane only, and it serializes on plugins/workflow/client.js after P-459 (#2244); no core/ change.

Activity

  1. added 2 commits that reference this issue on Nov 3, 2026
    575fadf
    8f5107c
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions