How it works

What Farmero never does

Four things a posting tool must never do, each held to a test that fails the build if it ever could.

Most of what a posting tool does is visible: it opens an app, taps Share, moves on. The things that matter most are the ones it doesn't do — the mistakes it refuses to make when nobody is watching. Here are four of them. Each is not a promise on a page; it is a test in the code that fails the build the day the behaviour could change.

It never calls a post "posted" until it is confirmed live

Tapping Share does not finish a post. It starts an upload the phone carries on in the background, and on a slow link that upload can outlive the tap by minutes — or fail. So Farmero waits for the confirmation the platform actually gives (the upload banner clearing, the post appearing on the profile) before it writes posted to your queue.

A post it tapped Share on but could not confirm is recorded as uncertain — "this may be live, check the account" — never as posted. That distinction is the difference between a number you can trust and a number that lies. It is what lets Farmero show you a verified-live rate on the Posts screen: of the posts it tapped Share on, how many it watched go live. No other tool in this category records that, because no other tool confirms.

Enforced by test_a_publish_not_confirmed_LIVE_is_uncertain_not_posted and test_a_publish_confirmed_LIVE_counts_as_posted.

It never posts to the wrong account

A phone can hold several accounts, and the one that is signed in is not always the one a post was scheduled for. Before Farmero presses Share, it reads the profile header on the phone and checks it is the account the post names. If the switch did not take — or the app says it switched and did not — the post stops and says why, rather than publishing on whoever happened to be logged in.

Enforced by test_a_switch_that_lies_is_caught_by_the_header_gate and test_a_switch_that_fails_closed_ends_the_post_with_its_own_reason.

It never reschedules a post that might already be live

If the phone goes away in the instant after Share is tapped, Farmero cannot know whether the post went out. It refuses to guess. The row is marked uncertain and made terminal — it will not be retried automatically, and one click cannot reschedule it — because rescheduling a post that already went out is a second, permanent, public copy of it. Farmero would rather ask you to look than post your content twice.

Enforced by test_an_uncertain_post_cannot_be_rescheduled_into_a_double_post.

It never drives a phone into killing its own upload

The most common way an automated post silently fails is the tool moving on too soon — switching accounts or opening the next app while the last upload is still in flight, which kills it half-done. Farmero leaves the phone alone after a post for a wait it sizes from the clip (bigger file, longer wait), and never shorter than the floor you set. The upload gets the time it needs.

Enforced by test_the_longest_claim_wins and test_slow_mode_sizes_the_wait_from_the_file.


None of these is a feature you turn on. They are the floor everything else stands on, and they are the reason the one number Farmero reports about itself — its verified-live rate — is a measurement, not a claim.