L3.06.3abort must be available throughout streamingdesignresearch

Abort must be available at any time

Aliases: stop generation · interrupt decode · cancel in-flight

What it is

The code has already drifted into another language; tokens keep coming. The interface has a spinner and no stop. The user either waits it out or kills the whole session. Abort throughout streaming requires that once generation is occupying time and attention, a person can stop it at any moment — without waiting for a natural end, and without tearing down the session.

Whether abort is streaming’s main gain, and whether the leftover slice counts as a result, are later questions. This entry only requires: it can be stopped.

Why it happens

Streaming pins people to the screen: attention is occupied, the wait is filled, cost of leaving rises. With no stop, occupation flips from “easier wait” to “forced to watch the end.” Drift, sensitive content, already-enough, a meter burning — all need an action opposite to “wait a bit more.” Without that action, streaming is one-way: the system decides when it ends, the person can only receive.

Abort also has to be a first-class control during generation. Hiding it inside cancel-session, refresh, or kill-process is not offering it — those actions are grain-of-the-whole-task, not grain-of-this-generation.

Studying it

Set a clearly drifted or overlong generation; compare no abort, abort buried in a menu, abort always visible. Dependent variables: whether people can stop, moment of stop, false abort (meant to copy, hit stop), rate of killing the session because stop failed. Independent variables: control placement, how soon after stream start it appears, whether stop immediately ceases new tokens.

“Immediately ceases” must be measured on its own. A button that is there while tokens still emerge is, to the user, not a stop.

Where it stops holding

When generation ends in hundreds of milliseconds, the abort window is too small to hit; a dedicated control is unnecessary, but once wait is perceptible the control has to be in. “Stop” on a batched offline job cancels a queue, not a stream; do not make them the same button. If a false abort is extremely costly (an unrecoverable long job), confirm; everyday dialogue generation does not need that. This entry does not treat who may use the leftover text after a stop, and does not advertise abort as streaming’s chief value.

Applying it

  • The moment the stream starts, put abort at the same rank as the input box. Do not wait until drift to bury it in a menu.
  • After press, cease new tokens within one feedback cycle and say it has stopped — not a greyed button with words still coming.
  • Do not bind abort to “clear the session” or “close the page.” Grain is this generation.
  • Check: force a drifted generation and time how long until the person stops the output. No button, press-but-still-emitting, or only refresh, are all failures to support abort throughout.

Related

  • Same group: L3.06.1 Progressive output eases the feel of waiting · L3.06.2 Streaming content must not be treated as final before it finishes
  • Nearby: L3.11 Streaming the Generation Process · L4.05 Interruptibility and Rollback
  • Search terms: abort generation · stop streaming · interrupt decode

Cards in the same group

Quick Actions

Share

Share this page

ios_share

https://hci.top/en/handbook/L3.06.3