mirror of
https://github.com/schpet/linear-cli.git
synced 2026-09-14 14:26:50 +08:00
d341afdbd5
issue update could set a due date, estimate, parent, project, or milestone but never remove one, and project update had the same gap for lead, start date, and target date. Only --unassign and --clear-cycle existed. cliffy rejects an empty string as a missing option value, so --due-date "" is not a workaround, and an agent driving the CLI had to fall back to a hand-written projectUpdate/issueUpdate mutation through linear api. Add one boolean clear flag per field, each placed after its set flag and modelled on --clear-cycle: it conflicts with its set flag (a ValidationError before any request, with a null check so --estimate 0 counts as a value), skips the lookup the set flag would run, and puts an explicit null in the mutation input. --clear-project also rejects --milestone, because a milestone belongs to the project being removed; --project with --clear-milestone is allowed so a move can detach a stale milestone in one update. The project update guard treats each clear flag as an update and its suggestion lists them. Linear honours null for every field, including startDate, verified on a scratch project and issue. Claude-Session: https://claude.ai/code/session_01A9qEGri4p2HZMQSuYsBmub