3.7 KiB
3.7 KiB
Changelog
0.4.2 — Unreleased
Added
following/followerscommands to list users (thanks @lockmeister).
Changed
- Query ID updater now tracks Following/Followers GraphQL operations.
0.4.1 — 2025-12-31
Added
bookmarkscommand to list your bookmarked tweets.
Changed
- Cookie extraction now uses
@steipete/sweet-cookie(dropssqlite3CLI + custom browser readers inbird). - Query ID updater now tracks the Bookmarks GraphQL operation.
- Lint rules stricter (block statements, no-negation-else, useConst/useTemplate, top-level regex, import extension enforcement).
pnpm lintnow runs both Biome and oxlint (type-aware).
Tests
- Coverage thresholds raised to 90% statements/lines/functions (80% branches).
- Added targeted Twitter client coverage suites.
0.4.0 — 2025-12-26
Added
- Cookie source selection:
--cookie-source safari|chrome|firefox(repeatable) +cookieSourceconfig (string or array).
Fixed
tweet/reply: fallback tostatuses/update.jsonwhen GraphQLCreateTweetreturns error 226 (“automated request”).
Breaking
- Remove
allowSafari/allowChrome/allowFirefoxconfig toggles in favor ofcookieSourceordering.
0.3.0 — 2025-12-26
Added
- Safari cookie extraction (
Cookies.binarycookies) +allowSafariconfig toggle.
Changed
- Removed the Sweetistics engine + fallback.
birdis GraphQL-only. - Browser cookie fallback order: Safari → Chrome → Firefox.
Tests
- Enforce coverage thresholds (>= 70% statements/branches/functions/lines) + expand unit coverage for version/output/Twitter client branches.
0.2.0 — 2025-12-26
Added
- Output controls:
--plain,--no-emoji,--no-color(respectsNO_COLOR). helpcommand:bird help <command>.- Runtime GraphQL query ID refresh:
bird query-ids --fresh(cached on disk; auto-retry on 404; override cache viaBIRD_QUERY_IDS_CACHE). - GraphQL media uploads via
--media(up to 4 images/GIFs, or 1 video).
Fixed
- CLI
--version: read version frompackage.json/VERSION(no hardcoded string) + append git sha when available.
Changed
mentions: no hardcoded user; defaults to authenticated user or accepts--user @handle.- GraphQL query ID updater: correctly pairs
operationName↔queryId(CreateTweet/CreateRetweet/etc). build:dist: copiessrc/lib/query-ids.jsonintodist/lib/query-ids.json(keepsdist/in sync).--engine graphql: strict GraphQL-only (disables Sweetistics fallback).
0.1.1 — 2025-12-26
Changed
- Engine default now
auto(GraphQL primary; Sweetistics only on fallback when configured).
Tests
- Add engine resolution tests for auto/default behavior.
Fixed
- GraphQL read: rotate TweetDetail query IDs with fallback to avoid 404s.
0.1.0 — 2025-12-20
Added
- CLI commands:
tweet,reply,read,replies,thread,search,mentions,whoami,check. - URL/ID shorthand for
read, plus--jsonoutput where supported. - GraphQL engine with cookie auth from Firefox/Chrome/env/flags (macOS browsers).
- Sweetistics engine (API key) with automatic fallback when configured.
- Media uploads via Sweetistics with per-item alt text (images or single video).
- Long-form Notes and Articles extraction for full text output.
- Thread + reply fetching with full conversation parsing.
- Search + mentions via GraphQL (latest timeline).
- JSON5 config files (
~/.config/bird/config.json5,./.birdrc.json5) with engine defaults, profiles, allowChrome/allowFirefox, and timeoutMs. - Request timeouts (
--timeout,timeoutMs) for GraphQL and Sweetistics calls. - Bun-compiled standalone binary via
pnpm run build. - Query ID refresh helper:
pnpm run graphql:update.