Skip to content

Epo v3.1.0

Choose a tag to compare

@github-actions github-actions released this 28 Aug 09:30
Immutable release. Only release title and notes can be modified.

Epo v3.1.0

macOS (Apple silicon · Intel) Windows 10 / 11 open source (MIT) local-first

Highlights

  • Background and overnight runs no longer freeze: every Instagram-facing
    operation now has a deadline, a watchdog revives a stalled tab (after
    sleep, a renderer crash, or a dropped automation session), and quitting
    never hangs behind a wedged loop.
  • Failures wait instead of killing the run: repeated failed actions take
    up to three long, jittered backoffs (roughly one to two hours each)
    before Epo concludes something is genuinely wrong; a soft-blocked
    action is parked, never hammered; and records burned during an
    incident are re-queued once it resolves.
  • Every quiet state explains itself: overnight rests, daily-cap parks,
    and recovery holds show a reason with a live countdown, settings saves
    confirm or surface their failure, and growth numbers stay honest —
    your chart no longer collapses to zero after the first scan.
  • The Chain tab is now Targets, useful from the first session: a live
    per-target funnel, an honest pool-and-coverage readout with a
    days-to-next-target runway, a follow-back conversion verdict that
    waits for real data — and the growth chart compares actuals to plan
    over 14-day to all-time windows.
  • Timing never lands on a clock grid: daily wakes, sweeps, backoffs, and
    scroll pacing all draw jittered intervals, and adaptive session pacing
    is now the default for new installs.

Changes

Every commit since v3.0.3
  • release: v3.1.0 — end-to-end QOL: freeze-proof engine, recovery ladder, honest surfaces (974be9f)
  • feat(ui): long-horizon growth surface — actuals vs plan, honest momentum (c8a705c)
  • feat(engine): requeue-healer — systemic failure windows give abandoned records back (4f5d2f0)
  • feat(ui): Chain tab rebuilt as the Targets console — useful from the first session (91160bf)
  • fix(engine): exhaustion needs positive evidence — and is reversible within 48h (e2235db)
  • feat(settings): adaptive-session pacing is reachable and the default; knobs stop lying (04dc181)
  • feat(timing): noisification layer — no IG-facing wait fires on a predictable instant (8165479)
  • feat(adapter): tab health events + sleep/resume observation feed the recovery path (a5c3651)
  • fix(rim): shape drift ends walks as a verdict — never a verified-complete empty census (c929ee1)
  • feat(engine): classified recovery ladder replaces terminal halts and blocked hammering (225506a)
  • fix(prune): census tiles tell one truth — durable last-complete census, honest bar (868ce98)
  • feat(engine): parks and holds are first-class visible states, not dashes (29cf4cd)
  • fix(ui): chain projection rides the mutation push — target stats tick during walks (7ce4039)
  • fix(store): first census no longer erases weeks of charted follower growth (1cc1a3e)
  • fix(settings): saves are visible and honest — chip, error toast, no silent revert (9281c3a)
  • fix(adapter): bound every tab-facing await; step watchdog recovers a wedged loop (26f9cde)
  • ci(repo-health): check our own raw URLs now that the repo is public (7d31de8)
  • fix(ci): silence actionlint's SC2016 info; one-click release downloads (78cedfc)

Install

Download for macOS (Apple silicon)    Download for macOS (Intel)    Download for Windows

One click downloads the right package. First launch: macOS blocks
un-notarized apps — dismiss the dialog, then System Settings → Privacy &
Security → Open Anyway
(needed once). Windows SmartScreen may warn —
More info → Run anyway. A no-install Windows build,
Epo-3.1.0-portable.exe, is in the assets below.

Already running Epo? Windows installs update themselves in the
background; macOS shows the new version in Settings → Updates and brings
you here.

Notes

  • Your database, settings, and Instagram session carry over — updating is a
    drop-in replacement.
  • Every other asset below (.zip, .blockmap, latest*.yml) is the
    self-updater's feed — apps update themselves from these files.
  • Epo acts on your Instagram account; use it at your own risk (see the
    README).

Full changelog: v3.0.3...v3.1.0