How Blowhorn paces itself
Human typing and pauses, per-run pace, and why a failure stops the run instead of retrying.
How Blowhorn paces itself
Blowhorn acts at human speed, and stops at the first thing it cannot confirm. Both are deliberate: speed and retries are what get an account flagged.
Typing arrives keystroke by keystroke with a computed delay between
keys, and actions are separated by random pauses of a few seconds,
scaled by the run's pace. --pace sets it: fast, normal, slow,
or a numeric multiplier, resolved from the flag, then the environment,
then the defaults file. A long unattended run earns the slow pace; a
failure never earns a retry click.
Public actions are never repeated on a guess. The sending control is clicked once per run; "no confirmation, the dialog still reads open" reports the row not sent, never sends it again, and never reports it sent either. What the platform showed after the click is a reading, not a fact, so the row reads clicked, outcome not read, and waits for you. See Why Blowhorn never repeats a public action.
A typing failure fails only its own row. The dispatcher has no per-row rescue around the loop, so a lost typing target would abandon every remaining queued row for that profile; every call site therefore contains the failure to its own unit of work instead.
Hacker News is the least forgiving platform
A Hacker News submission cannot be deleted, and coordinated-looking promotion gets the whole domain banned. Blowhorn treats it accordingly: at most 2 link submissions per profile per UTC day, titles held to 80 characters with the row failing rather than truncating, no voting ever, and a comment row that can only ever be a comment. A rate-limited run fails the row and waits; it never retries to beat the limiter.
Related
- Preview and publish queued posts - pace your run.
- Post to Hacker News - the strictest rules, worked.
- Platforms - per-platform limits.
- Why Blowhorn never repeats a public action - one click per run.
- Change your defaults - the pace default.