opentui(v6): restore scrollback cap 1000 → 3000 under windowing (#27 payoff)

With transcript windowing (S1+S2) the mounted set no longer scales with
the store (peak 31 rows over a 1500-row burst), so the handle-table
clamp that forced 1000 rows is unnecessary when windowing is on. The
ceiling is now windowing-aware: 3000 rows (the originally-shipped
default, regression documented in opentui-fixes-audit.md §2) with
windowing, 1000 with HERMES_TUI_WINDOWING=0 (every row mounts again).

Measured at the restored cap (full 3000-msg store): mem3000 360MB peak
styled end-to-end (pre-campaign: ~870MB + unstyled past ~1,400 rows;
before that: crash). scroll3000 p50=2 p90=3 p99=8 max=17ms (Ink same
workload: p90=35 p99=96). Gate digest unchanged.
This commit is contained in:
alt-glitch 2026-06-11 14:12:50 +05:30
parent 360388f627
commit dc3c7dc405
10 changed files with 9209 additions and 6 deletions

View file

@ -0,0 +1,405 @@
{
"meta": {
"cell": "gate",
"ui": "ink",
"config": "ink",
"mode": "digest",
"rep": 0,
"run_id": "mq98xqy9-b9pu",
"utc": "2026-06-11T08:39:17.938Z",
"sha": "ff3c07349",
"node": "/home/daimon/.local/share/fnm/node-versions/v26.3.0/installation/bin/node",
"node_version": "v26.3.0",
"pty": {
"cols": 120,
"rows": 40,
"term": "xterm-256color"
},
"heap_mb": 8192,
"memory_max": null,
"container_cap": false,
"container_memory": null,
"opentui_cap": null,
"fixture": {
"path": "/home/daimon/github/worktrees/hermes-agent/lively-thrush/hermes-agent/bench/.cache/fixture-300.ndjson",
"msgs": 300,
"sha256": "ac81e975c299da7d50cfda7fc0fee33c356bd31a4e17a7f0f8e49905e205051a"
},
"sample_every": 100,
"mode_params": {},
"ui_pid": 3150146,
"gw_pid": 3150154,
"cgroup": null,
"load_avg_at_start": [
0.61,
0.34,
0.24
],
"instrumented": false
},
"samples": [
{
"kind": "periodic",
"t_ms": 27,
"msgs": null,
"events": null,
"pty_bytes": 0,
"pty_writes": 0,
"rss_kb": 56312,
"pss_kb": 30424,
"private_dirty_kb": 19292,
"vmhwm_kb": 56356,
"utime_ticks": 2,
"stime_ticks": 0
},
{
"kind": "periodic",
"t_ms": 1045,
"msgs": null,
"events": null,
"pty_bytes": 6607,
"pty_writes": 10,
"rss_kb": 107324,
"pss_kb": 68956,
"private_dirty_kb": 49456,
"vmhwm_kb": 107324,
"utime_ticks": 24,
"stime_ticks": 1
},
{
"kind": "boundary",
"t_ms": 1448,
"msgs": 100,
"events": 355,
"pty_bytes": 10132,
"pty_writes": 13,
"rss_kb": 126572,
"pss_kb": 88154,
"private_dirty_kb": 67984,
"vmhwm_kb": 126664,
"utime_ticks": 32,
"stime_ticks": 2
},
{
"kind": "boundary",
"t_ms": 1498,
"msgs": 200,
"events": 738,
"pty_bytes": 18127,
"pty_writes": 17,
"rss_kb": 153384,
"pss_kb": 114902,
"private_dirty_kb": 94796,
"vmhwm_kb": 153228,
"utime_ticks": 40,
"stime_ticks": 3
},
{
"kind": "boundary",
"t_ms": 1523,
"msgs": 300,
"events": 1051,
"pty_bytes": 21112,
"pty_writes": 18,
"rss_kb": 163672,
"pss_kb": 125158,
"private_dirty_kb": 105020,
"vmhwm_kb": 163708,
"utime_ticks": 45,
"stime_ticks": 4
},
{
"kind": "done",
"t_ms": 1524,
"msgs": 300,
"events": 1051,
"pty_bytes": 21112,
"pty_writes": 18,
"rss_kb": 163804,
"pss_kb": 125290,
"private_dirty_kb": 105152,
"vmhwm_kb": 163816,
"utime_ticks": 45,
"stime_ticks": 4
},
{
"kind": "periodic",
"t_ms": 2053,
"msgs": 300,
"events": null,
"pty_bytes": 32646,
"pty_writes": 26,
"rss_kb": 175028,
"pss_kb": 136482,
"private_dirty_kb": 116376,
"vmhwm_kb": 183416,
"utime_ticks": 59,
"stime_ticks": 4
},
{
"kind": "final",
"t_ms": 2920,
"msgs": 300,
"events": 1051,
"pty_bytes": 32691,
"pty_writes": 27,
"rss_kb": 175040,
"pss_kb": 136494,
"private_dirty_kb": 116388,
"vmhwm_kb": 183416,
"utime_ticks": 59,
"stime_ticks": 4
},
{
"kind": "periodic",
"t_ms": 3062,
"msgs": 300,
"events": null,
"pty_bytes": 36205,
"pty_writes": 29,
"rss_kb": 178304,
"pss_kb": 139758,
"private_dirty_kb": 119652,
"vmhwm_kb": 183416,
"utime_ticks": 62,
"stime_ticks": 4
},
{
"kind": "periodic",
"t_ms": 4069,
"msgs": 300,
"events": null,
"pty_bytes": 46915,
"pty_writes": 35,
"rss_kb": 180560,
"pss_kb": 142014,
"private_dirty_kb": 121908,
"vmhwm_kb": 183416,
"utime_ticks": 64,
"stime_ticks": 4
}
],
"events": [
{
"kind": "rpc",
"method": "config.get",
"t_ms": 177
},
{
"kind": "rpc",
"method": "commands.catalog",
"t_ms": 203
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 203
},
{
"kind": "rpc",
"method": "setup.status",
"t_ms": 203
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 203
},
{
"kind": "rpc",
"method": "session.create",
"t_ms": 203
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 203
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 229
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 229
},
{
"kind": "rpc",
"method": "session.active_list",
"t_ms": 229
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 229
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 229
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1421
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1446
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1446
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1448
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1471
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1471
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1496
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1521
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1521
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1524
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1546
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1546
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1571
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1571
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1597
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1597
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1597
},
{
"kind": "rpc",
"method": "session.active_list",
"t_ms": 1722
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 2935
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 2935
},
{
"kind": "rpc",
"method": "terminal.resize",
"t_ms": 3036
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 3085
},
{
"kind": "rpc",
"method": "session.active_list",
"t_ms": 3213
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 3339
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 3339
},
{
"kind": "rpc",
"method": "terminal.resize",
"t_ms": 3439
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 3489
}
],
"summary": {
"result": "completed",
"cap_hit": false,
"cap_hit_basis": null,
"at_messages": null,
"exit": {
"exitCode": 0,
"signal": 0,
"t": 4533
},
"stream_done": true,
"msgs_streamed": 300,
"events_streamed": 1051,
"pty_bytes_total": 47141,
"pty_data_callbacks": 37,
"first_byte_ms": 64,
"session_create_ms": 203,
"stream_start_ms": 1421,
"vmhwm_kb": 183416,
"cg_peak": null,
"drain_max_loop_lag_ms": 3,
"drain_lag_violations": 0,
"drain_ok": true,
"digest": "10e9b8b316c2fc21ddb82c71e6a944efa5d78558dd638717818de80ba604f3c8"
},
"digest_text": "Excepteur irure nostrud tempor ipsum cupidatat voluptate ullamco labore sit.│Amet culpa cillum commodo enim adipiscing deserunt nulla duis veniam sed.│Quis eiusmod lorem occaecat reprehenderit exercitation incididunt dolor proident velit laboris magna.│Esse aliquip aliqua consectetur officia fugiat consequat minim elit mollit pariatur aute quis.│Anim excepteur irure nostrud tempor ipsum cupidatat voluptate ullamco labore sit sunt esse aliquip.│Magna amet culpa cillum.│Aute quis eiusmod lorem occaecat.│ └─ ● Terminal(\"Proident velit laboris magna.\") (0.3s)│ └─ Args:│Proident velit laboris magna amet culpa cillum commodo enim adipiscing deserunt nulla.│Elit mollit pariatur aute quis eiusmod lorem occaecat reprehenderit exercitation incididunt dolor proident.│Ullamco labore sit sunt esse aliquip aliqua consectetur officia fugiat consequat minim elit mollit.│Nulla duis veniam sed.│Dolor proident velit laboris magna.│Result:│Pariatur aute quis eiusmod lorem occaecat reprehenderit exercitation incididunt dolor proident velit laboris.│Sit sunt esse aliquip aliqua consectetur officia fugiat consequat minim elit mollit pariatur aute.││┊ Minimelitmollitpariaturautequiseiusmodloremoccaecatreprehenderitexercitationincididuntdolor.Officia│fugiatconsequatminimelitmollitpariaturautequiseiusmodloremoccaecatreprehenderitexercitation.│┊ Temporipsumcupidatatvoluptateullamcolaboresitsuntessealiquipaliqua.Excepteurirurenostrudtempor│ipsumcupidatatvoluptateullamcolaboresitsuntesse.Veniamsedanimexcepteurirurenostrudtempor│ipsumcupidatatvoluptateullamcolaboresit.││• Suntessealiquipaliquaconsectetur.│• Consequatminimelitmollitpariaturautequis.│• Eiusmodloremoccaecatreprehenderit.││─ ts│constx4=58│functionf3(){│returnx│}││Exercitationincididuntdolorproidentvelitlaborismagnaametculpacillum.Loremoccaecatreprehenderit┃exercitationincididuntdolorproidentvelitlaborismagnaamet.─ ready │ fake model │ 3s │ voice off ─ …es-agent (…i-memory-window)❯│┃Excepteur irure nostrud tempor ipsum cupidatat voluptate ullamco labore sit.│Amet culpa cillum commodo enim adipiscing deserunt nulla duis veniam sed.│Quis eiusmod lorem occaecat reprehenderit exercitation incididunt dolor proident velit laboris magna.│Esse aliquip aliqua consectetur officia fugiat consequat minim elit mollit pariatur aute quis.│Anim excepteur irure nostrud tempor ipsum cupidatat voluptate ullamco labore sit sunt esse aliquip.│Magna amet culpa cillum.│Aute quis eiusmod lorem occaecat.│ └─ ● Terminal(\"Proident velit laboris magna.\") (0.3s)│ └─ Args:│Proident velit laboris magna amet culpa cillum commodo enim adipiscing deserunt nulla.│Elit mollit pariatur aute quis eiusmod lorem occaecat reprehenderit exercitation incididunt dolor proident.│Ullamco labore sit sunt esse aliquip aliqua consectetur officia fugiat consequat minim elit mollit.│Nulla duis veniam sed.│Dolor proident velit laboris magna.│Result:│Pariatur aute quis eiusmod lorem occaecat reprehenderit exercitation incididunt dolor proident velit laboris.│Sit sunt esse aliquip aliqua consectetur officia fugiat consequat minim elit mollit pariatur aute.││┊ Minimelitmollitpariaturautequiseiusmodloremoccaecatreprehenderitexercitationincididuntdolor.Officia│fugiatconsequatminimelitmollitpariaturautequiseiusmodloremoccaecatreprehenderitexercitation.│┊ Temporipsumcupidatatvoluptateullamcolaboresitsuntessealiquipaliqua.Excepteurirurenostrudtempor│ipsumcupidatatvoluptateullamcolaboresitsuntesse.Veniamsedanimexcepteurirurenostrudtempor│ipsumcupidatatvoluptateullamcolaboresit.││• Suntessealiquipaliquaconsectetur.│• Consequatminimelitmollitpariaturautequis.│• Eiusmodloremoccaecatreprehenderit.││─ ts│constx4=58│functionf3(){│returnx│}││Exercitationincididuntdolorproidentvelitlaborismagnaametculpacillum.Loremoccaecatreprehenderit│exercitationincididuntdolorproidentvelitlaborismagnaamet.┃─ ready │ fake model │ 3s │ voice off ─ …es-agent (…i-memory-window)❯4"
}

View file

@ -0,0 +1,405 @@
{
"meta": {
"cell": "gate",
"ui": "ink",
"config": "ink",
"mode": "digest",
"rep": 1,
"run_id": "mq98y2a8-kp28",
"utc": "2026-06-11T08:39:32.624Z",
"sha": "ff3c07349",
"node": "/home/daimon/.local/share/fnm/node-versions/v26.3.0/installation/bin/node",
"node_version": "v26.3.0",
"pty": {
"cols": 120,
"rows": 40,
"term": "xterm-256color"
},
"heap_mb": 8192,
"memory_max": null,
"container_cap": false,
"container_memory": null,
"opentui_cap": null,
"fixture": {
"path": "/home/daimon/github/worktrees/hermes-agent/lively-thrush/hermes-agent/bench/.cache/fixture-300.ndjson",
"msgs": 300,
"sha256": "ac81e975c299da7d50cfda7fc0fee33c356bd31a4e17a7f0f8e49905e205051a"
},
"sample_every": 100,
"mode_params": {},
"ui_pid": 3150442,
"gw_pid": 3150454,
"cgroup": null,
"load_avg_at_start": [
0.48,
0.32,
0.24
],
"instrumented": false
},
"samples": [
{
"kind": "periodic",
"t_ms": 27,
"msgs": null,
"events": null,
"pty_bytes": 0,
"pty_writes": 0,
"rss_kb": 56008,
"pss_kb": 30093,
"private_dirty_kb": 18960,
"vmhwm_kb": 56124,
"utime_ticks": 1,
"stime_ticks": 0
},
{
"kind": "periodic",
"t_ms": 1037,
"msgs": null,
"events": null,
"pty_bytes": 6610,
"pty_writes": 12,
"rss_kb": 106684,
"pss_kb": 68189,
"private_dirty_kb": 48756,
"vmhwm_kb": 106684,
"utime_ticks": 24,
"stime_ticks": 2
},
{
"kind": "boundary",
"t_ms": 1441,
"msgs": 100,
"events": 355,
"pty_bytes": 10133,
"pty_writes": 15,
"rss_kb": 123032,
"pss_kb": 84487,
"private_dirty_kb": 64384,
"vmhwm_kb": 123036,
"utime_ticks": 31,
"stime_ticks": 3
},
{
"kind": "boundary",
"t_ms": 1493,
"msgs": 200,
"events": 738,
"pty_bytes": 18179,
"pty_writes": 18,
"rss_kb": 147848,
"pss_kb": 109260,
"private_dirty_kb": 89200,
"vmhwm_kb": 147900,
"utime_ticks": 39,
"stime_ticks": 4
},
{
"kind": "boundary",
"t_ms": 1515,
"msgs": 300,
"events": 1051,
"pty_bytes": 22337,
"pty_writes": 20,
"rss_kb": 165848,
"pss_kb": 127228,
"private_dirty_kb": 107136,
"vmhwm_kb": 165884,
"utime_ticks": 43,
"stime_ticks": 4
},
{
"kind": "done",
"t_ms": 1517,
"msgs": 300,
"events": 1051,
"pty_bytes": 22337,
"pty_writes": 20,
"rss_kb": 165952,
"pss_kb": 127332,
"private_dirty_kb": 107240,
"vmhwm_kb": 165952,
"utime_ticks": 44,
"stime_ticks": 4
},
{
"kind": "periodic",
"t_ms": 2045,
"msgs": 300,
"events": null,
"pty_bytes": 33837,
"pty_writes": 24,
"rss_kb": 175148,
"pss_kb": 136528,
"private_dirty_kb": 116436,
"vmhwm_kb": 185016,
"utime_ticks": 58,
"stime_ticks": 5
},
{
"kind": "final",
"t_ms": 2918,
"msgs": 300,
"events": 1051,
"pty_bytes": 33882,
"pty_writes": 25,
"rss_kb": 175160,
"pss_kb": 136540,
"private_dirty_kb": 116448,
"vmhwm_kb": 185016,
"utime_ticks": 58,
"stime_ticks": 5
},
{
"kind": "periodic",
"t_ms": 3053,
"msgs": 300,
"events": null,
"pty_bytes": 37396,
"pty_writes": 27,
"rss_kb": 178156,
"pss_kb": 139536,
"private_dirty_kb": 119444,
"vmhwm_kb": 185016,
"utime_ticks": 61,
"stime_ticks": 5
},
{
"kind": "periodic",
"t_ms": 4059,
"msgs": 300,
"events": null,
"pty_bytes": 48106,
"pty_writes": 33,
"rss_kb": 178236,
"pss_kb": 139616,
"private_dirty_kb": 119524,
"vmhwm_kb": 185016,
"utime_ticks": 63,
"stime_ticks": 5
}
],
"events": [
{
"kind": "rpc",
"method": "config.get",
"t_ms": 177
},
{
"kind": "rpc",
"method": "commands.catalog",
"t_ms": 202
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 202
},
{
"kind": "rpc",
"method": "setup.status",
"t_ms": 202
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 202
},
{
"kind": "rpc",
"method": "session.create",
"t_ms": 202
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 202
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 227
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 227
},
{
"kind": "rpc",
"method": "session.active_list",
"t_ms": 227
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 227
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 227
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1415
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1439
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1441
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1464
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1464
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1490
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1493
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1493
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1514
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1539
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1539
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1565
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1565
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1590
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1590
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1590
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 1590
},
{
"kind": "rpc",
"method": "session.active_list",
"t_ms": 1715
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 2924
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 2924
},
{
"kind": "rpc",
"method": "terminal.resize",
"t_ms": 3026
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 3101
},
{
"kind": "rpc",
"method": "session.active_list",
"t_ms": 3226
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 3327
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 3327
},
{
"kind": "rpc",
"method": "terminal.resize",
"t_ms": 3428
},
{
"kind": "rpc",
"method": "config.get",
"t_ms": 3504
}
],
"summary": {
"result": "completed",
"cap_hit": false,
"cap_hit_basis": null,
"at_messages": null,
"exit": {
"exitCode": 0,
"signal": 0,
"t": 4531
},
"stream_done": true,
"msgs_streamed": 300,
"events_streamed": 1051,
"pty_bytes_total": 48332,
"pty_data_callbacks": 35,
"first_byte_ms": 68,
"session_create_ms": 202,
"stream_start_ms": 1415,
"vmhwm_kb": 185016,
"cg_peak": null,
"drain_max_loop_lag_ms": 2,
"drain_lag_violations": 0,
"drain_ok": true,
"digest": "10e9b8b316c2fc21ddb82c71e6a944efa5d78558dd638717818de80ba604f3c8"
},
"digest_text": "Excepteur irure nostrud tempor ipsum cupidatat voluptate ullamco labore sit.│Amet culpa cillum commodo enim adipiscing deserunt nulla duis veniam sed.│Quis eiusmod lorem occaecat reprehenderit exercitation incididunt dolor proident velit laboris magna.│Esse aliquip aliqua consectetur officia fugiat consequat minim elit mollit pariatur aute quis.│Anim excepteur irure nostrud tempor ipsum cupidatat voluptate ullamco labore sit sunt esse aliquip.│Magna amet culpa cillum.│Aute quis eiusmod lorem occaecat.│ └─ ● Terminal(\"Proident velit laboris magna.\") (0.3s)│ └─ Args:│Proident velit laboris magna amet culpa cillum commodo enim adipiscing deserunt nulla.│Elit mollit pariatur aute quis eiusmod lorem occaecat reprehenderit exercitation incididunt dolor proident.│Ullamco labore sit sunt esse aliquip aliqua consectetur officia fugiat consequat minim elit mollit.│Nulla duis veniam sed.│Dolor proident velit laboris magna.│Result:│Pariatur aute quis eiusmod lorem occaecat reprehenderit exercitation incididunt dolor proident velit laboris.│Sit sunt esse aliquip aliqua consectetur officia fugiat consequat minim elit mollit pariatur aute.││┊ Minimelitmollitpariaturautequiseiusmodloremoccaecatreprehenderitexercitationincididuntdolor.Officia│fugiatconsequatminimelitmollitpariaturautequiseiusmodloremoccaecatreprehenderitexercitation.│┊ Temporipsumcupidatatvoluptateullamcolaboresitsuntessealiquipaliqua.Excepteurirurenostrudtempor│ipsumcupidatatvoluptateullamcolaboresitsuntesse.Veniamsedanimexcepteurirurenostrudtempor│ipsumcupidatatvoluptateullamcolaboresit.││• Suntessealiquipaliquaconsectetur.│• Consequatminimelitmollitpariaturautequis.│• Eiusmodloremoccaecatreprehenderit.││─ ts│constx4=58│functionf3(){│returnx│}││Exercitationincididuntdolorproidentvelitlaborismagnaametculpacillum.Loremoccaecatreprehenderit┃exercitationincididuntdolorproidentvelitlaborismagnaamet.─ ready │ fake model │ 3s │ voice off ─ …es-agent (…i-memory-window)❯│┃Excepteur irure nostrud tempor ipsum cupidatat voluptate ullamco labore sit.│Amet culpa cillum commodo enim adipiscing deserunt nulla duis veniam sed.│Quis eiusmod lorem occaecat reprehenderit exercitation incididunt dolor proident velit laboris magna.│Esse aliquip aliqua consectetur officia fugiat consequat minim elit mollit pariatur aute quis.│Anim excepteur irure nostrud tempor ipsum cupidatat voluptate ullamco labore sit sunt esse aliquip.│Magna amet culpa cillum.│Aute quis eiusmod lorem occaecat.│ └─ ● Terminal(\"Proident velit laboris magna.\") (0.3s)│ └─ Args:│Proident velit laboris magna amet culpa cillum commodo enim adipiscing deserunt nulla.│Elit mollit pariatur aute quis eiusmod lorem occaecat reprehenderit exercitation incididunt dolor proident.│Ullamco labore sit sunt esse aliquip aliqua consectetur officia fugiat consequat minim elit mollit.│Nulla duis veniam sed.│Dolor proident velit laboris magna.│Result:│Pariatur aute quis eiusmod lorem occaecat reprehenderit exercitation incididunt dolor proident velit laboris.│Sit sunt esse aliquip aliqua consectetur officia fugiat consequat minim elit mollit pariatur aute.││┊ Minimelitmollitpariaturautequiseiusmodloremoccaecatreprehenderitexercitationincididuntdolor.Officia│fugiatconsequatminimelitmollitpariaturautequiseiusmodloremoccaecatreprehenderitexercitation.│┊ Temporipsumcupidatatvoluptateullamcolaboresitsuntessealiquipaliqua.Excepteurirurenostrudtempor│ipsumcupidatatvoluptateullamcolaboresitsuntesse.Veniamsedanimexcepteurirurenostrudtempor│ipsumcupidatatvoluptateullamcolaboresit.││• Suntessealiquipaliquaconsectetur.│• Consequatminimelitmollitpariaturautequis.│• Eiusmodloremoccaecatreprehenderit.││─ ts│constx4=58│functionf3(){│returnx│}││Exercitationincididuntdolorproidentvelitlaborismagnaametculpacillum.Loremoccaecatreprehenderit│exercitationincididuntdolorproidentvelitlaborismagnaamet.┃─ ready │ fake model │ 3s │ voice off ─ …es-agent (…i-memory-window)❯4"
}

View file

@ -0,0 +1,225 @@
{
"meta": {
"cell": "gate",
"ui": "opentui",
"config": "otui-capped",
"mode": "digest",
"rep": 0,
"run_id": "mq98ydm4-phq0",
"utc": "2026-06-11T08:39:47.308Z",
"sha": "ff3c07349",
"node": "/home/daimon/.local/share/fnm/node-versions/v26.3.0/installation/bin/node",
"node_version": "v26.3.0",
"pty": {
"cols": 120,
"rows": 40,
"term": "xterm-256color"
},
"heap_mb": 8192,
"memory_max": null,
"container_cap": false,
"container_memory": null,
"opentui_cap": 3000,
"fixture": {
"path": "/home/daimon/github/worktrees/hermes-agent/lively-thrush/hermes-agent/bench/.cache/fixture-300.ndjson",
"msgs": 300,
"sha256": "ac81e975c299da7d50cfda7fc0fee33c356bd31a4e17a7f0f8e49905e205051a"
},
"sample_every": 100,
"mode_params": {},
"ui_pid": 3150762,
"gw_pid": 3150778,
"cgroup": null,
"load_avg_at_start": [
0.37,
0.3,
0.23
],
"instrumented": false
},
"samples": [
{
"kind": "periodic",
"t_ms": 27,
"msgs": null,
"events": null,
"pty_bytes": 0,
"pty_writes": 0,
"rss_kb": 52304,
"pss_kb": 26357,
"private_dirty_kb": 15284,
"vmhwm_kb": 52452,
"utime_ticks": 2,
"stime_ticks": 0
},
{
"kind": "periodic",
"t_ms": 1033,
"msgs": null,
"events": null,
"pty_bytes": 28911,
"pty_writes": 10,
"rss_kb": 103368,
"pss_kb": 64025,
"private_dirty_kb": 48064,
"vmhwm_kb": 106424,
"utime_ticks": 20,
"stime_ticks": 2
},
{
"kind": "boundary",
"t_ms": 1386,
"msgs": 100,
"events": 355,
"pty_bytes": 31413,
"pty_writes": 12,
"rss_kb": 109540,
"pss_kb": 70161,
"private_dirty_kb": 54236,
"vmhwm_kb": 109552,
"utime_ticks": 22,
"stime_ticks": 2
},
{
"kind": "boundary",
"t_ms": 1387,
"msgs": 200,
"events": 738,
"pty_bytes": 31413,
"pty_writes": 12,
"rss_kb": 109572,
"pss_kb": 70193,
"private_dirty_kb": 54268,
"vmhwm_kb": 109708,
"utime_ticks": 22,
"stime_ticks": 2
},
{
"kind": "boundary",
"t_ms": 1410,
"msgs": 300,
"events": 1051,
"pty_bytes": 31413,
"pty_writes": 12,
"rss_kb": 112624,
"pss_kb": 73005,
"private_dirty_kb": 56936,
"vmhwm_kb": 112640,
"utime_ticks": 28,
"stime_ticks": 2
},
{
"kind": "done",
"t_ms": 1411,
"msgs": 300,
"events": 1051,
"pty_bytes": 31413,
"pty_writes": 12,
"rss_kb": 112648,
"pss_kb": 73029,
"private_dirty_kb": 56960,
"vmhwm_kb": 112668,
"utime_ticks": 28,
"stime_ticks": 2
},
{
"kind": "periodic",
"t_ms": 2039,
"msgs": 300,
"events": null,
"pty_bytes": 35562,
"pty_writes": 15,
"rss_kb": 191476,
"pss_kb": 149973,
"private_dirty_kb": 132460,
"vmhwm_kb": 211276,
"utime_ticks": 75,
"stime_ticks": 7
},
{
"kind": "final",
"t_ms": 2873,
"msgs": 300,
"events": 1051,
"pty_bytes": 35634,
"pty_writes": 16,
"rss_kb": 191484,
"pss_kb": 149981,
"private_dirty_kb": 132468,
"vmhwm_kb": 211276,
"utime_ticks": 76,
"stime_ticks": 7
},
{
"kind": "periodic",
"t_ms": 3046,
"msgs": 300,
"events": null,
"pty_bytes": 46545,
"pty_writes": 20,
"rss_kb": 193696,
"pss_kb": 152193,
"private_dirty_kb": 134680,
"vmhwm_kb": 211276,
"utime_ticks": 79,
"stime_ticks": 7
},
{
"kind": "periodic",
"t_ms": 4049,
"msgs": 300,
"events": null,
"pty_bytes": 57867,
"pty_writes": 25,
"rss_kb": 193724,
"pss_kb": 152221,
"private_dirty_kb": 134708,
"vmhwm_kb": 211276,
"utime_ticks": 80,
"stime_ticks": 7
}
],
"events": [
{
"kind": "rpc",
"method": "session.create",
"t_ms": 177
},
{
"kind": "rpc",
"method": "startup.catalog",
"t_ms": 177
},
{
"kind": "rpc",
"method": "model.options",
"t_ms": 177
}
],
"summary": {
"result": "completed",
"cap_hit": false,
"cap_hit_basis": null,
"at_messages": null,
"exit": {
"exitCode": 0,
"signal": 0,
"t": 4684
},
"stream_done": true,
"msgs_streamed": 300,
"events_streamed": 1051,
"pty_bytes_total": 62678,
"pty_data_callbacks": 30,
"first_byte_ms": 140,
"session_create_ms": 177,
"stream_start_ms": 1385,
"vmhwm_kb": 211276,
"cg_peak": null,
"drain_max_loop_lag_ms": 4,
"drain_lag_violations": 0,
"drain_ok": true,
"digest": "d5e9558583159eac9e72e450848f98505ac9f48804d4f8c80a18baaab0f0f28c"
},
"digest_text": "⚕ Hermes Agent · opentui · ready ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── $ terminal Culpa cillum commodo enim. · 3.7s (2 lines) ◇ read_file Duis veniam sed anim. · 3.8s (18 lines) ◦ edit_file Tempor ipsum cupidatat voluptate. · 3.9s (7 lines) ◦ grep Sunt esse aliquip aliqua. · 4.0s (2 lines) ● web_search Consequat minim elit mollit. · 0.1s (18 lines) ◆ write_file Eiusmod lorem occaecat reprehenderit. · 0.2s (7 lines) $ terminal Proident velit laboris magna. · 0.3s (2 lines) Minim elit mollit pariatur aute quis eiusmod lorem occaecat reprehenderit exercitation incididunt dolor. Officia fugiat consequat minim elit mollit pariatur aute quis eiusmod lorem occaecat reprehenderit exercitation. ⧉ copy ⚕ Tempor ipsum cupidatat voluptate ullamco labore sit sunt esse aliquip aliqua. Excepteur irure nostrud tempor ipsum cupidatat voluptate ullamco labore sit sunt esse. Veniam sed anim excepteur irure nostrud tempor ipsum cupidatat voluptate ullamco labore sit. - Sunt esse aliquip aliqua consectetur. - Consequat minim elit mollit pariatur aute quis. - Eiusmod lorem occaecat reprehenderit. const x4 = 58 function f3() { return x } Exercitation incididunt dolor proident velit laboris magna amet culpa cillum. Lorem occaecat reprehenderit exercitation incididunt dolor proident velit laboris magna amet. ⧉ copy ▄ ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ● fake-model │ up: Ns │ …/lively-thrush/hermes-agent ❯ Type your message"
}

View file

@ -0,0 +1,225 @@
{
"meta": {
"cell": "gate",
"ui": "opentui",
"config": "otui-capped",
"mode": "digest",
"rep": 1,
"run_id": "mq98yoyb-530t",
"utc": "2026-06-11T08:40:02.003Z",
"sha": "ff3c07349",
"node": "/home/daimon/.local/share/fnm/node-versions/v26.3.0/installation/bin/node",
"node_version": "v26.3.0",
"pty": {
"cols": 120,
"rows": 40,
"term": "xterm-256color"
},
"heap_mb": 8192,
"memory_max": null,
"container_cap": false,
"container_memory": null,
"opentui_cap": 3000,
"fixture": {
"path": "/home/daimon/github/worktrees/hermes-agent/lively-thrush/hermes-agent/bench/.cache/fixture-300.ndjson",
"msgs": 300,
"sha256": "ac81e975c299da7d50cfda7fc0fee33c356bd31a4e17a7f0f8e49905e205051a"
},
"sample_every": 100,
"mode_params": {},
"ui_pid": 3151052,
"gw_pid": 3151061,
"cgroup": null,
"load_avg_at_start": [
0.37,
0.3,
0.23
],
"instrumented": false
},
"samples": [
{
"kind": "periodic",
"t_ms": 26,
"msgs": null,
"events": null,
"pty_bytes": 0,
"pty_writes": 0,
"rss_kb": 52912,
"pss_kb": 26986,
"private_dirty_kb": 15912,
"vmhwm_kb": 53112,
"utime_ticks": 1,
"stime_ticks": 1
},
{
"kind": "periodic",
"t_ms": 1037,
"msgs": null,
"events": null,
"pty_bytes": 28911,
"pty_writes": 14,
"rss_kb": 103656,
"pss_kb": 64272,
"private_dirty_kb": 48308,
"vmhwm_kb": 106572,
"utime_ticks": 17,
"stime_ticks": 3
},
{
"kind": "boundary",
"t_ms": 1394,
"msgs": 100,
"events": 355,
"pty_bytes": 31413,
"pty_writes": 16,
"rss_kb": 111576,
"pss_kb": 72092,
"private_dirty_kb": 56100,
"vmhwm_kb": 111644,
"utime_ticks": 23,
"stime_ticks": 3
},
{
"kind": "boundary",
"t_ms": 1396,
"msgs": 200,
"events": 738,
"pty_bytes": 31413,
"pty_writes": 16,
"rss_kb": 111736,
"pss_kb": 72161,
"private_dirty_kb": 56132,
"vmhwm_kb": 111744,
"utime_ticks": 23,
"stime_ticks": 3
},
{
"kind": "boundary",
"t_ms": 1396,
"msgs": 300,
"events": 1051,
"pty_bytes": 31413,
"pty_writes": 16,
"rss_kb": 111760,
"pss_kb": 72185,
"private_dirty_kb": 56156,
"vmhwm_kb": 111772,
"utime_ticks": 23,
"stime_ticks": 3
},
{
"kind": "done",
"t_ms": 1397,
"msgs": 300,
"events": 1051,
"pty_bytes": 31413,
"pty_writes": 16,
"rss_kb": 111776,
"pss_kb": 72201,
"private_dirty_kb": 56172,
"vmhwm_kb": 111776,
"utime_ticks": 24,
"stime_ticks": 3
},
{
"kind": "periodic",
"t_ms": 2049,
"msgs": 300,
"events": null,
"pty_bytes": 35562,
"pty_writes": 19,
"rss_kb": 184720,
"pss_kb": 143176,
"private_dirty_kb": 125660,
"vmhwm_kb": 230748,
"utime_ticks": 74,
"stime_ticks": 8
},
{
"kind": "final",
"t_ms": 2866,
"msgs": 300,
"events": 1051,
"pty_bytes": 35634,
"pty_writes": 20,
"rss_kb": 184728,
"pss_kb": 143184,
"private_dirty_kb": 125668,
"vmhwm_kb": 230748,
"utime_ticks": 75,
"stime_ticks": 8
},
{
"kind": "periodic",
"t_ms": 3060,
"msgs": 300,
"events": null,
"pty_bytes": 46545,
"pty_writes": 24,
"rss_kb": 186652,
"pss_kb": 145108,
"private_dirty_kb": 127592,
"vmhwm_kb": 230748,
"utime_ticks": 78,
"stime_ticks": 8
},
{
"kind": "periodic",
"t_ms": 4077,
"msgs": 300,
"events": null,
"pty_bytes": 57867,
"pty_writes": 29,
"rss_kb": 186668,
"pss_kb": 145124,
"private_dirty_kb": 127608,
"vmhwm_kb": 230748,
"utime_ticks": 79,
"stime_ticks": 8
}
],
"events": [
{
"kind": "rpc",
"method": "session.create",
"t_ms": 176
},
{
"kind": "rpc",
"method": "startup.catalog",
"t_ms": 176
},
{
"kind": "rpc",
"method": "model.options",
"t_ms": 176
}
],
"summary": {
"result": "completed",
"cap_hit": false,
"cap_hit_basis": null,
"at_messages": null,
"exit": {
"exitCode": 0,
"signal": 0,
"t": 4666
},
"stream_done": true,
"msgs_streamed": 300,
"events_streamed": 1051,
"pty_bytes_total": 62678,
"pty_data_callbacks": 34,
"first_byte_ms": 131,
"session_create_ms": 176,
"stream_start_ms": 1367,
"vmhwm_kb": 230748,
"cg_peak": null,
"drain_max_loop_lag_ms": 5,
"drain_lag_violations": 0,
"drain_ok": true,
"digest": "d5e9558583159eac9e72e450848f98505ac9f48804d4f8c80a18baaab0f0f28c"
},
"digest_text": "⚕ Hermes Agent · opentui · ready ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── $ terminal Culpa cillum commodo enim. · 3.7s (2 lines) ◇ read_file Duis veniam sed anim. · 3.8s (18 lines) ◦ edit_file Tempor ipsum cupidatat voluptate. · 3.9s (7 lines) ◦ grep Sunt esse aliquip aliqua. · 4.0s (2 lines) ● web_search Consequat minim elit mollit. · 0.1s (18 lines) ◆ write_file Eiusmod lorem occaecat reprehenderit. · 0.2s (7 lines) $ terminal Proident velit laboris magna. · 0.3s (2 lines) Minim elit mollit pariatur aute quis eiusmod lorem occaecat reprehenderit exercitation incididunt dolor. Officia fugiat consequat minim elit mollit pariatur aute quis eiusmod lorem occaecat reprehenderit exercitation. ⧉ copy ⚕ Tempor ipsum cupidatat voluptate ullamco labore sit sunt esse aliquip aliqua. Excepteur irure nostrud tempor ipsum cupidatat voluptate ullamco labore sit sunt esse. Veniam sed anim excepteur irure nostrud tempor ipsum cupidatat voluptate ullamco labore sit. - Sunt esse aliquip aliqua consectetur. - Consequat minim elit mollit pariatur aute quis. - Eiusmod lorem occaecat reprehenderit. const x4 = 58 function f3() { return x } Exercitation incididunt dolor proident velit laboris magna amet culpa cillum. Lorem occaecat reprehenderit exercitation incididunt dolor proident velit laboris magna amet. ⧉ copy ▄ ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ● fake-model │ up: Ns │ …/lively-thrush/hermes-agent ❯ Type your message"
}

View file

@ -0,0 +1,713 @@
{
"meta": {
"cell": "mem3000",
"ui": "opentui",
"config": "otui-capped",
"mode": "mem",
"rep": 0,
"run_id": "mq98zc3r-zyzv",
"utc": "2026-06-11T08:40:32.007Z",
"sha": "ff3c07349",
"node": "/home/daimon/.local/share/fnm/node-versions/v26.3.0/installation/bin/node",
"node_version": "v26.3.0",
"pty": {
"cols": 120,
"rows": 40,
"term": "xterm-256color"
},
"heap_mb": 8192,
"memory_max": "2G",
"container_cap": false,
"container_memory": null,
"opentui_cap": 3000,
"fixture": {
"path": "/home/daimon/github/worktrees/hermes-agent/lively-thrush/hermes-agent/bench/.cache/fixture-3000.ndjson",
"msgs": 3000,
"sha256": "0df05a04a611dda68aa07865f21c45b08edc78e0a71d4c8cb2b674729778d96d"
},
"sample_every": 100,
"mode_params": {},
"ui_pid": 3152016,
"gw_pid": 3152025,
"cgroup": "/sys/fs/cgroup/user.slice/user-1001.slice/session-7421.scope",
"load_avg_at_start": [
0.29,
0.29,
0.23
],
"instrumented": false
},
"samples": [
{
"kind": "periodic",
"t_ms": 27,
"msgs": null,
"events": null,
"pty_bytes": 0,
"pty_writes": 0,
"rss_kb": 26564,
"pss_kb": 8115,
"private_dirty_kb": 3108,
"vmhwm_kb": 26564,
"utime_ticks": 0,
"stime_ticks": 0,
"cg_current": 3858522112,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "periodic",
"t_ms": 1032,
"msgs": null,
"events": null,
"pty_bytes": 28911,
"pty_writes": 12,
"rss_kb": 103996,
"pss_kb": 60580,
"private_dirty_kb": 48624,
"vmhwm_kb": 106420,
"utime_ticks": 18,
"stime_ticks": 2,
"cg_current": 3857620992,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 1716,
"msgs": 100,
"events": 355,
"pty_bytes": 31413,
"pty_writes": 14,
"rss_kb": 116240,
"pss_kb": 72718,
"private_dirty_kb": 60740,
"vmhwm_kb": 116252,
"utime_ticks": 22,
"stime_ticks": 2,
"cg_current": 3857391616,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 1717,
"msgs": 200,
"events": 738,
"pty_bytes": 31413,
"pty_writes": 14,
"rss_kb": 116496,
"pss_kb": 72974,
"private_dirty_kb": 60996,
"vmhwm_kb": 116576,
"utime_ticks": 22,
"stime_ticks": 2,
"cg_current": 3857391616,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 1718,
"msgs": 300,
"events": 1051,
"pty_bytes": 31413,
"pty_writes": 14,
"rss_kb": 116776,
"pss_kb": 73254,
"private_dirty_kb": 61276,
"vmhwm_kb": 116788,
"utime_ticks": 22,
"stime_ticks": 2,
"cg_current": 3857391616,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 1719,
"msgs": 400,
"events": 1432,
"pty_bytes": 31413,
"pty_writes": 14,
"rss_kb": 117064,
"pss_kb": 73542,
"private_dirty_kb": 61564,
"vmhwm_kb": 117072,
"utime_ticks": 23,
"stime_ticks": 2,
"cg_current": 3857391616,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 1720,
"msgs": 501,
"events": 1792,
"pty_bytes": 31413,
"pty_writes": 14,
"rss_kb": 117328,
"pss_kb": 73806,
"private_dirty_kb": 61828,
"vmhwm_kb": 117336,
"utime_ticks": 23,
"stime_ticks": 2,
"cg_current": 3857391616,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 1891,
"msgs": 601,
"events": 2154,
"pty_bytes": 31861,
"pty_writes": 15,
"rss_kb": 179312,
"pss_kb": 133407,
"private_dirty_kb": 120672,
"vmhwm_kb": 179364,
"utime_ticks": 49,
"stime_ticks": 6,
"cg_current": 3857403904,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 1968,
"msgs": 701,
"events": 2496,
"pty_bytes": 34137,
"pty_writes": 16,
"rss_kb": 192540,
"pss_kb": 146635,
"private_dirty_kb": 133900,
"vmhwm_kb": 192540,
"utime_ticks": 64,
"stime_ticks": 6,
"cg_current": 3857403904,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "periodic",
"t_ms": 2046,
"msgs": null,
"events": null,
"pty_bytes": 36241,
"pty_writes": 17,
"rss_kb": 195236,
"pss_kb": 149189,
"private_dirty_kb": 136408,
"vmhwm_kb": 195776,
"utime_ticks": 75,
"stime_ticks": 7,
"cg_current": 3857403904,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2071,
"msgs": 801,
"events": 2857,
"pty_bytes": 38736,
"pty_writes": 18,
"rss_kb": 203660,
"pss_kb": 157549,
"private_dirty_kb": 144704,
"vmhwm_kb": 203808,
"utime_ticks": 80,
"stime_ticks": 8,
"cg_current": 3857403904,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2147,
"msgs": 901,
"events": 3245,
"pty_bytes": 41154,
"pty_writes": 19,
"rss_kb": 213148,
"pss_kb": 167034,
"private_dirty_kb": 154192,
"vmhwm_kb": 213708,
"utime_ticks": 99,
"stime_ticks": 9,
"cg_current": 3857403904,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2271,
"msgs": 1001,
"events": 3588,
"pty_bytes": 44847,
"pty_writes": 22,
"rss_kb": 252608,
"pss_kb": 206376,
"private_dirty_kb": 193524,
"vmhwm_kb": 279204,
"utime_ticks": 129,
"stime_ticks": 13,
"cg_current": 3857330176,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2273,
"msgs": 1101,
"events": 3928,
"pty_bytes": 44847,
"pty_writes": 22,
"rss_kb": 252616,
"pss_kb": 206384,
"private_dirty_kb": 193532,
"vmhwm_kb": 279204,
"utime_ticks": 129,
"stime_ticks": 13,
"cg_current": 3857330176,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2273,
"msgs": 1201,
"events": 4298,
"pty_bytes": 44847,
"pty_writes": 22,
"rss_kb": 252616,
"pss_kb": 206384,
"private_dirty_kb": 193532,
"vmhwm_kb": 279204,
"utime_ticks": 129,
"stime_ticks": 13,
"cg_current": 3857330176,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2274,
"msgs": 1300,
"events": 4659,
"pty_bytes": 44847,
"pty_writes": 22,
"rss_kb": 252752,
"pss_kb": 206520,
"private_dirty_kb": 193668,
"vmhwm_kb": 279204,
"utime_ticks": 130,
"stime_ticks": 13,
"cg_current": 3857330176,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2275,
"msgs": 1400,
"events": 5011,
"pty_bytes": 44847,
"pty_writes": 22,
"rss_kb": 252756,
"pss_kb": 206524,
"private_dirty_kb": 193672,
"vmhwm_kb": 279204,
"utime_ticks": 130,
"stime_ticks": 13,
"cg_current": 3857330176,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2276,
"msgs": 1500,
"events": 5384,
"pty_bytes": 44847,
"pty_writes": 22,
"rss_kb": 252756,
"pss_kb": 206524,
"private_dirty_kb": 193672,
"vmhwm_kb": 279204,
"utime_ticks": 130,
"stime_ticks": 13,
"cg_current": 3857592320,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2296,
"msgs": 1600,
"events": 5730,
"pty_bytes": 44847,
"pty_writes": 22,
"rss_kb": 255388,
"pss_kb": 209156,
"private_dirty_kb": 196304,
"vmhwm_kb": 279204,
"utime_ticks": 134,
"stime_ticks": 13,
"cg_current": 3857334272,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2298,
"msgs": 1700,
"events": 6100,
"pty_bytes": 44847,
"pty_writes": 22,
"rss_kb": 255416,
"pss_kb": 209184,
"private_dirty_kb": 196332,
"vmhwm_kb": 279204,
"utime_ticks": 134,
"stime_ticks": 13,
"cg_current": 3857334272,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2398,
"msgs": 1800,
"events": 6455,
"pty_bytes": 47958,
"pty_writes": 23,
"rss_kb": 274668,
"pss_kb": 228436,
"private_dirty_kb": 215584,
"vmhwm_kb": 279204,
"utime_ticks": 146,
"stime_ticks": 14,
"cg_current": 3857330176,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2498,
"msgs": 1900,
"events": 6838,
"pty_bytes": 51983,
"pty_writes": 25,
"rss_kb": 286992,
"pss_kb": 240760,
"private_dirty_kb": 227908,
"vmhwm_kb": 287036,
"utime_ticks": 159,
"stime_ticks": 15,
"cg_current": 3857330176,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2547,
"msgs": 2000,
"events": 7151,
"pty_bytes": 51983,
"pty_writes": 25,
"rss_kb": 295144,
"pss_kb": 248912,
"private_dirty_kb": 236060,
"vmhwm_kb": 295144,
"utime_ticks": 165,
"stime_ticks": 16,
"cg_current": 3857342464,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2647,
"msgs": 2100,
"events": 7532,
"pty_bytes": 58032,
"pty_writes": 28,
"rss_kb": 307660,
"pss_kb": 261428,
"private_dirty_kb": 248576,
"vmhwm_kb": 307668,
"utime_ticks": 176,
"stime_ticks": 17,
"cg_current": 3857600512,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2697,
"msgs": 2201,
"events": 7892,
"pty_bytes": 58032,
"pty_writes": 28,
"rss_kb": 313964,
"pss_kb": 267732,
"private_dirty_kb": 254880,
"vmhwm_kb": 315344,
"utime_ticks": 183,
"stime_ticks": 18,
"cg_current": 3857338368,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2822,
"msgs": 2301,
"events": 8254,
"pty_bytes": 63506,
"pty_writes": 31,
"rss_kb": 337012,
"pss_kb": 290780,
"private_dirty_kb": 277928,
"vmhwm_kb": 337012,
"utime_ticks": 199,
"stime_ticks": 20,
"cg_current": 3857334272,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2824,
"msgs": 2401,
"events": 8596,
"pty_bytes": 63506,
"pty_writes": 31,
"rss_kb": 337012,
"pss_kb": 290780,
"private_dirty_kb": 277928,
"vmhwm_kb": 337016,
"utime_ticks": 199,
"stime_ticks": 20,
"cg_current": 3857334272,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2826,
"msgs": 2501,
"events": 8957,
"pty_bytes": 63506,
"pty_writes": 31,
"rss_kb": 337016,
"pss_kb": 290784,
"private_dirty_kb": 277932,
"vmhwm_kb": 337020,
"utime_ticks": 200,
"stime_ticks": 20,
"cg_current": 3857334272,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2828,
"msgs": 2601,
"events": 9345,
"pty_bytes": 63506,
"pty_writes": 31,
"rss_kb": 337020,
"pss_kb": 290788,
"private_dirty_kb": 277936,
"vmhwm_kb": 337020,
"utime_ticks": 200,
"stime_ticks": 20,
"cg_current": 3857338368,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2830,
"msgs": 2701,
"events": 9688,
"pty_bytes": 63506,
"pty_writes": 31,
"rss_kb": 337032,
"pss_kb": 290800,
"private_dirty_kb": 277948,
"vmhwm_kb": 337036,
"utime_ticks": 200,
"stime_ticks": 20,
"cg_current": 3857338368,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2832,
"msgs": 2801,
"events": 10028,
"pty_bytes": 63506,
"pty_writes": 31,
"rss_kb": 337576,
"pss_kb": 291344,
"private_dirty_kb": 278492,
"vmhwm_kb": 337936,
"utime_ticks": 201,
"stime_ticks": 20,
"cg_current": 3857338368,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2897,
"msgs": 2901,
"events": 10398,
"pty_bytes": 63506,
"pty_writes": 31,
"rss_kb": 350260,
"pss_kb": 303655,
"private_dirty_kb": 291176,
"vmhwm_kb": 350260,
"utime_ticks": 211,
"stime_ticks": 21,
"cg_current": 3857600512,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 3024,
"msgs": 3000,
"events": 10759,
"pty_bytes": 70223,
"pty_writes": 33,
"rss_kb": 365668,
"pss_kb": 319063,
"private_dirty_kb": 306584,
"vmhwm_kb": 367184,
"utime_ticks": 239,
"stime_ticks": 22,
"cg_current": 3857965056,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "done",
"t_ms": 3027,
"msgs": 3000,
"events": 10759,
"pty_bytes": 70223,
"pty_writes": 33,
"rss_kb": 365668,
"pss_kb": 319063,
"private_dirty_kb": 306584,
"vmhwm_kb": 367184,
"utime_ticks": 239,
"stime_ticks": 22,
"cg_current": 3857707008,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "periodic",
"t_ms": 3047,
"msgs": 3000,
"events": null,
"pty_bytes": 73151,
"pty_writes": 34,
"rss_kb": 366472,
"pss_kb": 319867,
"private_dirty_kb": 307388,
"vmhwm_kb": 367184,
"utime_ticks": 242,
"stime_ticks": 22,
"cg_current": 3857707008,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "periodic",
"t_ms": 4053,
"msgs": 3000,
"events": null,
"pty_bytes": 78854,
"pty_writes": 40,
"rss_kb": 368364,
"pss_kb": 321759,
"private_dirty_kb": 309280,
"vmhwm_kb": 368364,
"utime_ticks": 260,
"stime_ticks": 23,
"cg_current": 3857727488,
"cg_peak": 5257056256,
"cg_oom_kill": 0
},
{
"kind": "final",
"t_ms": 4071,
"msgs": 3000,
"events": 10759,
"pty_bytes": 78854,
"pty_writes": 40,
"rss_kb": 368364,
"pss_kb": 321759,
"private_dirty_kb": 309280,
"vmhwm_kb": 368364,
"utime_ticks": 260,
"stime_ticks": 23,
"cg_current": 3857731584,
"cg_peak": 5257056256,
"cg_oom_kill": 0
}
],
"events": [
{
"kind": "rpc",
"method": "session.create",
"t_ms": 201
},
{
"kind": "rpc",
"method": "startup.catalog",
"t_ms": 201
},
{
"kind": "rpc",
"method": "model.options",
"t_ms": 201
}
],
"summary": {
"result": "completed",
"cap_hit": false,
"cap_hit_basis": null,
"at_messages": null,
"exit": {
"exitCode": 0,
"signal": 0,
"t": 4288
},
"stream_done": true,
"msgs_streamed": 3000,
"events_streamed": 10759,
"pty_bytes_total": 83062,
"pty_data_callbacks": 43,
"first_byte_ms": 150,
"session_create_ms": 201,
"stream_start_ms": 1714,
"vmhwm_kb": 368364,
"cg_peak": 5257056256,
"drain_max_loop_lag_ms": 13,
"drain_lag_violations": 1,
"drain_ok": false,
"digest": null
}
}

View file

@ -0,0 +1,730 @@
{
"meta": {
"cell": "mem3000",
"ui": "opentui",
"config": "otui-uncapped",
"mode": "mem",
"rep": 0,
"run_id": "mq98z0ax-elvu",
"utc": "2026-06-11T08:40:16.713Z",
"sha": "ff3c07349",
"node": "/home/daimon/.local/share/fnm/node-versions/v26.3.0/installation/bin/node",
"node_version": "v26.3.0",
"pty": {
"cols": 120,
"rows": 40,
"term": "xterm-256color"
},
"heap_mb": 8192,
"memory_max": "2G",
"container_cap": false,
"container_memory": null,
"opentui_cap": 100000,
"fixture": {
"path": "/home/daimon/github/worktrees/hermes-agent/lively-thrush/hermes-agent/bench/.cache/fixture-3000.ndjson",
"msgs": 3000,
"sha256": "0df05a04a611dda68aa07865f21c45b08edc78e0a71d4c8cb2b674729778d96d"
},
"sample_every": 100,
"mode_params": {},
"ui_pid": 3151692,
"gw_pid": 3151701,
"cgroup": "/sys/fs/cgroup/user.slice/user-1001.slice/user@1001.service/app.slice/hermes-bench-mq98z0ax-elvu.scope",
"load_avg_at_start": [
0.37,
0.31,
0.24
],
"instrumented": false
},
"samples": [
{
"kind": "periodic",
"t_ms": 55,
"msgs": null,
"events": null,
"pty_bytes": 0,
"pty_writes": 0,
"rss_kb": 57008,
"pss_kb": 28254,
"private_dirty_kb": 20008,
"vmhwm_kb": 57036,
"utime_ticks": 3,
"stime_ticks": 1,
"cg_current": 22167552,
"cg_peak": 22167552,
"cg_oom_kill": 0
},
{
"kind": "periodic",
"t_ms": 1065,
"msgs": null,
"events": null,
"pty_bytes": 28911,
"pty_writes": 12,
"rss_kb": 103972,
"pss_kb": 60600,
"private_dirty_kb": 48624,
"vmhwm_kb": 106568,
"utime_ticks": 20,
"stime_ticks": 2,
"cg_current": 62431232,
"cg_peak": 66519040,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 1723,
"msgs": 100,
"events": 355,
"pty_bytes": 31413,
"pty_writes": 14,
"rss_kb": 112700,
"pss_kb": 69215,
"private_dirty_kb": 57224,
"vmhwm_kb": 112756,
"utime_ticks": 24,
"stime_ticks": 2,
"cg_current": 81334272,
"cg_peak": 81584128,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 1724,
"msgs": 200,
"events": 738,
"pty_bytes": 31413,
"pty_writes": 14,
"rss_kb": 112864,
"pss_kb": 69379,
"private_dirty_kb": 57388,
"vmhwm_kb": 113028,
"utime_ticks": 24,
"stime_ticks": 2,
"cg_current": 81428480,
"cg_peak": 81584128,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 1725,
"msgs": 300,
"events": 1051,
"pty_bytes": 31413,
"pty_writes": 14,
"rss_kb": 113188,
"pss_kb": 69703,
"private_dirty_kb": 57712,
"vmhwm_kb": 113296,
"utime_ticks": 24,
"stime_ticks": 2,
"cg_current": 81690624,
"cg_peak": 81690624,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 1850,
"msgs": 400,
"events": 1432,
"pty_bytes": 31413,
"pty_writes": 14,
"rss_kb": 161212,
"pss_kb": 115345,
"private_dirty_kb": 102596,
"vmhwm_kb": 161252,
"utime_ticks": 44,
"stime_ticks": 4,
"cg_current": 129277952,
"cg_peak": 129277952,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 1874,
"msgs": 501,
"events": 1792,
"pty_bytes": 31737,
"pty_writes": 15,
"rss_kb": 168452,
"pss_kb": 122585,
"private_dirty_kb": 109836,
"vmhwm_kb": 168456,
"utime_ticks": 47,
"stime_ticks": 5,
"cg_current": 136728576,
"cg_peak": 136884224,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2001,
"msgs": 601,
"events": 2154,
"pty_bytes": 37749,
"pty_writes": 17,
"rss_kb": 198880,
"pss_kb": 152797,
"private_dirty_kb": 139948,
"vmhwm_kb": 198924,
"utime_ticks": 73,
"stime_ticks": 6,
"cg_current": 169230336,
"cg_peak": 169230336,
"cg_oom_kill": 0
},
{
"kind": "periodic",
"t_ms": 2077,
"msgs": null,
"events": null,
"pty_bytes": 39162,
"pty_writes": 18,
"rss_kb": 206696,
"pss_kb": 160554,
"private_dirty_kb": 147700,
"vmhwm_kb": 206732,
"utime_ticks": 92,
"stime_ticks": 7,
"cg_current": 177143808,
"cg_peak": 177143808,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2104,
"msgs": 701,
"events": 2496,
"pty_bytes": 40859,
"pty_writes": 19,
"rss_kb": 251448,
"pss_kb": 205247,
"private_dirty_kb": 192388,
"vmhwm_kb": 251536,
"utime_ticks": 101,
"stime_ticks": 8,
"cg_current": 223625216,
"cg_peak": 224284672,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2203,
"msgs": 801,
"events": 2857,
"pty_bytes": 45545,
"pty_writes": 21,
"rss_kb": 224432,
"pss_kb": 178231,
"private_dirty_kb": 165372,
"vmhwm_kb": 264016,
"utime_ticks": 121,
"stime_ticks": 10,
"cg_current": 196042752,
"cg_peak": 237232128,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2305,
"msgs": 901,
"events": 3245,
"pty_bytes": 48034,
"pty_writes": 23,
"rss_kb": 239532,
"pss_kb": 193328,
"private_dirty_kb": 180472,
"vmhwm_kb": 264016,
"utime_ticks": 133,
"stime_ticks": 11,
"cg_current": 212185088,
"cg_peak": 237232128,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2380,
"msgs": 1001,
"events": 3588,
"pty_bytes": 50590,
"pty_writes": 25,
"rss_kb": 250520,
"pss_kb": 204316,
"private_dirty_kb": 191460,
"vmhwm_kb": 264016,
"utime_ticks": 143,
"stime_ticks": 13,
"cg_current": 223809536,
"cg_peak": 237232128,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2455,
"msgs": 1101,
"events": 3928,
"pty_bytes": 52112,
"pty_writes": 26,
"rss_kb": 258860,
"pss_kb": 212656,
"private_dirty_kb": 199800,
"vmhwm_kb": 264016,
"utime_ticks": 152,
"stime_ticks": 13,
"cg_current": 232026112,
"cg_peak": 237232128,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2483,
"msgs": 1201,
"events": 4298,
"pty_bytes": 53311,
"pty_writes": 27,
"rss_kb": 264140,
"pss_kb": 217936,
"private_dirty_kb": 205080,
"vmhwm_kb": 264284,
"utime_ticks": 157,
"stime_ticks": 14,
"cg_current": 238120960,
"cg_peak": 238120960,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2485,
"msgs": 1300,
"events": 4659,
"pty_bytes": 53311,
"pty_writes": 27,
"rss_kb": 264348,
"pss_kb": 218144,
"private_dirty_kb": 205288,
"vmhwm_kb": 264384,
"utime_ticks": 157,
"stime_ticks": 14,
"cg_current": 238120960,
"cg_peak": 238120960,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2486,
"msgs": 1400,
"events": 5011,
"pty_bytes": 53311,
"pty_writes": 27,
"rss_kb": 264436,
"pss_kb": 218232,
"private_dirty_kb": 205376,
"vmhwm_kb": 264452,
"utime_ticks": 158,
"stime_ticks": 14,
"cg_current": 238120960,
"cg_peak": 238120960,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2487,
"msgs": 1500,
"events": 5384,
"pty_bytes": 53311,
"pty_writes": 27,
"rss_kb": 264480,
"pss_kb": 218276,
"private_dirty_kb": 205420,
"vmhwm_kb": 264492,
"utime_ticks": 158,
"stime_ticks": 14,
"cg_current": 238383104,
"cg_peak": 238383104,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2487,
"msgs": 1600,
"events": 5730,
"pty_bytes": 53311,
"pty_writes": 27,
"rss_kb": 264520,
"pss_kb": 218316,
"private_dirty_kb": 205460,
"vmhwm_kb": 264532,
"utime_ticks": 158,
"stime_ticks": 14,
"cg_current": 238383104,
"cg_peak": 238383104,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2582,
"msgs": 1700,
"events": 6100,
"pty_bytes": 55600,
"pty_writes": 28,
"rss_kb": 277688,
"pss_kb": 231484,
"private_dirty_kb": 218628,
"vmhwm_kb": 277720,
"utime_ticks": 169,
"stime_ticks": 15,
"cg_current": 252190720,
"cg_peak": 252190720,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2683,
"msgs": 1800,
"events": 6455,
"pty_bytes": 57676,
"pty_writes": 30,
"rss_kb": 294292,
"pss_kb": 248088,
"private_dirty_kb": 235232,
"vmhwm_kb": 294300,
"utime_ticks": 181,
"stime_ticks": 16,
"cg_current": 269967360,
"cg_peak": 269975552,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2684,
"msgs": 1900,
"events": 6838,
"pty_bytes": 57676,
"pty_writes": 30,
"rss_kb": 294364,
"pss_kb": 248160,
"private_dirty_kb": 235304,
"vmhwm_kb": 294428,
"utime_ticks": 181,
"stime_ticks": 16,
"cg_current": 269967360,
"cg_peak": 269975552,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2685,
"msgs": 2000,
"events": 7151,
"pty_bytes": 57676,
"pty_writes": 30,
"rss_kb": 294480,
"pss_kb": 248276,
"private_dirty_kb": 235420,
"vmhwm_kb": 294500,
"utime_ticks": 181,
"stime_ticks": 16,
"cg_current": 270229504,
"cg_peak": 270229504,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2785,
"msgs": 2100,
"events": 7532,
"pty_bytes": 60668,
"pty_writes": 31,
"rss_kb": 312100,
"pss_kb": 265896,
"private_dirty_kb": 253040,
"vmhwm_kb": 312424,
"utime_ticks": 193,
"stime_ticks": 17,
"cg_current": 288792576,
"cg_peak": 288792576,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2883,
"msgs": 2201,
"events": 7892,
"pty_bytes": 65824,
"pty_writes": 33,
"rss_kb": 324584,
"pss_kb": 278380,
"private_dirty_kb": 265524,
"vmhwm_kb": 324640,
"utime_ticks": 206,
"stime_ticks": 17,
"cg_current": 302051328,
"cg_peak": 302051328,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 2987,
"msgs": 2301,
"events": 8254,
"pty_bytes": 72170,
"pty_writes": 35,
"rss_kb": 339748,
"pss_kb": 293544,
"private_dirty_kb": 280688,
"vmhwm_kb": 339824,
"utime_ticks": 226,
"stime_ticks": 18,
"cg_current": 317755392,
"cg_peak": 317755392,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 3086,
"msgs": 2401,
"events": 8596,
"pty_bytes": 75041,
"pty_writes": 36,
"rss_kb": 350452,
"pss_kb": 304248,
"private_dirty_kb": 291392,
"vmhwm_kb": 350608,
"utime_ticks": 244,
"stime_ticks": 19,
"cg_current": 328609792,
"cg_peak": 329805824,
"cg_oom_kill": 0
},
{
"kind": "periodic",
"t_ms": 3090,
"msgs": null,
"events": null,
"pty_bytes": 75041,
"pty_writes": 36,
"rss_kb": 350452,
"pss_kb": 304248,
"private_dirty_kb": 291392,
"vmhwm_kb": 350608,
"utime_ticks": 244,
"stime_ticks": 19,
"cg_current": 328871936,
"cg_peak": 329805824,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 3187,
"msgs": 2501,
"events": 8957,
"pty_bytes": 80399,
"pty_writes": 38,
"rss_kb": 352864,
"pss_kb": 306660,
"private_dirty_kb": 293804,
"vmhwm_kb": 353712,
"utime_ticks": 258,
"stime_ticks": 19,
"cg_current": 331362304,
"cg_peak": 333316096,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 3261,
"msgs": 2601,
"events": 9345,
"pty_bytes": 81878,
"pty_writes": 39,
"rss_kb": 353652,
"pss_kb": 307448,
"private_dirty_kb": 294592,
"vmhwm_kb": 355024,
"utime_ticks": 266,
"stime_ticks": 20,
"cg_current": 331812864,
"cg_peak": 334532608,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 3389,
"msgs": 2701,
"events": 9688,
"pty_bytes": 88859,
"pty_writes": 42,
"rss_kb": 355140,
"pss_kb": 308936,
"private_dirty_kb": 296080,
"vmhwm_kb": 355844,
"utime_ticks": 282,
"stime_ticks": 20,
"cg_current": 333271040,
"cg_peak": 334532608,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 3414,
"msgs": 2801,
"events": 10028,
"pty_bytes": 88859,
"pty_writes": 42,
"rss_kb": 356772,
"pss_kb": 310568,
"private_dirty_kb": 297712,
"vmhwm_kb": 356876,
"utime_ticks": 285,
"stime_ticks": 20,
"cg_current": 334962688,
"cg_peak": 334962688,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 3487,
"msgs": 2901,
"events": 10398,
"pty_bytes": 92811,
"pty_writes": 44,
"rss_kb": 361756,
"pss_kb": 315552,
"private_dirty_kb": 302696,
"vmhwm_kb": 361788,
"utime_ticks": 294,
"stime_ticks": 21,
"cg_current": 340541440,
"cg_peak": 340541440,
"cg_oom_kill": 0
},
{
"kind": "boundary",
"t_ms": 3587,
"msgs": 3000,
"events": 10759,
"pty_bytes": 97124,
"pty_writes": 46,
"rss_kb": 376204,
"pss_kb": 330000,
"private_dirty_kb": 317144,
"vmhwm_kb": 376252,
"utime_ticks": 307,
"stime_ticks": 21,
"cg_current": 356048896,
"cg_peak": 356048896,
"cg_oom_kill": 0
},
{
"kind": "done",
"t_ms": 3590,
"msgs": 3000,
"events": 10759,
"pty_bytes": 97124,
"pty_writes": 46,
"rss_kb": 376404,
"pss_kb": 330200,
"private_dirty_kb": 317344,
"vmhwm_kb": 376472,
"utime_ticks": 307,
"stime_ticks": 21,
"cg_current": 356311040,
"cg_peak": 356311040,
"cg_oom_kill": 0
},
{
"kind": "periodic",
"t_ms": 4090,
"msgs": 3000,
"events": null,
"pty_bytes": 102189,
"pty_writes": 51,
"rss_kb": 403792,
"pss_kb": 357588,
"private_dirty_kb": 344732,
"vmhwm_kb": 403792,
"utime_ticks": 328,
"stime_ticks": 23,
"cg_current": 384118784,
"cg_peak": 384892928,
"cg_oom_kill": 0
},
{
"kind": "final",
"t_ms": 5009,
"msgs": 3000,
"events": 10759,
"pty_bytes": 102261,
"pty_writes": 52,
"rss_kb": 403792,
"pss_kb": 357588,
"private_dirty_kb": 344732,
"vmhwm_kb": 403792,
"utime_ticks": 328,
"stime_ticks": 23,
"cg_current": 384118784,
"cg_peak": 384892928,
"cg_oom_kill": 0
},
{
"kind": "periodic",
"t_ms": 5095,
"msgs": 3000,
"events": null,
"pty_bytes": 106349,
"pty_writes": 53,
"rss_kb": 405844,
"pss_kb": 359640,
"private_dirty_kb": 346784,
"vmhwm_kb": 405844,
"utime_ticks": 333,
"stime_ticks": 23,
"cg_current": 386469888,
"cg_peak": 386469888,
"cg_oom_kill": 0
}
],
"events": [
{
"kind": "rpc",
"method": "session.create",
"t_ms": 205
},
{
"kind": "rpc",
"method": "startup.catalog",
"t_ms": 205
},
{
"kind": "rpc",
"method": "model.options",
"t_ms": 205
}
],
"summary": {
"result": "completed",
"cap_hit": false,
"cap_hit_basis": null,
"at_messages": null,
"exit": {
"exitCode": 0,
"signal": 0,
"t": 5274
},
"stream_done": true,
"msgs_streamed": 3000,
"events_streamed": 10759,
"pty_bytes_total": 106469,
"pty_data_callbacks": 55,
"first_byte_ms": 158,
"session_create_ms": 205,
"stream_start_ms": 1722,
"vmhwm_kb": 405844,
"cg_peak": 386469888,
"drain_max_loop_lag_ms": 17,
"drain_lag_violations": 1,
"drain_ok": false,
"digest": null
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -24,7 +24,7 @@ import {
import type { DetailsMode } from './details.ts'
import { diffStats, type DiffStats } from './diff.ts'
import type { SessionTabId } from './sessionPicker.ts'
import { envOutputUnlimited } from './env.ts'
import { envFlag, envOutputUnlimited } from './env.ts'
import { registerNotifier } from './notify.ts'
import { stripAnsi, stripOmittedNote, stripToolEnvelope } from './toolOutput.ts'
import { DEFAULT_THEME, type Theme, themeFromSkin } from './theme.ts'
@ -411,17 +411,27 @@ export function createSessionStore(options?: SessionStoreOptions) {
// HANDLE_SAFE_MAX_ROWS = 1000 ≈ 47k handles ≈ 72% of the table on the
// realistic-fixture mix, leaving ~18k slots of headroom for chrome
// (composer/pickers/dashboard) and heavier-than-fixture rows. Pathological
// rows can still exceed it — renderable-weight-aware capping belongs to the
// virtualization work (#27); until then nativeHandles.ts degrades (unstyled
// text) instead of crashing. `HERMES_TUI_MAX_MESSAGES` can LOWER the cap but
// rows can still exceed it; nativeHandles.ts degrades (unstyled text)
// instead of crashing. `HERMES_TUI_MAX_MESSAGES` can LOWER the cap but
// never raise it past the ceiling. Read once per store. Trimmed turns aren't
// lost — they live on the gateway and are recoverable via `/resume`.
//
// With transcript WINDOWING on (#27, S1+S2 in view/transcript.tsx — the
// default), handles no longer scale with the store: out-of-window rows are
// exact-height spacers and the mounted set is ~3 viewports (measured peak 31
// rows over a 1500-row burst), so the scrollback ceiling returns to 3000
// (the originally shipped default, regression documented in
// docs/plans/opentui-fixes-audit.md §2). The HERMES_TUI_WINDOWING=0 escape
// hatch mounts every row again, so it keeps the handle-safe 1000 clamp.
const HANDLE_SAFE_MAX_ROWS = 1000
const WINDOWED_MAX_ROWS = 3000
const MESSAGE_CAP = (() => {
if (options?.uncappedFixture) return Number.MAX_SAFE_INTEGER
const windowing = envFlag(process.env.HERMES_TUI_WINDOWING, true)
const ceiling = windowing ? WINDOWED_MAX_ROWS : HANDLE_SAFE_MAX_ROWS
const raw = Number.parseInt(process.env.HERMES_TUI_MAX_MESSAGES ?? '', 10)
const requested = Number.isFinite(raw) && raw > 0 ? raw : HANDLE_SAFE_MAX_ROWS
return Math.min(requested, HANDLE_SAFE_MAX_ROWS)
const requested = Number.isFinite(raw) && raw > 0 ? raw : ceiling
return Math.min(requested, ceiling)
})()
const [state, setState] = createStore<StoreState>({