docs: cut 0.1.0 changelog and refresh README
This commit is contained in:
+8
-2
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
## 0.1.0 — 2025-12-05
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- `whoami` command works with both GraphQL cookies and Sweetistics API keys.
|
- `whoami` command works with both GraphQL cookies and Sweetistics API keys.
|
||||||
- Firefox cookie extraction (`--firefox-profile`) alongside existing Chrome/env/CLI credential paths.
|
- 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.
|
- 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.
|
- 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.
|
- 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
|
### Changed
|
||||||
- Default option resolution now honors config files (project then global) before env/CLI overrides.
|
- 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.
|
- `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
|
### Fixed
|
||||||
- Fallback to scraping the authenticated settings page when Twitter account APIs return 404, so `whoami` still resolves the user.
|
- 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 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.
|
- 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)
|
### Credential sources (macOS)
|
||||||
|
|
||||||
Used only when transport resolves to **graphql**:
|
Used only when transport resolves to **graphql**:
|
||||||
- **Chrome (default)**: `~/Library/Application Support/Google/Chrome/<Profile>/Cookies` (WAL/SHM copied too). `--chrome-profile <name>`.
|
- **Firefox (default)**: `~/Library/Application Support/Firefox/Profiles/<profile>/cookies.sqlite`. `--firefox-profile <name>` (defaults to `default-release` if present).
|
||||||
- **Firefox**: `~/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.
|
- **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.
|
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.
|
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.
|
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.
|
⚠️ 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
|
### Getting Your Cookies
|
||||||
|
|||||||
Reference in New Issue
Block a user