docs: cut 0.1.0 changelog and refresh README
This commit is contained in:
+8
-2
@@ -2,6 +2,8 @@
|
||||
|
||||
## Unreleased
|
||||
|
||||
## 0.1.0 — 2025-12-05
|
||||
|
||||
### Added
|
||||
- `whoami` command works with both GraphQL cookies and Sweetistics API keys.
|
||||
- Firefox cookie extraction (`--firefox-profile`) alongside existing Chrome/env/CLI credential paths.
|
||||
@@ -9,14 +11,18 @@
|
||||
- Colorized help banner and example block; `pnpm bird` builds then runs the CLI; no subcommand shows help.
|
||||
- JSON5 config files (`~/.config/bird/config.json5`, `./.birdrc.json5`) for defaults like engine and browser profile.
|
||||
- Config toggles to disable cookie sources (`allowChrome`, `allowFirefox`) and default transport now `graphql` with Firefox as preferred cookie source.
|
||||
- Conversation commands: `thread` and `replies`, plus `search` and `mentions` convenience helpers.
|
||||
- Sweetistics transport for all commands (tweet, reply, read, thread, replies, search) with automatic 15s timeouts and media uploads (images or single video).
|
||||
- Sweetistics conversation fetch now forces fresh data (`force=true`) to bypass cache for `thread`/`replies`.
|
||||
- CI workflow on push/PR (Node 22, pnpm 10, Go stable) running `pnpm test`.
|
||||
|
||||
### Changed
|
||||
- Default option resolution now honors config files (project then global) before env/CLI overrides.
|
||||
|
||||
### Changed
|
||||
- `whoami` now prefers Sweetistics when an API key is present; otherwise uses Twitter cookies.
|
||||
- Sweetistics media uploads use the Sweetistics engine only; GraphQL mode rejects mixed media.
|
||||
|
||||
### Fixed
|
||||
- Fallback to scraping the authenticated settings page when Twitter account APIs return 404, so `whoami` still resolves the user.
|
||||
- Sweetistics calls now time out after 15s to avoid hanging CLI commands when the API is slow or unresponsive.
|
||||
- Sweetistics tweeting now supports media uploads (images or single video) via new CLI `--media/--alt` flags.
|
||||
- Coverage raised above 70% via new cookie and conversation tests.
|
||||
|
||||
@@ -165,8 +165,8 @@ bird check
|
||||
### Credential sources (macOS)
|
||||
|
||||
Used only when transport resolves to **graphql**:
|
||||
- **Chrome (default)**: `~/Library/Application Support/Google/Chrome/<Profile>/Cookies` (WAL/SHM copied too). `--chrome-profile <name>`.
|
||||
- **Firefox**: `~/Library/Application Support/Firefox/Profiles/<profile>/cookies.sqlite`. `--firefox-profile <name>` (defaults to `*.default-release` if present).
|
||||
- **Firefox (default)**: `~/Library/Application Support/Firefox/Profiles/<profile>/cookies.sqlite`. `--firefox-profile <name>` (defaults to `default-release` if present).
|
||||
- **Chrome**: `~/Library/Application Support/Google/Chrome/<Profile>/Cookies` (WAL/SHM copied too). `--chrome-profile <name>`.
|
||||
- **Env/flags** always override browser cookies.
|
||||
|
||||
Precedence: CLI flags > env vars > project config > global config. Transport is chosen first; then, if transport is GraphQL, cookie source is chosen.
|
||||
@@ -186,6 +186,8 @@ bird --sweetistics-base-url "http://localhost:3000" --sweetistics-api-key "sweet
|
||||
When an API key is present, `bird` will use Sweetistics’ `/api/actions/tweet` endpoint and skip local cookie resolution.
|
||||
All Sweetistics calls have a 15s timeout so the CLI won’t hang if the API is slow or unreachable.
|
||||
|
||||
**Threads/replies freshness (Sweetistics):** conversation calls (`thread`, `replies`) are requested with `force=true`, bypassing Sweetistics cache to ensure the latest tweets are returned.
|
||||
|
||||
⚠️ GraphQL mode uses X’s internal endpoints and is rate‑limited aggressively; expect 429s if you run many reads/writes without Sweetistics.
|
||||
|
||||
### Getting Your Cookies
|
||||
|
||||
Reference in New Issue
Block a user