jakevin
79eadd2579
feat: add twitter article markdown command ( #16 )
2026-03-12 14:47:49 +08:00
jackwener
1313eb0be1
feat: add full-text option for tweet tables
2026-03-11 20:58:12 +08:00
jackwener
88a9f4ce97
fix: tighten pagination and platform-specific auth
2026-03-11 20:32:51 +08:00
jackwener
9cf74abd56
feat: add integration smoke tests
...
CLI-level smoke tests using --yaml output against real Twitter API.
Default skipped via @pytest.mark.smoke marker + pyproject.toml addopts.
Run locally with: uv run pytest -m smoke -v
2026-03-10 22:26:46 +08:00
jackwener
4c2c02efd5
feat: unify structured error output
2026-03-10 21:18:38 +08:00
jackwener
642ffe84a8
feat: unify agent status schema
2026-03-10 21:02:08 +08:00
jackwener
32d074dc9f
feat: anti-detection hardening, transaction cache, article parsing, structured write output
...
Anti-detection:
- Add 6 sec-ch-ua-* Client Hints headers (arch, bitness, full-version, etc.)
- POST requests now send Referer: x.com/compose/post + Priority: u=1, i
- follow/unfollow REST adds include_profile_interstitial_type param
Performance:
- Transaction ID cache with 1h TTL (~/.twitter-cli/transaction_cache.json)
- resolve_user_id: auto-detect screen_name vs numeric user_id
Features:
- Twitter Article parsing: extract long-form content as Markdown
- Write operations emit structured JSON/YAML when piped or OUTPUT env set
ActionResult: {success, action, id, url, ...}
84 tests passing
2026-03-10 20:48:42 +08:00
jackwener
49d3e237c4
feat: add whoami, reply, quote, follow/unfollow commands and --compact mode
...
- whoami: fetch current authenticated user profile
- reply <id> <text>: standalone reply command
- quote <id> <text>: quote-tweet command
- follow/unfollow <handle>: follow/unfollow users
- --compact/-c: global flag for LLM-friendly minimal JSON output
- client.py: add fetch_me, quote_tweet, follow_user, unfollow_user
- serialization.py: add tweet_to_compact_dict, tweets_to_compact_json
- 7 new tests (82 total, all passing)
2026-03-10 20:09:08 +08:00
jackwener
19ab11d6a4
fix: harden auth flow and sync browser support docs
2026-03-10 11:02:34 +08:00
jackwener
55c48b077b
feat: add rate limiting, retry with backoff, and max count cap
...
- Add configurable request delay between paginated API calls (default 1.5s)
- Add retry with exponential backoff on HTTP 429 and Twitter error code 88
- Add hard max count cap (default 200, absolute ceiling 500)
- Add rateLimit config section with requestDelay, maxRetries, retryBaseDelay, maxCount
- Add normalization tests for rateLimit config
2026-03-07 19:02:49 +08:00
jackwener
6f322ff2d6
test+ci: add regression tests and GitHub Actions workflow
2026-03-05 16:14:05 +08:00