LIVE BEFORE/AFTER PROOF — HEAD
Linux | real dev server | live MCP HTTP | synthetic ACP data
1920 x 1080 | dark terminal | no recorded output replay

Commit: 2a5e57102bbdd1737f710ebfd1954be4be9cf950
1. Default read, then documented limit=100 / maxCharsPerItem=1500
Default activity: 2346 bytes | 2 items | hasMore=true | next=1
Documented activity: 27296 bytes | 7 items | hasMore=true | next=6
2. Live Claude Code MCP client
Linux | real dev server | live MCP HTTP | synthetic ACP data
1920 x 1080 | dark terminal | no recorded output replay

Calling the same long thread through the actual client.
Actual Claude Code client exit: 0
Tool response returned inline.
Saved to file because of output limit: false
3. Follow each read's own nextPosition and nextTextOffset
Linux | real dev server | live MCP HTTP | synthetic ACP data
1920 x 1080 | dark terminal | no recorded output replay

Long default: 2346 bytes | 2 items | hasMore=true | next=1
Long afterPosition=1: 29997 bytes | 1 items | hasMore=true | next=2
Long textOffset=9358: 29999 bytes | 1 items | hasMore=false | next=2
  returned 9358 chars; nextTextOffset=18716
Long textOffset=18716: 29999 bytes | 1 items | hasMore=false | next=2
  returned 9358 chars; nextTextOffset=28074
Long textOffset=28074: 29999 bytes | 1 items | hasMore=false | next=2
  returned 9358 chars; nextTextOffset=37432
Long textOffset=37432: 29999 bytes | 1 items | hasMore=false | next=2
  returned 9358 chars; nextTextOffset=46790
Long textOffset=46790: 29999 bytes | 1 items | hasMore=false | next=2
  returned 9358 chars; nextTextOffset=56148
Long textOffset=56148: 29999 bytes | 1 items | hasMore=false | next=2
  returned 9358 chars; nextTextOffset=65506
Long textOffset=65506: 2015 bytes | 1 items | hasMore=false | next=2
  returned 30 chars; nextTextOffset=null
Long afterPosition=2: 25843 bytes | 1 items | hasMore=true | next=3
Long afterPosition=3: 25843 bytes | 1 items | hasMore=true | next=4
Long afterPosition=4: 25843 bytes | 1 items | hasMore=true | next=5
Long afterPosition=5: 25843 bytes | 1 items | hasMore=true | next=6
Long afterPosition=6: 25843 bytes | 1 items | hasMore=true | next=7
Long afterPosition=7: 25843 bytes | 1 items | hasMore=true | next=8
Long afterPosition=8: 25843 bytes | 1 items | hasMore=true | next=9
Long afterPosition=9: 25845 bytes | 1 items | hasMore=true | next=10
Long afterPosition=10: 25845 bytes | 1 items | hasMore=true | next=11
Long afterPosition=11: 25845 bytes | 1 items | hasMore=true | next=12
Long afterPosition=12: 25847 bytes | 1 items | hasMore=true | next=13
Long afterPosition=13: 25847 bytes | 1 items | hasMore=true | next=14
Long afterPosition=14: 25847 bytes | 1 items | hasMore=true | next=15
Long afterPosition=15: 25847 bytes | 1 items | hasMore=true | next=16
Long afterPosition=16: 25847 bytes | 1 items | hasMore=true | next=17
Long afterPosition=17: 25847 bytes | 1 items | hasMore=true | next=18
Long afterPosition=18: 25847 bytes | 1 items | hasMore=true | next=19
Long afterPosition=19: 25847 bytes | 1 items | hasMore=true | next=20
Long afterPosition=20: 25847 bytes | 1 items | hasMore=true | next=21
Long afterPosition=21: 25847 bytes | 1 items | hasMore=true | next=22
Long afterPosition=22: 25847 bytes | 1 items | hasMore=true | next=23
Long afterPosition=23: 25847 bytes | 1 items | hasMore=true | next=24
Long afterPosition=24: 25847 bytes | 1 items | hasMore=true | next=25
Long afterPosition=25: 25847 bytes | 1 items | hasMore=true | next=26
Long afterPosition=26: 25847 bytes | 1 items | hasMore=true | next=27
Long afterPosition=27: 25847 bytes | 1 items | hasMore=true | next=28
Long afterPosition=28: 25847 bytes | 1 items | hasMore=true | next=29
Long afterPosition=29: 25847 bytes | 1 items | hasMore=true | next=30
Long afterPosition=30: 25847 bytes | 1 items | hasMore=true | next=31
Long afterPosition=31: 25847 bytes | 1 items | hasMore=true | next=32
Long afterPosition=32: 25847 bytes | 1 items | hasMore=true | next=33
Long afterPosition=33: 25847 bytes | 1 items | hasMore=true | next=34
Long afterPosition=34: 25847 bytes | 1 items | hasMore=true | next=35
Long afterPosition=35: 25847 bytes | 1 items | hasMore=true | next=36
Long afterPosition=36: 25847 bytes | 1 items | hasMore=true | next=37
Long afterPosition=37: 25847 bytes | 1 items | hasMore=true | next=38
Long afterPosition=38: 25847 bytes | 1 items | hasMore=true | next=39
Long afterPosition=39: 25847 bytes | 1 items | hasMore=true | next=40
Long afterPosition=40: 25847 bytes | 1 items | hasMore=true | next=41
Long afterPosition=41: 27119 bytes | 3 items | hasMore=false | next=44
Recovered 45 timeline items.
Long assistant: 65536 chars; SHA256 f9ad22b38d38a4011b15
4. Oversized item title and oversized thread envelope
Linux | real dev server | live MCP HTTP | synthetic ACP data
1920 x 1080 | dark terminal | no recorded output replay

30,000-char item title: 29997 bytes | 1 items | hasMore=true | next=2
  returned title chars=4618; text chars=4821
  nextTextOffset=4821
Title text continuation: 25304 bytes | 1 items | hasMore=false | next=2
  continuation text chars=3227
20,000-char thread title: 76249 bytes | 1 items | hasMore=true | next=2
  envelope itself exceeds 30 KB; this is not a hard total cap.
  useful text chars=4852; nextTextOffset=4852
5. Completed delegated child: positive-offset acknowledgement
Linux | real dev server | live MCP HTTP | synthetic ACP data
1920 x 1080 | dark terminal | no recorded output replay

Persisted delivery state before reads: claimed
Read beyond end: 2583 bytes | 1 items | hasMore=false | next=2
Persisted delivery state after empty read: claimed
Child default: 2645 bytes | 1 items | hasMore=true | next=0
Child afterPosition=0: 29999 bytes | 1 items | hasMore=true | next=1
Child textOffset=9145: 29998 bytes | 1 items | hasMore=false | next=1
  returned 9144 chars; nextTextOffset=18289
Child textOffset=18289: 29998 bytes | 1 items | hasMore=false | next=1
  returned 9144 chars; nextTextOffset=27433
Child textOffset=27433: 29998 bytes | 1 items | hasMore=false | next=1
  returned 9144 chars; nextTextOffset=36577
Child textOffset=36577: 29998 bytes | 1 items | hasMore=false | next=1
  returned 9144 chars; nextTextOffset=45721
Child textOffset=45721: 29998 bytes | 1 items | hasMore=false | next=1
  returned 9144 chars; nextTextOffset=54865
Child textOffset=54865: 29998 bytes | 1 items | hasMore=false | next=1
  returned 9144 chars; nextTextOffset=64009
Child textOffset=64009: 7147 bytes | 1 items | hasMore=false | next=1
  returned 1527 chars; nextTextOffset=null
Child afterPosition=1: 2585 bytes | 1 items | hasMore=false | next=2
Persisted delivery state after final text chunk: acknowledged
RESULT — HEAD
Linux | real dev server | live MCP HTTP | synthetic ACP data
1920 x 1080 | dark terminal | no recorded output replay

Commit: 2a5e57102bbdd1737f710ebfd1954be4be9cf950
Default read: 2346 bytes; hasMore=true
Documented read: 27296 bytes; hasMore=true
Claude Code saved result to file: false
All 45 long-thread items recovered through server cursors.
Long assistant reconstructed: 65536 chars.
Oversized item title returned: 4618 chars.
Oversized envelope: useful text 4852 chars; total can exceed 30 KB.
Child delivery: claimed -> claimed -> acknowledged

AI-assisted; verified with the tools shown here.
