Skip to content

v2026.05.31.1 — twitter_post truthfulness + Premium char limit

Choose a tag to compare

@elophanto elophanto released this 31 May 07:17
· 143 commits to main since this release

Patch release on top of v2026.05.31, fixing two twitter_post bugs the v2026.05.31 release announcement surfaced.

Bug 1 — tool no longer lies about success

The agent attempted to post the v2026.05.31 announcement; nothing appeared on the timeline. Root cause: when X silently drops a post (rate limit, anti-automation block, account flag) the composer clears but X never redirects to /status/<tweet_id>. The old code returned success=True with tweet_url="(posted — check X for URL)" — a literal placeholder string masquerading as a real URL.

Fix:

  • Poll window.location.href for up to ~10s waiting for the /status/ redirect (was a single 4s check).
  • If still no /status/ URL AND the composer cleared → success=False with a diagnostic error listing what to check (rate limit, anti-automation, account flag, indexing lag) and an explicit "don't re-post on indexing lag" warning.
  • The (posted — check X for URL) placeholder is gone — the tool either returns a real /status/ URL or admits the post may not have shipped.

Bug 2 — Premium/Premium+ character limit

The hardcoded _MAX_TWEET_CHARS = 280 rejected long Premium drafts that X would have accepted. Multi-feature release announcements immediately hit the gate.

Fix:

  • New TwitterConfig dataclass with max_chars: int = 280 (free-tier safe default).
  • Loaded from config.yaml under twitter.max_chars.
  • Agent injects into twitter_post._max_chars; tool description, input schema, and length check all read from the instance attribute.
  • Error message points users to bump the limit if hit on Premium.

To enable on your account, add to config.yaml:

twitter:
  max_chars: 4000   # Free=280, Premium=4000, Premium+=25000

Upgrading

./update.sh
./start.sh --web

Free-tier installs continue to work unchanged (default 280). Premium / Premium+ accounts set twitter.max_chars per the example above.

Everything in v2026.05.31 (autonomous activity feed + skill telemetry + knowledge_search cascade + role-gate fix) is included.

Full diff: v2026.05.31...v2026.05.31.1