SIGN IN SIGN UP

Merge remote-tracking branch 'origin/main' into task/144

main's #640 rewrote the same mid-turn send this branch widens, so both sides
of every steer hunk are kept:

* `onSteer` takes main's `(text, blocks?)` across all three composer layers,
  alongside this branch's `steerChannel`. `onForkSend` stays deleted.
* `handleSteerClick` keeps main's body — the uploading gate and the block
  payload — and this branch's channel-keyed label, icon and failure toast.
  A pull session with an attachment now reaches the backend's blocks
  rejection as ordinary operation, and lands on the same queue fallback.
* `steerAttachmentsUnsupported` goes with main's deletion (attachments are
  supported now); `steerNoteFailed` stays in all ten locales.
* Both test suites keep every case from both sides.

`submit_feedback`'s comment on the pull-path blocks rejection said it only
arises after a native downgrade; with the affordance on every session it is
now the normal path for a pull session, so it says both.
X
xintaofei committed
afba72979a7a52500f474e1d8e2b4ddb44d2ca93