## [0.4.0] - 2026-07-26

Flags can finally be taken off. Until now a Request flagged **Needs Operator** or
**Needs Routing** wore that flag forever — there was no verb that could remove one.

### Added

- **A `flag` verb.** It sets and clears the two flags, using the same token grammar
  `tag` already uses:

  ```
  spt shell cmd <id> flag "#42 +needs-operator -needs-routing"
  ```

  A bare name adds (`flag #42 needs-routing`), `+` adds, `-` removes. Only the two
  real flag names are accepted — anything else is refused by name rather than quietly
  turned into an ordinary label, so a typo cannot invent a flag that nothing filters on.
  `tag` still refuses these names, exactly as before; `flag` is the one way in.

  **Needs Operator can only be *set* on a Request in Backlog or Eval** — those are the
  only States it belongs in. **Clearing it works in any State**, and that is the point:
  a Request that shipped and closed while still flagged is precisely the one that needs
  the flag off, and it was the case with no way out.

  Clearing Needs Operator posts a short comment naming who cleared it. Clearing that
  flag says the Operator discussion happened, and that claim is worth a record. Setting
  a flag is never commented on — asking for a decision needs no permission.

### Fixed

- **The Needs Operator button on a Request's Discord card now clears a stale flag.**
  It used to refuse to do anything at all once the Request left Backlog or Eval, which
  meant a finished, closed Request kept its flag with no way — button or verb — to
  remove it. The button still refuses to *add* the flag outside those States.

  If you keep a work queue by filtering on Needs Operator, this is the change you will
  notice: finished Requests can now leave that list.
