Response-handling fixes (mirrored with the remote MCP server — identical behavior):
- Never silently empty: a search reporting
finishedbefore its results are written now keeps polling through a settle window and returnsstatus: "results_pending"(pointing atget_keyword_search) instead offinishedwithresults: null. - Response size cap (~100 KB): large responses no longer break MCP transports. The largest post arrays are trimmed from the end with an explicit
truncated: true+truncationreport; analytics/sentiment/summary fields are always complete. Full post data remains available via the posts tools with a platform filter. Configurable viaROLLI_MAX_RESPONSE_BYTES. - Boolean query guidance:
keyword_searchdocuments the backend's boolean syntax (AND / OR / NOT, parentheses, quoted exact phrases) so compound queries stop token-OR-matching into unrelated posts. - Credit preflight:
start_agent_run/rerun_agent_runcheck the IQ credit balance first and fail instantly withrequired_creditsvsavailable_credits— no more runs failing mid-flight on credits. - Balance visibility:
get_usagenow includescredits.credits_remaining(pluscredits_limit/period_reset_dateonce the backend ships them). - Agent runs now poll inline for 2 minutes then return the run ID for async retrieval (matching the remote server);
report_htmlis stripped from run payloads. - Platforms aligned with the remote server:
threadsadded;linkedinandweiboremoved. - New env vars:
ROLLI_MAX_RESPONSE_BYTES(default 100000),ROLLI_RESULTS_SETTLE_MS(default 45000).