Commit Graph
329 Commits
Author SHA1 Message Date
yuta 9340ed3f47 Add profileImageUrl to TweetData.author
CI / test (push) Successful in 11m4s
2026-06-26 01:56:14 +09:00
yuta 2e293ad65b Add user profile resolution
CI / test (push) Successful in 10m0s
2026-06-24 20:46:34 +09:00
yuta 826de66d78 Add home timeline pagination flags
CI / test (push) Successful in 9m58s
2026-06-24 20:17:02 +09:00
yuta 01f4b58b99 test: require explicit relay fixture
CI / test (push) Successful in 9m59s
2026-06-24 19:20:39 +09:00
yuta eedf9b1644 fix: adapt upstream commands to relay client
CI / test (push) Failing after 5m19s
Publish npm package / publish (push) Successful in 9m52s
v0.8.0
2026-06-24 18:51:33 +09:00
Peter Steinberger 55fd5c3d81 docs: bump changelog to 0.8.0 2026-06-24 18:45:21 +09:00
Peter Steinberger b7320a19c8 docs: update changelog for 0.7.1 (#51 #53 #54) 2026-06-24 18:45:21 +09:00
Peter Steinberger 9b40a2d43c chore: format files for lint (#53) (thanks @the-vampiire) 2026-06-24 18:44:38 +09:00
Peter Steinberger a167ac4380 fix: harden engagement mutations (#53) (thanks @the-vampiire) 2026-06-24 18:44:38 +09:00
the-vampiireandClaude Opus 4.5 81f1229660 style: format engagement test file
Fix biome formatting for mock chain.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
2026-06-24 18:44:38 +09:00
the-vampiire da013664c8 feat: add engagement mixin for like/unlike/retweet/unretweet/bookmark
Adds a new mixin with programmatic engagement methods:
- like(tweetId) - FavoriteTweet
- unlike(tweetId) - UnfavoriteTweet
- retweet(tweetId) - CreateRetweet
- unretweet(tweetId) - DeleteRetweet
- bookmark(tweetId) - CreateBookmark

Implementation follows existing mixin patterns with:
- Shared performEngagementMutation() helper
- 404 retry with query ID refresh
- Returns BookmarkMutationResult for consistency

Also adds query IDs for the new operations to constants and
the update-query-ids script.

Includes 9 tests covering success cases, error handling, and retry logic.
2026-06-24 18:44:38 +09:00
clickingThingsAndMovingMountains 471cd9b26f feat(bookmarks): add thread expansion flags
Adds thread expansion + filtering for bookmarks, with optional ancestor branches and metadata.\n\nCo-authored-by: Klaus <[email protected]>
2026-06-24 18:44:38 +09:00
Peter Steinberger 966599522a fix: follow/unfollow hardening (#54) (thanks @citizenlee) 2026-06-24 18:43:54 +09:00
Pablo Tovar 38d5dfe96a test: move about command coverage 2026-06-24 18:42:39 +09:00
Pablo Tovar 98a7145dea test: cover about command 2026-06-24 18:42:39 +09:00
Pablo Tovar 75848960cb feat: add bird about command 2026-06-24 18:42:33 +09:00
Peter Steinberger 1b2afd5acb refactor: normalize about output + retry helper 2026-06-24 18:42:22 +09:00
Peter Steinberger 77c7d676a7 fix: about account live coverage (#51) (thanks @pjtf93) 2026-06-24 18:42:16 +09:00
Henry Lee 058aa0e3c3 fix: add cursor pagination support to REST fallback for followers/following
When GraphQL endpoints return 404 and fall back to REST API v1.1,
pagination now works correctly by:
- Accepting cursor parameter in getFollowersViaRest and getFollowingViaRest
- Passing cursor to REST API requests
- Extracting next_cursor_str from REST responses
- Returning nextCursor in the result for proper --all pagination
2026-06-24 18:42:16 +09:00
Henry Lee df449ea736 feat: add follow/unfollow commands
- bird follow <username-or-id>: follow a user by handle or ID
- bird unfollow <username-or-id>: unfollow a user by handle or ID

Uses REST API /1.1/friendships/create.json and /destroy.json with GraphQL fallback.
Accepts @handles, bare usernames, or numeric user IDs.
2026-06-24 18:41:35 +09:00
Pablo Tovar 3c2f6f480e docs: document about account access
Add README examples for getUserAboutAccount and about command.
2026-06-24 18:41:01 +09:00
Pablo Tovar 253791cc8f test: move about command coverage 2026-06-24 18:40:30 +09:00
Pablo Tovar 71aa56517e test: cover about command 2026-06-24 18:40:30 +09:00
Pablo Tovar afc06864c6 test: add getUserAboutAccount coverage 2026-06-24 18:40:30 +09:00
Pablo Tovar a2021193ee feat: add bird about command 2026-06-24 18:40:30 +09:00
Pablo Tovar 769245503c feat: add AboutAccountQuery client support 2026-06-24 18:40:30 +09:00
Peter Steinberger 083c8cd007 refactor(cli): dedupe commands 2026-06-24 18:40:30 +09:00
Peter Steinberger 6cf0c00d1b docs: update likes command flags 2026-06-24 18:37:35 +09:00
Peter Steinberger 17599dfb75 docs: release 0.7.0 2026-06-24 18:37:05 +09:00
Peter Steinberger 63e6d71959 fix: scope list feature overrides (#50) (thanks @ryanh-ai) 2026-06-24 18:35:53 +09:00
Ryan H 5509d915ba test: update feature flag expectations to match new values 2026-06-24 18:35:53 +09:00
loonbot 3dc78d8fff fix: add missing GraphQL feature flags (post_ctas_fetch_enabled et al)
Twitter's GraphQL API now requires additional feature flags that were missing.
This fixes issue #37 and merges PR #31 (home timeline command).

Added to global features.json:
- post_ctas_fetch_enabled
- responsive_web_graphql_exclude_directive_enabled
- blue_business_profile_image_shape_enabled
- tweetypie_unmention_optimization_enabled
- responsive_web_text_conversations_enabled
- interactive_text_enabled
- vibe_api_enabled
- responsive_web_twitter_blue_verified_badge_is_enabled

Fixes #37
2026-06-24 18:35:53 +09:00
yuta 3f370cc4b6 feat: support relay profile selection
CI / test (push) Successful in 10m2s
2026-06-24 18:30:24 +09:00
yuta 7a036e244d fix: parse verify credentials user id
CI / test (push) Successful in 9m59s
Publish npm package / publish (push) Failing after 5m12s
2026-06-24 16:33:43 +09:00
yuta ea7e5191b2 docs: update install and relay links
CI / test (push) Successful in 10m0s
2026-06-24 15:59:57 +09:00
yuta 61f6efd816 fix: use package token for gitea npm publish
CI / test (push) Successful in 9m57s
Publish npm package / publish (push) Failing after 5m12s
v0.7.0
2026-06-24 15:35:39 +09:00
yuta 69238834f2 fix: align gitea pnpm install config
CI / test (push) Successful in 10m1s
2026-06-24 15:08:49 +09:00
yuta 0e5c62b250 chore: release 0.7.0
CI / test (push) Failing after 5m6s
Publish npm package / publish (push) Failing after 5m8s
2026-06-24 14:57:47 +09:00
yuta 96535c33f9 feat: publish bird via gitea and nix
CI / test (push) Failing after 6m27s
2026-06-24 14:55:06 +09:00
yuta fd78705954 Merge pull request 'Use twitter safe relay' (#1) from remove-cookie-auth-use-twitter-safe-relay into main
CI / test (push) Has been cancelled
Reviewed-on: #1
2026-06-24 04:38:49 +09:00
yuta 6503bb1b76 Simplify relay request headers
CI / test (pull_request) Has been cancelled
2026-06-24 03:52:16 +09:00
yuta 1f6e228272 Use twitter safe relay
CI / test (pull_request) Has been cancelled
2026-06-24 03:39:34 +09:00
Peter Steinberger b771e827aa Merge pull request #48 from jsholmes/fix/tweet-detail-partial-errors
fix: handle partial errors in TweetDetail API responses
2026-01-12 07:33:40 +00:00
Peter Steinberger afdcad4f25 fix: allow partial tweet detail errors (#48) (thanks @jsholmes) 2026-01-12 07:33:25 +00:00
John HolmesandClaude Opus 4.5 35b8774b1c fix: handle partial errors in TweetDetail API responses
Twitter API sometimes returns partial errors (e.g., is_translatable field
failures) alongside valid thread data. Previously, any error caused the
entire request to fail even when usable data was present.

Now we check if threaded_conversation_with_injections_v2.instructions
exists before failing on errors, allowing successful thread fetching
despite non-fatal API errors.

Co-Authored-By: Claude Opus 4.5 <[email protected]>
2026-01-12 07:32:42 +00:00
Peter Steinberger 57c8e8e793 Merge pull request #44 from jsholmes/feat/likes-pagination
feat: add full pagination support to likes (parity with bookmarks)
2026-01-12 07:09:02 +00:00
Peter Steinberger afa7063a72 fix: guard pagination limits (#44) (thanks @jsholmes) 2026-01-12 07:07:47 +00:00
Peter Steinberger bc744a3bf9 feat: add full pagination support to likes (parity with bookmarks)
Library changes:
- Add getAllLikes(options) method for fetching all likes with cursor support
- Refactor getLikes to use private getLikesPaged helper
- Return nextCursor for resumable pagination
- Support maxPages option to limit pages fetched

CLI changes:
- Add --all flag to fetch all likes
- Add --max-pages to limit pagination
- Add --cursor to resume from previous fetch
- Output nextCursor in JSON mode for resumable pagination

This brings likes to feature parity with bookmarks.

Co-Authored-By: Claude Opus 4.5 <[email protected]>

# Conflicts:
#	src/commands/users.ts
2026-01-12 07:06:18 +00:00
Peter Steinberger 9cfeda13b2 test: add search CLI pagination checks 2026-01-12 06:44:42 +00:00
Peter Steinberger 35f8fa1a38 Merge pull request #42 from pjtf93/feat/search-pagination
feat: add pagination support to search command
2026-01-12 06:31:15 +00:00