Bugs fixed (from Codex + Gemini audit):
- CRITICAL: Atomic timing_stats update (DELETE+INSERTs wrapped in transaction)
- CRITICAL: Atomic token file writes (write .tmp then rename, prevents corruption)
- HIGH: parse_tweet_id handles trailing slashes, query params, validates numeric IDs
- HIGH: Shared OAuth2 client with 120s timeout (was creating new client per request)
- HIGH: Poll validation (2-4 options, max 25 chars each) before API call
- MEDIUM: Silent intel store warnings surfaced on stderr
- MEDIUM: Bookmark sync now paginates (follows next_token for 100+ bookmarks)
- MEDIUM: Preflight analyze echoes input text in JSON output
Test coverage (30 new tests, 60 total):
- 7 parse_tweet_id tests (raw ID, x.com URL, twitter.com URL, query params, trailing slash)
- 10 preflight scoring tests (link detection, bait, mentions, numbers, questions, empty, perfect)
- 8 SQLite store tests (log/retrieve post, duplicate handling, engagement, empty DB edge cases)
- 7 new integration tests (analyze, thread, schedule, bookmarks, config guide, suggest, report)
60/60 tests passing (37 unit + 23 integration). Zero compilation errors.