needs_attention is a tri-state in the dashboard and a two-state on the CLI #496
Labels
No labels
agent-ready
bug
contract
documentation
duplicate
enhancement
good first issue
help wanted
invalid
needs-human
needs-input
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
iterative-works/iw-cli#496
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Found triaging IW-436 (LESSONS.md entry 9). This is a design question about the field's contract, not a defect.
The CLI can only reach two of three states
ReviewStateCliParser.scala's--needs-attentioncall sites (inparseWriteArgsandparseUpdateArgs) can only produceSome(true)orNone.--clear-needs-attentionremoves the key (core/model/ReviewStateUpdater.scala:103,:106-107), which isNoneagain.The dashboard implements three
dashboard/jvm/src/domain/PendingAct.scala:126-129distinguishes three states deliberately: an explicitfalsewithdraws the claim outright, while absence leavesactivityto speak.So a workflow that wants "definitely not waiting for the human, whatever the activity says" has no way to say it.
Measured
Of the 37 cards under
project-management/that carry the key, 37 holdtrueand none holdsfalse.The question
Should the CLI gain a way to write an explicit
false— a--no-needs-attentionflag, or honouring a value on--needs-attention— or should the dashboard's tri-state collapse to the CLI's two? Either answer is coherent; the current split is not.Scope note
This is not IW-436 defect 1. Defect 1 was that
--needs-attention falsewas accepted silently and wrotetrue; IW-436 Phase 3 fixed that with a hard refusal (exit 1) and a remedy pointing at--clear-needs-attention. That refusal is correct under either answer here.Intake: needs-input
1. Should a user be able to write
needs_attention: falsefrom the CLI, or should the dashboard treat false the same as no value?The dashboard has three states. An explicit false withdraws the claim, whatever the activity says. No value lets the activity decide.
review-state writeandreview-state updatecan only set true or remove the field. But iw's own commands already write an explicit false:phase-start, andphase-mergeon a merged card. So the gap is only in the CLI flags.https://code.iterative.works/iterative-works/iw-cli/src/branch/main/dashboard/jvm/src/domain/PendingAct.scala#L154-L162
https://code.iterative.works/iterative-works/iw-cli/src/branch/main/core/model/ReviewStateCliParser.scala#L73-L85
https://code.iterative.works/iterative-works/iw-cli/src/branch/main/core/commands/PhaseStart.scala#L167
https://code.iterative.works/iterative-works/iw-cli/src/branch/main/core/commands/PhaseMergedCard.scala#L39
--no-needs-attention. The CLI then agrees with the dashboard and with iw's own commands.--needs-attentioncontinues to refuse a value, as IW-436 decided. Cost: one flag, its parser tests and its documentation.phase-startandphase-mergewrite stops withdrawing the claim, so a card with activitywaitingcan show up in a lane again. Those commands and their tests must change too.true, so no workflow has asked for false yet. Cost: the CLI and the dashboard stay inconsistent.Recommended: a) — iw's own commands already write an explicit false, so the three states are already in use and only the CLI flags lack the third.
Answer in a comment on this issue, per number, for example "1: a", or in your own words; intake reads it on its next iteration.