Releases: paperfoot/xmaster-cli
Releases · paperfoot/xmaster-cli
v1.6.4
v1.6.4: long-form authoring helper - analyze auto-runs long-form heuristics above 500 chars (preview hook, scannability, payoff density, dwell sweet-spot reward) - inspire --long surfaces high-impression long-form exemplars - agent-info adds the Jan 2026 $1M Article Contest data + winning pattern, seed authors, nanaban cover-image command, and 2026 timing guidance
v1.6.3
v1.6.3: cross-post candidates in track run
v1.6.2
v1.6.2: 2026 algorithm alignment — daily cap, thread drop-off, reply …
v1.6.1
v1.6.1: algorithm alignment + framework audit + --limit alias
v1.6.0
algorithm alignment: 19-signal model, author diversity, distribution …
v1.5.3
v1.5.3: fix self-update, drop self_update crate, update skill + agent…
v1.5.2
update agent-info and skill for from: operator in search-ai - agent-info usage hint now documents from:username support - skill file updated: search examples use search-ai with from: operator instead of the API search command
v1.5.1
v1.5.1: CreateNoteTweet support for Premium long posts via web fallback
Web session fallback now uses CreateNoteTweet GraphQL mutation for posts
>280 chars when account has Premium, fixing error 186 ("Tweet needs to be
a bit shorter") that occurred because CreateTweet hard-caps at 280 regardless
of Premium status.
Changes:
- xapi.rs: create_tweet_via_web() selects CreateNoteTweet vs CreateTweet based
on text length + premium flag. Different query ID, richtext_options variable,
and response path (data.notetweet_create vs data.create_tweet)
- config.rs: add graphql_create_note_tweet_id override for query ID rotation
- post.rs: preflight now shows critical issues (over_limit, empty_content) for
replies too — previously all validation was skipped for replies
- Specific error message when Premium long post is rejected (suggests checking
subscription status)
v1.5.0
v1.5.0: discovered posts library — automatic caching + inspire command Every search, timeline, read, mentions, and engage feed now caches external posts into a local discovered_posts SQLite table. Zero extra API calls — just stops discarding data we already fetch. New features: - discovered_posts table with UPSERT semantics (re-encounters update metrics, preserve first_source/discovered_at, backfill media URLs from read) - Cache taps in 6 commands: search, timeline, mentions, read, engage recommend, engage feed - New `xmaster inspire` command to query the library: --topic, --author, --min-likes filters, sorted by impressions - query_discovered_posts() and discovered_posts_count() store methods The library builds itself from normal usage. Over time it becomes a personal collection of high-performing posts from the user's niche — like SuperX's 10M viral library, but personal, always fresh, and fully local.
v1.4.2
v1.4.2: add config get command, wire voice into preflight, update docs - New `config get <key>` command for reading individual config values (agents can read style.voice before adapting it, not blindly replacing) - Wire style.voice into post/analyze AnalyzeContext as author_voice - agent-info: document config get, premium hint in usage_hints - README: document config get, premium setup step - config show: display Premium status