Environment: Linux; real T3 development server; Claude Code CLI with Haiku; synthetic replay history; no live database. Side: head Commit: 2f0c0474366e127d7f10c8e6606a364435cd9f94 Direct HTTP MCP calls (thread-bound agent session): [ { "label": "default", "arguments": {}, "textCharacters": 8595, "jsonCharacters": 8595, "totalItems": 3234, "returnedItems": 10, "firstPosition": 2225, "lastPosition": 3134, "earlierPosition": 2225, "nextPosition": 3134, "hasMore": false, "chronological": true }, { "label": "activity-1500", "arguments": { "view": "activity", "limit": 100, "maxCharsPerItem": 1500 }, "textCharacters": 29927, "jsonCharacters": 29927, "totalItems": 3234, "returnedItems": 47, "firstPosition": 3187, "lastPosition": 3233, "earlierPosition": 3187, "nextPosition": 3233, "hasMore": false, "chronological": true }, { "label": "activity-1", "arguments": { "view": "activity", "limit": 100, "maxCharsPerItem": 1 }, "textCharacters": 30011, "jsonCharacters": 30011, "totalItems": 3234, "returnedItems": 54, "firstPosition": 3180, "lastPosition": 3233, "earlierPosition": 3180, "nextPosition": 3233, "hasMore": false, "chronological": true }, { "label": "older-page", "arguments": { "view": "activity", "limit": 100, "maxCharsPerItem": 1500, "beforePosition": 3187 }, "textCharacters": 29908, "jsonCharacters": 29908, "totalItems": 3234, "returnedItems": 47, "firstPosition": 3140, "lastPosition": 3186, "earlierPosition": 3140, "nextPosition": 3186, "hasMore": true, "chronological": true }, { "label": "explicit-start", "arguments": { "view": "activity", "limit": 100, "maxCharsPerItem": 1500, "afterPosition": -1 }, "textCharacters": 29619, "jsonCharacters": 29619, "totalItems": 3234, "returnedItems": 47, "firstPosition": 0, "lastPosition": 46, "earlierPosition": null, "nextPosition": 46, "hasMore": true, "chronological": true } ] Actual Claude Code tool invocation and observed result: {"type": "tool_use", "id": "toolu_01CyiGE8RdKByprHrxZJwmwj", "name": "mcp__proof__t3_thread_read", "input": {"threadId": "mcp:6e032cda-0997-48b1-81ea-a4e0283a18e8", "view": "activity", "limit": 100, "maxCharsPerItem": 1}, "caller": {"type": "direct"}} Tool result delivered inline (full synthetic payload in head-activity-1.json). The tool result was **not** saved to a file. It came back inline in the response. The call returned 54 activity items (positions 3180 to 3233), with `hasMore: false`. The thread reports 3,234 items in total, so this is only the tail of the thread, not the full 100 I requested. The thread is still `running`. Each item's text was cut to a single character, as `maxCharsPerItem: 1` requested.