Skip to content

feat(x-thread): Twitter/X thread provider with browser-flow draft#4

Merged
Nowhitestar merged 1 commit into
mainfrom
claude/crazy-northcutt-32c39b
May 8, 2026
Merged

feat(x-thread): Twitter/X thread provider with browser-flow draft#4
Nowhitestar merged 1 commit into
mainfrom
claude/crazy-northcutt-32c39b

Conversation

@Nowhitestar
Copy link
Copy Markdown
Owner

Summary

  • New thread media_type + x-thread provider — drives x.com/compose/post via OpenCLI Browser Bridge, fills each tweet, stops before "Post all" (user reviews + ships)
  • Manifest convention: tweets separated by lines containing only ---; lint enforces 280 chars/tweet and 25 tweets/thread (non-Premium baselines)
  • Mirrors x-article's contract: stub fallback when bridge isn't connected, draft-first, no publish path

Test plan

  • pytest -q — 173/173 green (16 new tests cover split/lint/prepare/dry-run/stub fallback/browser-flow mock/publish refused/health/login redirect)
  • ruff check + ruff format --check clean
  • meti validate examples/thread.yaml → OK
  • meti list providersx-thread (bundled) media=['thread'] caps=draft
  • First real run will likely need selector tuning — tweetTextarea_<n> / addButton are best-guess; failure messages point to the exact constants to patch in providers/x_thread/internal/browser_flow.py

🤖 Generated with Claude Code

Introduces a new `thread` media_type and `x-thread` provider that drives
x.com/compose/post via OpenCLI Browser Bridge — fills tweets one by one
into the modal and stops before "Post all", mirroring x-article's
autosave-then-user-confirms contract. Tweets are separated by `---` lines
in the manifest body; lint enforces 280 char/tweet and 25 tweets/thread.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@Nowhitestar Nowhitestar merged commit cd1ef89 into main May 8, 2026
6 checks passed
@Nowhitestar Nowhitestar deleted the claude/crazy-northcutt-32c39b branch May 8, 2026 09:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant