From 5c6438fd283690b9e45f4d8663102a8eb188bf9c Mon Sep 17 00:00:00 2001 From: alt-glitch Date: Thu, 11 Jun 2026 08:13:00 +0530 Subject: [PATCH] =?UTF-8?q?bench:=20T1=20real-workload=20memory=20cells=20?= =?UTF-8?q?=E2=80=94=20session-DB=20distribution=20+=20mem100/300/2000?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Real sessions DB (~/.hermes/state.db, 444 tui+cli sessions): p50=20, p75=53, p90=182, p95=340, p99=1941 msgs. The assumed 200-300 'realistic band' is actually the p90-p95 region; the typical session is ~20 msgs and the p99 tail reaches ~1940 (real ~2k-msg sessions exist). New cells at those anchors (2 reps, ink vs otui-capped, 2G scope), VmHWM medians: 100 msgs 163 vs 222MB; 300 msgs 180 vs 268MB; 2000 msgs 234 vs 671MB (2.9x). session-distribution.mjs regenerates the JSON; run.mjs gains --configs to skip redundant configs (otui-uncapped == capped below the 3000-row cap). --- ...26-06-11T0237-805e080-gate-ink-ink-r0.json | 405 +++++++ ...26-06-11T0237-805e080-gate-ink-ink-r1.json | 405 +++++++ ...8-805e080-gate-opentui-otui-capped-r0.json | 225 ++++ ...8-805e080-gate-opentui-otui-capped-r1.json | 225 ++++ ...-06-11T0238-805e080-mem100-ink-ink-r0.json | 281 +++++ ...805e080-mem100-opentui-otui-capped-r0.json | 203 ++++ ...-06-11T0239-805e080-mem100-ink-ink-r1.json | 298 +++++ ...805e080-mem100-opentui-otui-capped-r1.json | 203 ++++ ...-06-11T0239-805e080-mem300-ink-ink-r0.json | 350 ++++++ ...805e080-mem300-opentui-otui-capped-r0.json | 237 ++++ ...05e080-mem2000-opentui-otui-capped-r0.json | 594 ++++++++++ ...-06-11T0240-805e080-mem300-ink-ink-r1.json | 367 ++++++ ...805e080-mem300-opentui-otui-capped-r1.json | 237 ++++ ...06-11T0241-448e6ee-mem2000-ink-ink-r0.json | 1001 +++++++++++++++++ ...06-11T0241-448e6ee-mem2000-ink-ink-r1.json | 981 ++++++++++++++++ ...48e6ee-mem2000-opentui-otui-capped-r1.json | 611 ++++++++++ bench/run.mjs | 6 +- bench/session-distribution.json | 199 ++++ bench/session-distribution.mjs | 57 + 19 files changed, 6883 insertions(+), 2 deletions(-) create mode 100644 bench/results/2026-06-11T0237-805e080-gate-ink-ink-r0.json create mode 100644 bench/results/2026-06-11T0237-805e080-gate-ink-ink-r1.json create mode 100644 bench/results/2026-06-11T0238-805e080-gate-opentui-otui-capped-r0.json create mode 100644 bench/results/2026-06-11T0238-805e080-gate-opentui-otui-capped-r1.json create mode 100644 bench/results/2026-06-11T0238-805e080-mem100-ink-ink-r0.json create mode 100644 bench/results/2026-06-11T0238-805e080-mem100-opentui-otui-capped-r0.json create mode 100644 bench/results/2026-06-11T0239-805e080-mem100-ink-ink-r1.json create mode 100644 bench/results/2026-06-11T0239-805e080-mem100-opentui-otui-capped-r1.json create mode 100644 bench/results/2026-06-11T0239-805e080-mem300-ink-ink-r0.json create mode 100644 bench/results/2026-06-11T0239-805e080-mem300-opentui-otui-capped-r0.json create mode 100644 bench/results/2026-06-11T0240-805e080-mem2000-opentui-otui-capped-r0.json create mode 100644 bench/results/2026-06-11T0240-805e080-mem300-ink-ink-r1.json create mode 100644 bench/results/2026-06-11T0240-805e080-mem300-opentui-otui-capped-r1.json create mode 100644 bench/results/2026-06-11T0241-448e6ee-mem2000-ink-ink-r0.json create mode 100644 bench/results/2026-06-11T0241-448e6ee-mem2000-ink-ink-r1.json create mode 100644 bench/results/2026-06-11T0241-448e6ee-mem2000-opentui-otui-capped-r1.json create mode 100644 bench/session-distribution.json create mode 100644 bench/session-distribution.mjs diff --git a/bench/results/2026-06-11T0237-805e080-gate-ink-ink-r0.json b/bench/results/2026-06-11T0237-805e080-gate-ink-ink-r0.json new file mode 100644 index 00000000000..5cfc3285325 --- /dev/null +++ b/bench/results/2026-06-11T0237-805e080-gate-ink-ink-r0.json @@ -0,0 +1,405 @@ +{ + "meta": { + "cell": "gate", + "ui": "ink", + "config": "ink", + "mode": "digest", + "rep": 0, + "run_id": "mq8w0mrq-zq29", + "utc": "2026-06-11T02:37:37.478Z", + "sha": "805e08081", + "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": 2716268, + "gw_pid": 2716276, + "cgroup": null, + "load_avg_at_start": [ + 0.25, + 0.27, + 0.2 + ], + "instrumented": false + }, + "samples": [ + { + "kind": "periodic", + "t_ms": 29, + "msgs": null, + "events": null, + "pty_bytes": 0, + "pty_writes": 0, + "rss_kb": 56548, + "pss_kb": 30399, + "private_dirty_kb": 19112, + "vmhwm_kb": 56604, + "utime_ticks": 2, + "stime_ticks": 0 + }, + { + "kind": "periodic", + "t_ms": 1035, + "msgs": null, + "events": null, + "pty_bytes": 6604, + "pty_writes": 12, + "rss_kb": 108384, + "pss_kb": 69262, + "private_dirty_kb": 49176, + "vmhwm_kb": 108384, + "utime_ticks": 23, + "stime_ticks": 3 + }, + { + "kind": "boundary", + "t_ms": 1466, + "msgs": 100, + "events": 355, + "pty_bytes": 14568, + "pty_writes": 16, + "rss_kb": 125968, + "pss_kb": 86789, + "private_dirty_kb": 66036, + "vmhwm_kb": 126076, + "utime_ticks": 32, + "stime_ticks": 4 + }, + { + "kind": "boundary", + "t_ms": 1516, + "msgs": 200, + "events": 738, + "pty_bytes": 18594, + "pty_writes": 17, + "rss_kb": 159396, + "pss_kb": 120153, + "private_dirty_kb": 99464, + "vmhwm_kb": 159404, + "utime_ticks": 41, + "stime_ticks": 5 + }, + { + "kind": "boundary", + "t_ms": 1568, + "msgs": 300, + "events": 1051, + "pty_bytes": 22497, + "pty_writes": 18, + "rss_kb": 195068, + "pss_kb": 155793, + "private_dirty_kb": 135072, + "vmhwm_kb": 195416, + "utime_ticks": 52, + "stime_ticks": 5 + }, + { + "kind": "done", + "t_ms": 1570, + "msgs": 300, + "events": 1051, + "pty_bytes": 22497, + "pty_writes": 18, + "rss_kb": 195424, + "pss_kb": 156149, + "private_dirty_kb": 135428, + "vmhwm_kb": 195456, + "utime_ticks": 52, + "stime_ticks": 5 + }, + { + "kind": "periodic", + "t_ms": 2045, + "msgs": 300, + "events": null, + "pty_bytes": 33995, + "pty_writes": 22, + "rss_kb": 185100, + "pss_kb": 145793, + "private_dirty_kb": 125104, + "vmhwm_kb": 194764, + "utime_ticks": 61, + "stime_ticks": 6 + }, + { + "kind": "final", + "t_ms": 2931, + "msgs": 300, + "events": 1051, + "pty_bytes": 34040, + "pty_writes": 23, + "rss_kb": 185108, + "pss_kb": 145801, + "private_dirty_kb": 125112, + "vmhwm_kb": 194764, + "utime_ticks": 61, + "stime_ticks": 6 + }, + { + "kind": "periodic", + "t_ms": 3059, + "msgs": 300, + "events": null, + "pty_bytes": 37554, + "pty_writes": 25, + "rss_kb": 185416, + "pss_kb": 146109, + "private_dirty_kb": 125420, + "vmhwm_kb": 194764, + "utime_ticks": 64, + "stime_ticks": 6 + }, + { + "kind": "periodic", + "t_ms": 4066, + "msgs": 300, + "events": null, + "pty_bytes": 48264, + "pty_writes": 31, + "rss_kb": 185472, + "pss_kb": 146165, + "private_dirty_kb": 125476, + "vmhwm_kb": 194764, + "utime_ticks": 66, + "stime_ticks": 6 + } + ], + "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": 227 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 227 + }, + { + "kind": "rpc", + "method": "session.create", + "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": 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": 1439 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1439 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1466 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1466 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1489 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1514 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1516 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1539 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1539 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1570 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1589 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1589 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1614 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1614 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1614 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1639 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1639 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 1715 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2956 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2956 + }, + { + "kind": "rpc", + "method": "terminal.resize", + "t_ms": 3057 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 3107 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 3233 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 3335 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 3335 + }, + { + "kind": "rpc", + "method": "terminal.resize", + "t_ms": 3435 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 3511 + } + ], + "summary": { + "result": "completed", + "cap_hit": false, + "cap_hit_basis": null, + "at_messages": null, + "exit": { + "exitCode": 0, + "signal": 0, + "t": 4545 + }, + "stream_done": true, + "msgs_streamed": 300, + "events_streamed": 1051, + "pty_bytes_total": 48490, + "pty_data_callbacks": 40, + "first_byte_ms": 69, + "session_create_ms": 227, + "stream_start_ms": 1439, + "vmhwm_kb": 194764, + "cg_peak": null, + "drain_max_loop_lag_ms": 5, + "drain_lag_violations": 0, + "drain_ok": true, + "digest": "7775bee02e57da2be0f73880cfe828666f51e08209a28ba81ec599817b95eb2c" + }, + "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-native-engine)❯│┃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-native-engine)❯4" +} \ No newline at end of file diff --git a/bench/results/2026-06-11T0237-805e080-gate-ink-ink-r1.json b/bench/results/2026-06-11T0237-805e080-gate-ink-ink-r1.json new file mode 100644 index 00000000000..926b16fc55a --- /dev/null +++ b/bench/results/2026-06-11T0237-805e080-gate-ink-ink-r1.json @@ -0,0 +1,405 @@ +{ + "meta": { + "cell": "gate", + "ui": "ink", + "config": "ink", + "mode": "digest", + "rep": 1, + "run_id": "mq8w0y42-742j", + "utc": "2026-06-11T02:37:52.178Z", + "sha": "805e08081", + "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": 2716655, + "gw_pid": 2716663, + "cgroup": null, + "load_avg_at_start": [ + 0.33, + 0.29, + 0.2 + ], + "instrumented": false + }, + "samples": [ + { + "kind": "periodic", + "t_ms": 26, + "msgs": null, + "events": null, + "pty_bytes": 0, + "pty_writes": 0, + "rss_kb": 56588, + "pss_kb": 30443, + "private_dirty_kb": 19156, + "vmhwm_kb": 56616, + "utime_ticks": 1, + "stime_ticks": 1 + }, + { + "kind": "periodic", + "t_ms": 1032, + "msgs": null, + "events": null, + "pty_bytes": 6602, + "pty_writes": 11, + "rss_kb": 107700, + "pss_kb": 68558, + "private_dirty_kb": 48572, + "vmhwm_kb": 107700, + "utime_ticks": 23, + "stime_ticks": 3 + }, + { + "kind": "boundary", + "t_ms": 1438, + "msgs": 100, + "events": 355, + "pty_bytes": 10173, + "pty_writes": 14, + "rss_kb": 125840, + "pss_kb": 86605, + "private_dirty_kb": 65928, + "vmhwm_kb": 125856, + "utime_ticks": 31, + "stime_ticks": 3 + }, + { + "kind": "boundary", + "t_ms": 1513, + "msgs": 200, + "events": 738, + "pty_bytes": 21551, + "pty_writes": 17, + "rss_kb": 159976, + "pss_kb": 120667, + "private_dirty_kb": 100000, + "vmhwm_kb": 160032, + "utime_ticks": 44, + "stime_ticks": 4 + }, + { + "kind": "boundary", + "t_ms": 1515, + "msgs": 300, + "events": 1051, + "pty_bytes": 21551, + "pty_writes": 17, + "rss_kb": 160116, + "pss_kb": 120807, + "private_dirty_kb": 100140, + "vmhwm_kb": 160440, + "utime_ticks": 44, + "stime_ticks": 4 + }, + { + "kind": "done", + "t_ms": 1515, + "msgs": 300, + "events": 1051, + "pty_bytes": 21551, + "pty_writes": 17, + "rss_kb": 160512, + "pss_kb": 121203, + "private_dirty_kb": 100536, + "vmhwm_kb": 160676, + "utime_ticks": 44, + "stime_ticks": 4 + }, + { + "kind": "periodic", + "t_ms": 2042, + "msgs": 300, + "events": null, + "pty_bytes": 32521, + "pty_writes": 23, + "rss_kb": 177228, + "pss_kb": 137919, + "private_dirty_kb": 117252, + "vmhwm_kb": 184556, + "utime_ticks": 60, + "stime_ticks": 5 + }, + { + "kind": "final", + "t_ms": 2914, + "msgs": 300, + "events": 1051, + "pty_bytes": 32566, + "pty_writes": 24, + "rss_kb": 177240, + "pss_kb": 137931, + "private_dirty_kb": 117264, + "vmhwm_kb": 184556, + "utime_ticks": 60, + "stime_ticks": 5 + }, + { + "kind": "periodic", + "t_ms": 3055, + "msgs": 300, + "events": null, + "pty_bytes": 36080, + "pty_writes": 26, + "rss_kb": 180628, + "pss_kb": 141319, + "private_dirty_kb": 120652, + "vmhwm_kb": 184556, + "utime_ticks": 65, + "stime_ticks": 5 + }, + { + "kind": "periodic", + "t_ms": 4060, + "msgs": 300, + "events": null, + "pty_bytes": 46790, + "pty_writes": 32, + "rss_kb": 181216, + "pss_kb": 141907, + "private_dirty_kb": 121240, + "vmhwm_kb": 184556, + "utime_ticks": 70, + "stime_ticks": 5 + } + ], + "events": [ + { + "kind": "rpc", + "method": "config.get", + "t_ms": 175 + }, + { + "kind": "rpc", + "method": "commands.catalog", + "t_ms": 200 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 200 + }, + { + "kind": "rpc", + "method": "setup.status", + "t_ms": 200 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 200 + }, + { + "kind": "rpc", + "method": "session.create", + "t_ms": 200 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 200 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 226 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 226 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 226 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 226 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 226 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1410 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1435 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1435 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1438 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1460 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1460 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1486 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1513 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1513 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1515 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1538 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1563 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1563 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1588 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1588 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1588 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1588 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 1713 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2925 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2925 + }, + { + "kind": "rpc", + "method": "terminal.resize", + "t_ms": 3027 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 3077 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 3203 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 3328 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 3328 + }, + { + "kind": "rpc", + "method": "terminal.resize", + "t_ms": 3428 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 3478 + } + ], + "summary": { + "result": "completed", + "cap_hit": false, + "cap_hit_basis": null, + "at_messages": null, + "exit": { + "exitCode": 0, + "signal": 0, + "t": 4525 + }, + "stream_done": true, + "msgs_streamed": 300, + "events_streamed": 1051, + "pty_bytes_total": 47016, + "pty_data_callbacks": 34, + "first_byte_ms": 61, + "session_create_ms": 200, + "stream_start_ms": 1410, + "vmhwm_kb": 184556, + "cg_peak": null, + "drain_max_loop_lag_ms": 3, + "drain_lag_violations": 0, + "drain_ok": true, + "digest": "7775bee02e57da2be0f73880cfe828666f51e08209a28ba81ec599817b95eb2c" + }, + "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-native-engine)❯│┃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-native-engine)❯4" +} \ No newline at end of file diff --git a/bench/results/2026-06-11T0238-805e080-gate-opentui-otui-capped-r0.json b/bench/results/2026-06-11T0238-805e080-gate-opentui-otui-capped-r0.json new file mode 100644 index 00000000000..b1f565d9fe7 --- /dev/null +++ b/bench/results/2026-06-11T0238-805e080-gate-opentui-otui-capped-r0.json @@ -0,0 +1,225 @@ +{ + "meta": { + "cell": "gate", + "ui": "opentui", + "config": "otui-capped", + "mode": "digest", + "rep": 0, + "run_id": "mq8w19fs-zz6r", + "utc": "2026-06-11T02:38:06.856Z", + "sha": "805e08081", + "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": 2717000, + "gw_pid": 2717013, + "cgroup": null, + "load_avg_at_start": [ + 0.56, + 0.34, + 0.22 + ], + "instrumented": false + }, + "samples": [ + { + "kind": "periodic", + "t_ms": 27, + "msgs": null, + "events": null, + "pty_bytes": 0, + "pty_writes": 0, + "rss_kb": 55092, + "pss_kb": 28887, + "private_dirty_kb": 17660, + "vmhwm_kb": 55100, + "utime_ticks": 1, + "stime_ticks": 1 + }, + { + "kind": "periodic", + "t_ms": 1039, + "msgs": null, + "events": null, + "pty_bytes": 28911, + "pty_writes": 10, + "rss_kb": 105144, + "pss_kb": 65000, + "private_dirty_kb": 48408, + "vmhwm_kb": 107736, + "utime_ticks": 17, + "stime_ticks": 3 + }, + { + "kind": "boundary", + "t_ms": 1392, + "msgs": 100, + "events": 355, + "pty_bytes": 31413, + "pty_writes": 12, + "rss_kb": 111052, + "pss_kb": 70871, + "private_dirty_kb": 54316, + "vmhwm_kb": 111060, + "utime_ticks": 20, + "stime_ticks": 3 + }, + { + "kind": "boundary", + "t_ms": 1393, + "msgs": 200, + "events": 738, + "pty_bytes": 31413, + "pty_writes": 12, + "rss_kb": 111076, + "pss_kb": 70895, + "private_dirty_kb": 54340, + "vmhwm_kb": 111076, + "utime_ticks": 20, + "stime_ticks": 3 + }, + { + "kind": "boundary", + "t_ms": 1571, + "msgs": 300, + "events": 1051, + "pty_bytes": 31413, + "pty_writes": 12, + "rss_kb": 189284, + "pss_kb": 147206, + "private_dirty_kb": 129280, + "vmhwm_kb": 189500, + "utime_ticks": 48, + "stime_ticks": 7 + }, + { + "kind": "done", + "t_ms": 1573, + "msgs": 300, + "events": 1051, + "pty_bytes": 31413, + "pty_writes": 12, + "rss_kb": 189616, + "pss_kb": 147538, + "private_dirty_kb": 129612, + "vmhwm_kb": 189624, + "utime_ticks": 48, + "stime_ticks": 7 + }, + { + "kind": "periodic", + "t_ms": 2046, + "msgs": 300, + "events": null, + "pty_bytes": 42105, + "pty_writes": 18, + "rss_kb": 277160, + "pss_kb": 234863, + "private_dirty_kb": 216716, + "vmhwm_kb": 303016, + "utime_ticks": 111, + "stime_ticks": 12 + }, + { + "kind": "final", + "t_ms": 2871, + "msgs": 300, + "events": 1051, + "pty_bytes": 42177, + "pty_writes": 19, + "rss_kb": 277176, + "pss_kb": 234879, + "private_dirty_kb": 216732, + "vmhwm_kb": 303016, + "utime_ticks": 111, + "stime_ticks": 12 + }, + { + "kind": "periodic", + "t_ms": 3055, + "msgs": 300, + "events": null, + "pty_bytes": 53088, + "pty_writes": 23, + "rss_kb": 277232, + "pss_kb": 234935, + "private_dirty_kb": 216788, + "vmhwm_kb": 303016, + "utime_ticks": 113, + "stime_ticks": 12 + }, + { + "kind": "periodic", + "t_ms": 4063, + "msgs": 300, + "events": null, + "pty_bytes": 64410, + "pty_writes": 28, + "rss_kb": 277268, + "pss_kb": 234971, + "private_dirty_kb": 216824, + "vmhwm_kb": 303016, + "utime_ticks": 114, + "stime_ticks": 12 + } + ], + "events": [ + { + "kind": "rpc", + "method": "session.create", + "t_ms": 178 + }, + { + "kind": "rpc", + "method": "startup.catalog", + "t_ms": 178 + }, + { + "kind": "rpc", + "method": "model.options", + "t_ms": 178 + } + ], + "summary": { + "result": "completed", + "cap_hit": false, + "cap_hit_basis": null, + "at_messages": null, + "exit": { + "exitCode": 0, + "signal": 0, + "t": 4714 + }, + "stream_done": true, + "msgs_streamed": 300, + "events_streamed": 1051, + "pty_bytes_total": 69221, + "pty_data_callbacks": 33, + "first_byte_ms": 138, + "session_create_ms": 178, + "stream_start_ms": 1391, + "vmhwm_kb": 303016, + "cg_peak": null, + "drain_max_loop_lag_ms": 3, + "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" +} \ No newline at end of file diff --git a/bench/results/2026-06-11T0238-805e080-gate-opentui-otui-capped-r1.json b/bench/results/2026-06-11T0238-805e080-gate-opentui-otui-capped-r1.json new file mode 100644 index 00000000000..e91a457bf32 --- /dev/null +++ b/bench/results/2026-06-11T0238-805e080-gate-opentui-otui-capped-r1.json @@ -0,0 +1,225 @@ +{ + "meta": { + "cell": "gate", + "ui": "opentui", + "config": "otui-capped", + "mode": "digest", + "rep": 1, + "run_id": "mq8w1ksw-pim6", + "utc": "2026-06-11T02:38:21.584Z", + "sha": "805e08081", + "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": 2717321, + "gw_pid": 2717331, + "cgroup": null, + "load_avg_at_start": [ + 0.48, + 0.33, + 0.22 + ], + "instrumented": false + }, + "samples": [ + { + "kind": "periodic", + "t_ms": 27, + "msgs": null, + "events": null, + "pty_bytes": 0, + "pty_writes": 0, + "rss_kb": 54512, + "pss_kb": 28226, + "private_dirty_kb": 16988, + "vmhwm_kb": 54668, + "utime_ticks": 1, + "stime_ticks": 0 + }, + { + "kind": "periodic", + "t_ms": 1035, + "msgs": null, + "events": null, + "pty_bytes": 28911, + "pty_writes": 12, + "rss_kb": 105288, + "pss_kb": 65027, + "private_dirty_kb": 48456, + "vmhwm_kb": 107596, + "utime_ticks": 17, + "stime_ticks": 3 + }, + { + "kind": "boundary", + "t_ms": 1391, + "msgs": 100, + "events": 355, + "pty_bytes": 31413, + "pty_writes": 14, + "rss_kb": 116532, + "pss_kb": 76140, + "private_dirty_kb": 59512, + "vmhwm_kb": 116560, + "utime_ticks": 23, + "stime_ticks": 3 + }, + { + "kind": "boundary", + "t_ms": 1392, + "msgs": 200, + "events": 738, + "pty_bytes": 31413, + "pty_writes": 14, + "rss_kb": 116644, + "pss_kb": 76252, + "private_dirty_kb": 59624, + "vmhwm_kb": 116668, + "utime_ticks": 23, + "stime_ticks": 3 + }, + { + "kind": "boundary", + "t_ms": 1393, + "msgs": 300, + "events": 1051, + "pty_bytes": 31413, + "pty_writes": 14, + "rss_kb": 116680, + "pss_kb": 76288, + "private_dirty_kb": 59660, + "vmhwm_kb": 116840, + "utime_ticks": 23, + "stime_ticks": 3 + }, + { + "kind": "done", + "t_ms": 1393, + "msgs": 300, + "events": 1051, + "pty_bytes": 31413, + "pty_writes": 14, + "rss_kb": 116896, + "pss_kb": 76413, + "private_dirty_kb": 59748, + "vmhwm_kb": 116924, + "utime_ticks": 23, + "stime_ticks": 3 + }, + { + "kind": "periodic", + "t_ms": 2048, + "msgs": 300, + "events": null, + "pty_bytes": 36936, + "pty_writes": 18, + "rss_kb": 271960, + "pss_kb": 229516, + "private_dirty_kb": 211364, + "vmhwm_kb": 296232, + "utime_ticks": 111, + "stime_ticks": 10 + }, + { + "kind": "final", + "t_ms": 2860, + "msgs": 300, + "events": 1051, + "pty_bytes": 37008, + "pty_writes": 19, + "rss_kb": 271976, + "pss_kb": 229532, + "private_dirty_kb": 211380, + "vmhwm_kb": 296232, + "utime_ticks": 111, + "stime_ticks": 10 + }, + { + "kind": "periodic", + "t_ms": 3050, + "msgs": 300, + "events": null, + "pty_bytes": 47919, + "pty_writes": 23, + "rss_kb": 272000, + "pss_kb": 229556, + "private_dirty_kb": 211404, + "vmhwm_kb": 296232, + "utime_ticks": 113, + "stime_ticks": 10 + }, + { + "kind": "periodic", + "t_ms": 4057, + "msgs": 300, + "events": null, + "pty_bytes": 59241, + "pty_writes": 28, + "rss_kb": 272004, + "pss_kb": 229560, + "private_dirty_kb": 211408, + "vmhwm_kb": 296232, + "utime_ticks": 113, + "stime_ticks": 11 + } + ], + "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": 4697 + }, + "stream_done": true, + "msgs_streamed": 300, + "events_streamed": 1051, + "pty_bytes_total": 64052, + "pty_data_callbacks": 33, + "first_byte_ms": 129, + "session_create_ms": 177, + "stream_start_ms": 1365, + "vmhwm_kb": 296232, + "cg_peak": null, + "drain_max_loop_lag_ms": 3, + "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" +} \ No newline at end of file diff --git a/bench/results/2026-06-11T0238-805e080-mem100-ink-ink-r0.json b/bench/results/2026-06-11T0238-805e080-mem100-ink-ink-r0.json new file mode 100644 index 00000000000..704148c5839 --- /dev/null +++ b/bench/results/2026-06-11T0238-805e080-mem100-ink-ink-r0.json @@ -0,0 +1,281 @@ +{ + "meta": { + "cell": "mem100", + "ui": "ink", + "config": "ink", + "mode": "mem", + "rep": 0, + "run_id": "mq8w26hw-sagf", + "utc": "2026-06-11T02:38:49.700Z", + "sha": "805e08081", + "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": null, + "fixture": { + "path": "/home/daimon/github/worktrees/hermes-agent/lively-thrush/hermes-agent/bench/.cache/fixture-100.ndjson", + "msgs": 100, + "sha256": "0c583ebe8dd97aecb72cc947ae3fe83dc85539c87e8d70d17fb8994117d37a44" + }, + "sample_every": 100, + "mode_params": {}, + "ui_pid": 2718214, + "gw_pid": 2718222, + "cgroup": "/sys/fs/cgroup/user.slice/user-1001.slice/user@1001.service/app.slice/hermes-bench-mq8w26hw-sagf.scope", + "load_avg_at_start": [ + 1.09, + 0.48, + 0.27 + ], + "instrumented": false + }, + "samples": [ + { + "kind": "periodic", + "t_ms": 52, + "msgs": null, + "events": null, + "pty_bytes": 0, + "pty_writes": 0, + "rss_kb": 57584, + "pss_kb": 31380, + "private_dirty_kb": 20104, + "vmhwm_kb": 57604, + "utime_ticks": 3, + "stime_ticks": 1, + "cg_current": 22401024, + "cg_peak": 22605824, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 1057, + "msgs": null, + "events": null, + "pty_bytes": 6601, + "pty_writes": 9, + "rss_kb": 108440, + "pss_kb": 67604, + "private_dirty_kb": 49160, + "vmhwm_kb": 108440, + "utime_ticks": 24, + "stime_ticks": 2, + "cg_current": 63262720, + "cg_peak": 64102400, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1736, + "msgs": 100, + "events": 355, + "pty_bytes": 6820, + "pty_writes": 12, + "rss_kb": 114264, + "pss_kb": 73407, + "private_dirty_kb": 54324, + "vmhwm_kb": 114264, + "utime_ticks": 27, + "stime_ticks": 2, + "cg_current": 70402048, + "cg_peak": 70746112, + "cg_oom_kill": 0 + }, + { + "kind": "done", + "t_ms": 1737, + "msgs": 100, + "events": 355, + "pty_bytes": 6820, + "pty_writes": 12, + "rss_kb": 114264, + "pss_kb": 73407, + "private_dirty_kb": 54324, + "vmhwm_kb": 114264, + "utime_ticks": 27, + "stime_ticks": 2, + "cg_current": 70402048, + "cg_peak": 70746112, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 2065, + "msgs": 100, + "events": null, + "pty_bytes": 17943, + "pty_writes": 21, + "rss_kb": 167460, + "pss_kb": 126541, + "private_dirty_kb": 107396, + "vmhwm_kb": 167460, + "utime_ticks": 46, + "stime_ticks": 5, + "cg_current": 125956096, + "cg_peak": 126377984, + "cg_oom_kill": 0 + }, + { + "kind": "final", + "t_ms": 3031, + "msgs": 100, + "events": 355, + "pty_bytes": 17988, + "pty_writes": 22, + "rss_kb": 167460, + "pss_kb": 126541, + "private_dirty_kb": 107396, + "vmhwm_kb": 167460, + "utime_ticks": 46, + "stime_ticks": 5, + "cg_current": 125816832, + "cg_peak": 126377984, + "cg_oom_kill": 0 + } + ], + "events": [ + { + "kind": "rpc", + "method": "config.get", + "t_ms": 201 + }, + { + "kind": "rpc", + "method": "commands.catalog", + "t_ms": 201 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 201 + }, + { + "kind": "rpc", + "method": "setup.status", + "t_ms": 225 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 225 + }, + { + "kind": "rpc", + "method": "session.create", + "t_ms": 225 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 225 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 225 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 225 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 225 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 225 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 225 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1735 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 1735 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1737 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1760 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1760 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1785 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1810 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1835 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1860 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1860 + } + ], + "summary": { + "result": "completed", + "cap_hit": false, + "cap_hit_basis": null, + "at_messages": null, + "exit": { + "exitCode": 0, + "signal": 0, + "t": 3041 + }, + "stream_done": true, + "msgs_streamed": 100, + "events_streamed": 355, + "pty_bytes_total": 18169, + "pty_data_callbacks": 26, + "first_byte_ms": 79, + "session_create_ms": 225, + "stream_start_ms": 1735, + "vmhwm_kb": 167460, + "cg_peak": 126377984, + "drain_max_loop_lag_ms": 3, + "drain_lag_violations": 0, + "drain_ok": true, + "digest": null + } +} \ No newline at end of file diff --git a/bench/results/2026-06-11T0238-805e080-mem100-opentui-otui-capped-r0.json b/bench/results/2026-06-11T0238-805e080-mem100-opentui-otui-capped-r0.json new file mode 100644 index 00000000000..8103893870d --- /dev/null +++ b/bench/results/2026-06-11T0238-805e080-mem100-opentui-otui-capped-r0.json @@ -0,0 +1,203 @@ +{ + "meta": { + "cell": "mem100", + "ui": "opentui", + "config": "otui-capped", + "mode": "mem", + "rep": 0, + "run_id": "mq8w1wat-zecv", + "utc": "2026-06-11T02:38:36.486Z", + "sha": "805e08081", + "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-100.ndjson", + "msgs": 100, + "sha256": "0c583ebe8dd97aecb72cc947ae3fe83dc85539c87e8d70d17fb8994117d37a44" + }, + "sample_every": 100, + "mode_params": {}, + "ui_pid": 2717740, + "gw_pid": 2717749, + "cgroup": "/sys/fs/cgroup/user.slice/user-1001.slice/user@1001.service/app.slice/hermes-bench-mq8w1wat-zecv.scope", + "load_avg_at_start": [ + 0.68, + 0.38, + 0.24 + ], + "instrumented": false + }, + "samples": [ + { + "kind": "periodic", + "t_ms": 54, + "msgs": null, + "events": null, + "pty_bytes": 0, + "pty_writes": 0, + "rss_kb": 55960, + "pss_kb": 29748, + "private_dirty_kb": 18532, + "vmhwm_kb": 55976, + "utime_ticks": 2, + "stime_ticks": 1, + "cg_current": 20750336, + "cg_peak": 20750336, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 1061, + "msgs": null, + "events": null, + "pty_bytes": 28911, + "pty_writes": 12, + "rss_kb": 104412, + "pss_kb": 62587, + "private_dirty_kb": 47680, + "vmhwm_kb": 107108, + "utime_ticks": 17, + "stime_ticks": 3, + "cg_current": 61464576, + "cg_peak": 65908736, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1715, + "msgs": 100, + "events": 355, + "pty_bytes": 31413, + "pty_writes": 14, + "rss_kb": 109344, + "pss_kb": 67327, + "private_dirty_kb": 52356, + "vmhwm_kb": 109360, + "utime_ticks": 22, + "stime_ticks": 3, + "cg_current": 68386816, + "cg_peak": 68816896, + "cg_oom_kill": 0 + }, + { + "kind": "done", + "t_ms": 1716, + "msgs": 100, + "events": 355, + "pty_bytes": 31413, + "pty_writes": 14, + "rss_kb": 109360, + "pss_kb": 67343, + "private_dirty_kb": 52372, + "vmhwm_kb": 109360, + "utime_ticks": 22, + "stime_ticks": 3, + "cg_current": 68386816, + "cg_peak": 68816896, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 2068, + "msgs": 100, + "events": null, + "pty_bytes": 35642, + "pty_writes": 19, + "rss_kb": 194596, + "pss_kb": 150487, + "private_dirty_kb": 134160, + "vmhwm_kb": 237388, + "utime_ticks": 76, + "stime_ticks": 9, + "cg_current": 154148864, + "cg_peak": 199331840, + "cg_oom_kill": 0 + }, + { + "kind": "final", + "t_ms": 2984, + "msgs": 100, + "events": 355, + "pty_bytes": 35714, + "pty_writes": 20, + "rss_kb": 194600, + "pss_kb": 150491, + "private_dirty_kb": 134164, + "vmhwm_kb": 237388, + "utime_ticks": 77, + "stime_ticks": 9, + "cg_current": 153743360, + "cg_peak": 199331840, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 3069, + "msgs": 100, + "events": null, + "pty_bytes": 40049, + "pty_writes": 22, + "rss_kb": 194732, + "pss_kb": 150623, + "private_dirty_kb": 134296, + "vmhwm_kb": 237388, + "utime_ticks": 77, + "stime_ticks": 9, + "cg_current": 154005504, + "cg_peak": 199331840, + "cg_oom_kill": 0 + } + ], + "events": [ + { + "kind": "rpc", + "method": "session.create", + "t_ms": 202 + }, + { + "kind": "rpc", + "method": "startup.catalog", + "t_ms": 202 + }, + { + "kind": "rpc", + "method": "model.options", + "t_ms": 202 + } + ], + "summary": { + "result": "completed", + "cap_hit": false, + "cap_hit_basis": null, + "at_messages": null, + "exit": { + "exitCode": 0, + "signal": 0, + "t": 3188 + }, + "stream_done": true, + "msgs_streamed": 100, + "events_streamed": 355, + "pty_bytes_total": 40169, + "pty_data_callbacks": 24, + "first_byte_ms": 154, + "session_create_ms": 202, + "stream_start_ms": 1689, + "vmhwm_kb": 237388, + "cg_peak": 199331840, + "drain_max_loop_lag_ms": 3, + "drain_lag_violations": 0, + "drain_ok": true, + "digest": null + } +} \ No newline at end of file diff --git a/bench/results/2026-06-11T0239-805e080-mem100-ink-ink-r1.json b/bench/results/2026-06-11T0239-805e080-mem100-ink-ink-r1.json new file mode 100644 index 00000000000..5d63ce9d8ba --- /dev/null +++ b/bench/results/2026-06-11T0239-805e080-mem100-ink-ink-r1.json @@ -0,0 +1,298 @@ +{ + "meta": { + "cell": "mem100", + "ui": "ink", + "config": "ink", + "mode": "mem", + "rep": 1, + "run_id": "mq8w2quv-fwbn", + "utc": "2026-06-11T02:39:16.087Z", + "sha": "805e08081", + "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": null, + "fixture": { + "path": "/home/daimon/github/worktrees/hermes-agent/lively-thrush/hermes-agent/bench/.cache/fixture-100.ndjson", + "msgs": 100, + "sha256": "0c583ebe8dd97aecb72cc947ae3fe83dc85539c87e8d70d17fb8994117d37a44" + }, + "sample_every": 100, + "mode_params": {}, + "ui_pid": 2719614, + "gw_pid": 2719622, + "cgroup": "/sys/fs/cgroup/user.slice/user-1001.slice/session-7421.scope", + "load_avg_at_start": [ + 0.86, + 0.47, + 0.28 + ], + "instrumented": false + }, + "samples": [ + { + "kind": "periodic", + "t_ms": 26, + "msgs": null, + "events": null, + "pty_bytes": 0, + "pty_writes": 0, + "rss_kb": 32676, + "pss_kb": 13717, + "private_dirty_kb": 6016, + "vmhwm_kb": 32676, + "utime_ticks": 0, + "stime_ticks": 0, + "cg_current": 1160335360, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 1032, + "msgs": null, + "events": null, + "pty_bytes": 6601, + "pty_writes": 9, + "rss_kb": 108088, + "pss_kb": 67295, + "private_dirty_kb": 48824, + "vmhwm_kb": 108088, + "utime_ticks": 27, + "stime_ticks": 2, + "cg_current": 1206792192, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1763, + "msgs": 100, + "events": 355, + "pty_bytes": 6816, + "pty_writes": 11, + "rss_kb": 114620, + "pss_kb": 73807, + "private_dirty_kb": 54696, + "vmhwm_kb": 114620, + "utime_ticks": 31, + "stime_ticks": 2, + "cg_current": 1198886912, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "done", + "t_ms": 1764, + "msgs": 100, + "events": 355, + "pty_bytes": 6816, + "pty_writes": 11, + "rss_kb": 114620, + "pss_kb": 73807, + "private_dirty_kb": 54696, + "vmhwm_kb": 114636, + "utime_ticks": 31, + "stime_ticks": 2, + "cg_current": 1199144960, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 2038, + "msgs": 100, + "events": null, + "pty_bytes": 17703, + "pty_writes": 15, + "rss_kb": 165884, + "pss_kb": 125039, + "private_dirty_kb": 105896, + "vmhwm_kb": 165884, + "utime_ticks": 50, + "stime_ticks": 4, + "cg_current": 1202339840, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 3041, + "msgs": 100, + "events": null, + "pty_bytes": 17748, + "pty_writes": 16, + "rss_kb": 165888, + "pss_kb": 125043, + "private_dirty_kb": 105900, + "vmhwm_kb": 165888, + "utime_ticks": 50, + "stime_ticks": 4, + "cg_current": 1217769472, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "final", + "t_ms": 3055, + "msgs": 100, + "events": 355, + "pty_bytes": 17748, + "pty_writes": 16, + "rss_kb": 165888, + "pss_kb": 125043, + "private_dirty_kb": 105900, + "vmhwm_kb": 165888, + "utime_ticks": 50, + "stime_ticks": 4, + "cg_current": 1217773568, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + } + ], + "events": [ + { + "kind": "rpc", + "method": "config.get", + "t_ms": 201 + }, + { + "kind": "rpc", + "method": "commands.catalog", + "t_ms": 226 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 226 + }, + { + "kind": "rpc", + "method": "setup.status", + "t_ms": 252 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 252 + }, + { + "kind": "rpc", + "method": "session.create", + "t_ms": 252 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 252 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 252 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 252 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 252 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 252 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 252 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1761 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 1761 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1764 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1787 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1812 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1812 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1837 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1862 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1887 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1887 + } + ], + "summary": { + "result": "completed", + "cap_hit": false, + "cap_hit_basis": null, + "at_messages": null, + "exit": { + "exitCode": 0, + "signal": 0, + "t": 3066 + }, + "stream_done": true, + "msgs_streamed": 100, + "events_streamed": 355, + "pty_bytes_total": 17929, + "pty_data_callbacks": 17, + "first_byte_ms": 82, + "session_create_ms": 252, + "stream_start_ms": 1761, + "vmhwm_kb": 165888, + "cg_peak": 2533130240, + "drain_max_loop_lag_ms": 3, + "drain_lag_violations": 0, + "drain_ok": true, + "digest": null + } +} \ No newline at end of file diff --git a/bench/results/2026-06-11T0239-805e080-mem100-opentui-otui-capped-r1.json b/bench/results/2026-06-11T0239-805e080-mem100-opentui-otui-capped-r1.json new file mode 100644 index 00000000000..341169faf00 --- /dev/null +++ b/bench/results/2026-06-11T0239-805e080-mem100-opentui-otui-capped-r1.json @@ -0,0 +1,203 @@ +{ + "meta": { + "cell": "mem100", + "ui": "opentui", + "config": "otui-capped", + "mode": "mem", + "rep": 1, + "run_id": "mq8w2gof-k2hb", + "utc": "2026-06-11T02:39:02.895Z", + "sha": "805e08081", + "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-100.ndjson", + "msgs": 100, + "sha256": "0c583ebe8dd97aecb72cc947ae3fe83dc85539c87e8d70d17fb8994117d37a44" + }, + "sample_every": 100, + "mode_params": {}, + "ui_pid": 2718554, + "gw_pid": 2718568, + "cgroup": "/sys/fs/cgroup/user.slice/user-1001.slice/session-7421.scope", + "load_avg_at_start": [ + 0.92, + 0.46, + 0.27 + ], + "instrumented": false + }, + "samples": [ + { + "kind": "periodic", + "t_ms": 26, + "msgs": null, + "events": null, + "pty_bytes": 0, + "pty_writes": 0, + "rss_kb": 28036, + "pss_kb": 10746, + "private_dirty_kb": 3848, + "vmhwm_kb": 28092, + "utime_ticks": 0, + "stime_ticks": 0, + "cg_current": 1033875456, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 1042, + "msgs": null, + "events": null, + "pty_bytes": 28911, + "pty_writes": 13, + "rss_kb": 105076, + "pss_kb": 63281, + "private_dirty_kb": 48404, + "vmhwm_kb": 107620, + "utime_ticks": 17, + "stime_ticks": 3, + "cg_current": 1035780096, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1695, + "msgs": 100, + "events": 355, + "pty_bytes": 31413, + "pty_writes": 15, + "rss_kb": 109320, + "pss_kb": 67389, + "private_dirty_kb": 52460, + "vmhwm_kb": 109328, + "utime_ticks": 20, + "stime_ticks": 3, + "cg_current": 1014898688, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "done", + "t_ms": 1696, + "msgs": 100, + "events": 355, + "pty_bytes": 31413, + "pty_writes": 15, + "rss_kb": 109336, + "pss_kb": 67405, + "private_dirty_kb": 52476, + "vmhwm_kb": 109336, + "utime_ticks": 20, + "stime_ticks": 3, + "cg_current": 1014898688, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 2048, + "msgs": 100, + "events": null, + "pty_bytes": 35603, + "pty_writes": 19, + "rss_kb": 198096, + "pss_kb": 153988, + "private_dirty_kb": 137660, + "vmhwm_kb": 217796, + "utime_ticks": 74, + "stime_ticks": 8, + "cg_current": 1014849536, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "final", + "t_ms": 2975, + "msgs": 100, + "events": 355, + "pty_bytes": 35675, + "pty_writes": 20, + "rss_kb": 198100, + "pss_kb": 153992, + "private_dirty_kb": 137664, + "vmhwm_kb": 217796, + "utime_ticks": 74, + "stime_ticks": 8, + "cg_current": 1018212352, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 3062, + "msgs": 100, + "events": null, + "pty_bytes": 40010, + "pty_writes": 22, + "rss_kb": 198232, + "pss_kb": 154124, + "private_dirty_kb": 137796, + "vmhwm_kb": 217796, + "utime_ticks": 75, + "stime_ticks": 8, + "cg_current": 1019273216, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + } + ], + "events": [ + { + "kind": "rpc", + "method": "session.create", + "t_ms": 176 + }, + { + "kind": "rpc", + "method": "startup.catalog", + "t_ms": 176 + }, + { + "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": 3181 + }, + "stream_done": true, + "msgs_streamed": 100, + "events_streamed": 355, + "pty_bytes_total": 40130, + "pty_data_callbacks": 24, + "first_byte_ms": 143, + "session_create_ms": 176, + "stream_start_ms": 1694, + "vmhwm_kb": 217796, + "cg_peak": 2533130240, + "drain_max_loop_lag_ms": 2, + "drain_lag_violations": 0, + "drain_ok": true, + "digest": null + } +} \ No newline at end of file diff --git a/bench/results/2026-06-11T0239-805e080-mem300-ink-ink-r0.json b/bench/results/2026-06-11T0239-805e080-mem300-ink-ink-r0.json new file mode 100644 index 00000000000..c462c4c636e --- /dev/null +++ b/bench/results/2026-06-11T0239-805e080-mem300-ink-ink-r0.json @@ -0,0 +1,350 @@ +{ + "meta": { + "cell": "mem300", + "ui": "ink", + "config": "ink", + "mode": "mem", + "rep": 0, + "run_id": "mq8w3j4k-qlhf", + "utc": "2026-06-11T02:39:52.725Z", + "sha": "805e08081", + "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": 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": 2721500, + "gw_pid": 2721508, + "cgroup": "/sys/fs/cgroup/user.slice/user-1001.slice/session-7421.scope", + "load_avg_at_start": [ + 0.93, + 0.54, + 0.31 + ], + "instrumented": false + }, + "samples": [ + { + "kind": "periodic", + "t_ms": 27, + "msgs": null, + "events": null, + "pty_bytes": 0, + "pty_writes": 0, + "rss_kb": 28044, + "pss_kb": 10749, + "private_dirty_kb": 3852, + "vmhwm_kb": 28140, + "utime_ticks": 0, + "stime_ticks": 0, + "cg_current": 1136812032, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 1033, + "msgs": null, + "events": null, + "pty_bytes": 6607, + "pty_writes": 11, + "rss_kb": 108404, + "pss_kb": 69415, + "private_dirty_kb": 49596, + "vmhwm_kb": 108404, + "utime_ticks": 24, + "stime_ticks": 3, + "cg_current": 1137999872, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1761, + "msgs": 100, + "events": 355, + "pty_bytes": 14925, + "pty_writes": 16, + "rss_kb": 125260, + "pss_kb": 86037, + "private_dirty_kb": 65408, + "vmhwm_kb": 125280, + "utime_ticks": 33, + "stime_ticks": 3, + "cg_current": 1153376256, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1812, + "msgs": 200, + "events": 738, + "pty_bytes": 18720, + "pty_writes": 17, + "rss_kb": 152184, + "pss_kb": 112940, + "private_dirty_kb": 92332, + "vmhwm_kb": 152196, + "utime_ticks": 42, + "stime_ticks": 4, + "cg_current": 1153638400, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1840, + "msgs": 300, + "events": 1051, + "pty_bytes": 22646, + "pty_writes": 18, + "rss_kb": 168364, + "pss_kb": 129058, + "private_dirty_kb": 108388, + "vmhwm_kb": 168372, + "utime_ticks": 48, + "stime_ticks": 5, + "cg_current": 1153380352, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "done", + "t_ms": 1842, + "msgs": 300, + "events": 1051, + "pty_bytes": 22646, + "pty_writes": 18, + "rss_kb": 168392, + "pss_kb": 129086, + "private_dirty_kb": 108416, + "vmhwm_kb": 168396, + "utime_ticks": 48, + "stime_ticks": 5, + "cg_current": 1153380352, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 2039, + "msgs": 300, + "events": null, + "pty_bytes": 34357, + "pty_writes": 22, + "rss_kb": 176788, + "pss_kb": 137482, + "private_dirty_kb": 116812, + "vmhwm_kb": 185212, + "utime_ticks": 62, + "stime_ticks": 6, + "cg_current": 1154236416, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "final", + "t_ms": 3031, + "msgs": 300, + "events": 1051, + "pty_bytes": 34402, + "pty_writes": 23, + "rss_kb": 176804, + "pss_kb": 137498, + "private_dirty_kb": 116828, + "vmhwm_kb": 185212, + "utime_ticks": 62, + "stime_ticks": 6, + "cg_current": 1156292608, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + } + ], + "events": [ + { + "kind": "rpc", + "method": "config.get", + "t_ms": 202 + }, + { + "kind": "rpc", + "method": "commands.catalog", + "t_ms": 202 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 202 + }, + { + "kind": "rpc", + "method": "setup.status", + "t_ms": 228 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 228 + }, + { + "kind": "rpc", + "method": "session.create", + "t_ms": 228 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 228 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 228 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 228 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 228 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 228 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 228 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1735 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 1760 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1761 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1761 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1785 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1785 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1812 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1812 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1837 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1842 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1861 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1886 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1912 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1912 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1912 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1937 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1937 + } + ], + "summary": { + "result": "completed", + "cap_hit": false, + "cap_hit_basis": null, + "at_messages": null, + "exit": { + "exitCode": 0, + "signal": 0, + "t": 3043 + }, + "stream_done": true, + "msgs_streamed": 300, + "events_streamed": 1051, + "pty_bytes_total": 34583, + "pty_data_callbacks": 26, + "first_byte_ms": 80, + "session_create_ms": 228, + "stream_start_ms": 1735, + "vmhwm_kb": 185212, + "cg_peak": 2533130240, + "drain_max_loop_lag_ms": 4, + "drain_lag_violations": 0, + "drain_ok": true, + "digest": null + } +} \ No newline at end of file diff --git a/bench/results/2026-06-11T0239-805e080-mem300-opentui-otui-capped-r0.json b/bench/results/2026-06-11T0239-805e080-mem300-opentui-otui-capped-r0.json new file mode 100644 index 00000000000..224cc5af733 --- /dev/null +++ b/bench/results/2026-06-11T0239-805e080-mem300-opentui-otui-capped-r0.json @@ -0,0 +1,237 @@ +{ + "meta": { + "cell": "mem300", + "ui": "opentui", + "config": "otui-capped", + "mode": "mem", + "rep": 0, + "run_id": "mq8w3131-kaxy", + "utc": "2026-06-11T02:39:29.341Z", + "sha": "805e08081", + "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-300.ndjson", + "msgs": 300, + "sha256": "ac81e975c299da7d50cfda7fc0fee33c356bd31a4e17a7f0f8e49905e205051a" + }, + "sample_every": 100, + "mode_params": {}, + "ui_pid": 2719979, + "gw_pid": 2719989, + "cgroup": "/sys/fs/cgroup/user.slice/user-1001.slice/user@1001.service/app.slice/hermes-bench-mq8w3131-kaxy.scope", + "load_avg_at_start": [ + 1.22, + 0.56, + 0.31 + ], + "instrumented": false + }, + "samples": [ + { + "kind": "periodic", + "t_ms": 55, + "msgs": null, + "events": null, + "pty_bytes": 0, + "pty_writes": 0, + "rss_kb": 58668, + "pss_kb": 32327, + "private_dirty_kb": 21032, + "vmhwm_kb": 58768, + "utime_ticks": 3, + "stime_ticks": 0, + "cg_current": 23511040, + "cg_peak": 23511040, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 1061, + "msgs": null, + "events": null, + "pty_bytes": 28911, + "pty_writes": 12, + "rss_kb": 104880, + "pss_kb": 64785, + "private_dirty_kb": 48132, + "vmhwm_kb": 107724, + "utime_ticks": 19, + "stime_ticks": 2, + "cg_current": 61894656, + "cg_peak": 66220032, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1717, + "msgs": 100, + "events": 355, + "pty_bytes": 31413, + "pty_writes": 14, + "rss_kb": 113164, + "pss_kb": 72845, + "private_dirty_kb": 56160, + "vmhwm_kb": 113172, + "utime_ticks": 26, + "stime_ticks": 2, + "cg_current": 73666560, + "cg_peak": 74371072, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1718, + "msgs": 200, + "events": 738, + "pty_bytes": 31413, + "pty_writes": 14, + "rss_kb": 113172, + "pss_kb": 72853, + "private_dirty_kb": 56168, + "vmhwm_kb": 113192, + "utime_ticks": 26, + "stime_ticks": 2, + "cg_current": 73666560, + "cg_peak": 74371072, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1718, + "msgs": 300, + "events": 1051, + "pty_bytes": 31413, + "pty_writes": 14, + "rss_kb": 113192, + "pss_kb": 72873, + "private_dirty_kb": 56188, + "vmhwm_kb": 113204, + "utime_ticks": 26, + "stime_ticks": 2, + "cg_current": 73666560, + "cg_peak": 74371072, + "cg_oom_kill": 0 + }, + { + "kind": "done", + "t_ms": 1722, + "msgs": 300, + "events": 1051, + "pty_bytes": 31413, + "pty_writes": 14, + "rss_kb": 113548, + "pss_kb": 73229, + "private_dirty_kb": 56544, + "vmhwm_kb": 113548, + "utime_ticks": 27, + "stime_ticks": 2, + "cg_current": 74190848, + "cg_peak": 74371072, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 2072, + "msgs": 300, + "events": null, + "pty_bytes": 32663, + "pty_writes": 15, + "rss_kb": 223624, + "pss_kb": 181562, + "private_dirty_kb": 163612, + "vmhwm_kb": 223624, + "utime_ticks": 81, + "stime_ticks": 6, + "cg_current": 186716160, + "cg_peak": 187076608, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 3085, + "msgs": 300, + "events": null, + "pty_bytes": 35634, + "pty_writes": 18, + "rss_kb": 253860, + "pss_kb": 211580, + "private_dirty_kb": 193408, + "vmhwm_kb": 275620, + "utime_ticks": 113, + "stime_ticks": 9, + "cg_current": 217055232, + "cg_peak": 241025024, + "cg_oom_kill": 0 + }, + { + "kind": "final", + "t_ms": 3091, + "msgs": 300, + "events": 1051, + "pty_bytes": 35634, + "pty_writes": 18, + "rss_kb": 253860, + "pss_kb": 211580, + "private_dirty_kb": 193408, + "vmhwm_kb": 275620, + "utime_ticks": 113, + "stime_ticks": 9, + "cg_current": 217055232, + "cg_peak": 241025024, + "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": 3351 + }, + "stream_done": true, + "msgs_streamed": 300, + "events_streamed": 1051, + "pty_bytes_total": 40445, + "pty_data_callbacks": 23, + "first_byte_ms": 156, + "session_create_ms": 201, + "stream_start_ms": 1690, + "vmhwm_kb": 275620, + "cg_peak": 241025024, + "drain_max_loop_lag_ms": 7, + "drain_lag_violations": 0, + "drain_ok": true, + "digest": null + } +} \ No newline at end of file diff --git a/bench/results/2026-06-11T0240-805e080-mem2000-opentui-otui-capped-r0.json b/bench/results/2026-06-11T0240-805e080-mem2000-opentui-otui-capped-r0.json new file mode 100644 index 00000000000..556798e41d2 --- /dev/null +++ b/bench/results/2026-06-11T0240-805e080-mem2000-opentui-otui-capped-r0.json @@ -0,0 +1,594 @@ +{ + "meta": { + "cell": "mem2000", + "ui": "opentui", + "config": "otui-capped", + "mode": "mem", + "rep": 0, + "run_id": "mq8w4dsy-5lva", + "utc": "2026-06-11T02:40:32.482Z", + "sha": "805e08081", + "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-2000.ndjson", + "msgs": 2000, + "sha256": "645b9ee4fdaccee45172fcec8af4a0b01a5f9aeca56ce45d8e84c4276472f99c" + }, + "sample_every": 100, + "mode_params": {}, + "ui_pid": 2723361, + "gw_pid": 2723370, + "cgroup": "/sys/fs/cgroup/user.slice/user-1001.slice/user@1001.service/app.slice/hermes-bench-mq8w4dsy-5lva.scope", + "load_avg_at_start": [ + 0.7, + 0.53, + 0.31 + ], + "instrumented": false + }, + "samples": [ + { + "kind": "periodic", + "t_ms": 53, + "msgs": null, + "events": null, + "pty_bytes": 0, + "pty_writes": 0, + "rss_kb": 57536, + "pss_kb": 31234, + "private_dirty_kb": 20000, + "vmhwm_kb": 57544, + "utime_ticks": 2, + "stime_ticks": 0, + "cg_current": 22638592, + "cg_peak": 22638592, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 1060, + "msgs": null, + "events": null, + "pty_bytes": 28911, + "pty_writes": 13, + "rss_kb": 105100, + "pss_kb": 64917, + "private_dirty_kb": 48260, + "vmhwm_kb": 107852, + "utime_ticks": 18, + "stime_ticks": 2, + "cg_current": 62025728, + "cg_peak": 66514944, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1716, + "msgs": 100, + "events": 355, + "pty_bytes": 31413, + "pty_writes": 16, + "rss_kb": 117868, + "pss_kb": 77552, + "private_dirty_kb": 60900, + "vmhwm_kb": 117872, + "utime_ticks": 24, + "stime_ticks": 2, + "cg_current": 83451904, + "cg_peak": 83705856, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1717, + "msgs": 200, + "events": 738, + "pty_bytes": 31413, + "pty_writes": 16, + "rss_kb": 117904, + "pss_kb": 77588, + "private_dirty_kb": 60936, + "vmhwm_kb": 118052, + "utime_ticks": 24, + "stime_ticks": 3, + "cg_current": 83714048, + "cg_peak": 83714048, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1718, + "msgs": 300, + "events": 1051, + "pty_bytes": 31413, + "pty_writes": 16, + "rss_kb": 118060, + "pss_kb": 77653, + "private_dirty_kb": 60964, + "vmhwm_kb": 118064, + "utime_ticks": 24, + "stime_ticks": 3, + "cg_current": 83714048, + "cg_peak": 83714048, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1718, + "msgs": 400, + "events": 1432, + "pty_bytes": 31413, + "pty_writes": 16, + "rss_kb": 118068, + "pss_kb": 77661, + "private_dirty_kb": 60972, + "vmhwm_kb": 118068, + "utime_ticks": 24, + "stime_ticks": 3, + "cg_current": 83714048, + "cg_peak": 83714048, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1718, + "msgs": 501, + "events": 1792, + "pty_bytes": 31413, + "pty_writes": 16, + "rss_kb": 118068, + "pss_kb": 77661, + "private_dirty_kb": 60972, + "vmhwm_kb": 118068, + "utime_ticks": 24, + "stime_ticks": 3, + "cg_current": 83714048, + "cg_peak": 83714048, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 2070, + "msgs": null, + "events": null, + "pty_bytes": 31413, + "pty_writes": 16, + "rss_kb": 245440, + "pss_kb": 203290, + "private_dirty_kb": 185400, + "vmhwm_kb": 245448, + "utime_ticks": 80, + "stime_ticks": 8, + "cg_current": 214032384, + "cg_peak": 214032384, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2296, + "msgs": 601, + "events": 2154, + "pty_bytes": 34031, + "pty_writes": 18, + "rss_kb": 266236, + "pss_kb": 223947, + "private_dirty_kb": 205944, + "vmhwm_kb": 266260, + "utime_ticks": 108, + "stime_ticks": 9, + "cg_current": 236625920, + "cg_peak": 236625920, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2473, + "msgs": 701, + "events": 2496, + "pty_bytes": 36477, + "pty_writes": 20, + "rss_kb": 303400, + "pss_kb": 261106, + "private_dirty_kb": 242980, + "vmhwm_kb": 303656, + "utime_ticks": 134, + "stime_ticks": 11, + "cg_current": 276348928, + "cg_peak": 276348928, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2478, + "msgs": 801, + "events": 2857, + "pty_bytes": 36477, + "pty_writes": 20, + "rss_kb": 304032, + "pss_kb": 261738, + "private_dirty_kb": 243612, + "vmhwm_kb": 304080, + "utime_ticks": 135, + "stime_ticks": 11, + "cg_current": 276434944, + "cg_peak": 276439040, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2480, + "msgs": 901, + "events": 3245, + "pty_bytes": 36477, + "pty_writes": 20, + "rss_kb": 304240, + "pss_kb": 261946, + "private_dirty_kb": 243820, + "vmhwm_kb": 304292, + "utime_ticks": 136, + "stime_ticks": 11, + "cg_current": 276791296, + "cg_peak": 276791296, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2482, + "msgs": 1001, + "events": 3588, + "pty_bytes": 36477, + "pty_writes": 20, + "rss_kb": 304444, + "pss_kb": 262150, + "private_dirty_kb": 244024, + "vmhwm_kb": 304456, + "utime_ticks": 136, + "stime_ticks": 11, + "cg_current": 277053440, + "cg_peak": 277053440, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2483, + "msgs": 1101, + "events": 3928, + "pty_bytes": 36477, + "pty_writes": 20, + "rss_kb": 304532, + "pss_kb": 262238, + "private_dirty_kb": 244112, + "vmhwm_kb": 304540, + "utime_ticks": 136, + "stime_ticks": 11, + "cg_current": 277053440, + "cg_peak": 277053440, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2484, + "msgs": 1201, + "events": 4298, + "pty_bytes": 36477, + "pty_writes": 20, + "rss_kb": 304604, + "pss_kb": 262310, + "private_dirty_kb": 244184, + "vmhwm_kb": 304652, + "utime_ticks": 136, + "stime_ticks": 11, + "cg_current": 277315584, + "cg_peak": 277315584, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2875, + "msgs": 1300, + "events": 4659, + "pty_bytes": 36477, + "pty_writes": 20, + "rss_kb": 467496, + "pss_kb": 425091, + "private_dirty_kb": 406952, + "vmhwm_kb": 467548, + "utime_ticks": 221, + "stime_ticks": 19, + "cg_current": 447004672, + "cg_peak": 447004672, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 3074, + "msgs": null, + "events": null, + "pty_bytes": 36477, + "pty_writes": 20, + "rss_kb": 495356, + "pss_kb": 452951, + "private_dirty_kb": 434812, + "vmhwm_kb": 495356, + "utime_ticks": 241, + "stime_ticks": 20, + "cg_current": 474898432, + "cg_peak": 474898432, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 3451, + "msgs": 1400, + "events": 5011, + "pty_bytes": 41308, + "pty_writes": 23, + "rss_kb": 493104, + "pss_kb": 450699, + "private_dirty_kb": 432560, + "vmhwm_kb": 517744, + "utime_ticks": 283, + "stime_ticks": 21, + "cg_current": 473620480, + "cg_peak": 499621888, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 3455, + "msgs": 1500, + "events": 5384, + "pty_bytes": 41308, + "pty_writes": 23, + "rss_kb": 493212, + "pss_kb": 450807, + "private_dirty_kb": 432668, + "vmhwm_kb": 517744, + "utime_ticks": 284, + "stime_ticks": 21, + "cg_current": 473882624, + "cg_peak": 499621888, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 3458, + "msgs": 1600, + "events": 5730, + "pty_bytes": 41308, + "pty_writes": 23, + "rss_kb": 493512, + "pss_kb": 451107, + "private_dirty_kb": 432968, + "vmhwm_kb": 517744, + "utime_ticks": 284, + "stime_ticks": 21, + "cg_current": 474144768, + "cg_peak": 499621888, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 3460, + "msgs": 1700, + "events": 6100, + "pty_bytes": 41308, + "pty_writes": 23, + "rss_kb": 493896, + "pss_kb": 451491, + "private_dirty_kb": 433352, + "vmhwm_kb": 517744, + "utime_ticks": 284, + "stime_ticks": 21, + "cg_current": 474501120, + "cg_peak": 499621888, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 3463, + "msgs": 1800, + "events": 6455, + "pty_bytes": 41308, + "pty_writes": 23, + "rss_kb": 494196, + "pss_kb": 451791, + "private_dirty_kb": 433652, + "vmhwm_kb": 517744, + "utime_ticks": 284, + "stime_ticks": 21, + "cg_current": 475607040, + "cg_peak": 499621888, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 3468, + "msgs": 1900, + "events": 6838, + "pty_bytes": 41308, + "pty_writes": 23, + "rss_kb": 495084, + "pss_kb": 452679, + "private_dirty_kb": 434540, + "vmhwm_kb": 517744, + "utime_ticks": 285, + "stime_ticks": 21, + "cg_current": 475480064, + "cg_peak": 499621888, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 3471, + "msgs": 2000, + "events": 7151, + "pty_bytes": 41308, + "pty_writes": 23, + "rss_kb": 495204, + "pss_kb": 452799, + "private_dirty_kb": 434660, + "vmhwm_kb": 517744, + "utime_ticks": 285, + "stime_ticks": 21, + "cg_current": 475742208, + "cg_peak": 499621888, + "cg_oom_kill": 0 + }, + { + "kind": "done", + "t_ms": 3473, + "msgs": 2000, + "events": 7151, + "pty_bytes": 41308, + "pty_writes": 23, + "rss_kb": 495484, + "pss_kb": 453079, + "private_dirty_kb": 434940, + "vmhwm_kb": 517744, + "utime_ticks": 285, + "stime_ticks": 21, + "cg_current": 476004352, + "cg_peak": 499621888, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 4080, + "msgs": 2000, + "events": null, + "pty_bytes": 41308, + "pty_writes": 23, + "rss_kb": 667904, + "pss_kb": 625499, + "private_dirty_kb": 607360, + "vmhwm_kb": 667904, + "utime_ticks": 357, + "stime_ticks": 28, + "cg_current": 655605760, + "cg_peak": 655605760, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 5083, + "msgs": 2000, + "events": null, + "pty_bytes": 48721, + "pty_writes": 28, + "rss_kb": 682844, + "pss_kb": 640438, + "private_dirty_kb": 622300, + "vmhwm_kb": 682844, + "utime_ticks": 438, + "stime_ticks": 30, + "cg_current": 670806016, + "cg_peak": 671670272, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 6092, + "msgs": 2000, + "events": null, + "pty_bytes": 48793, + "pty_writes": 29, + "rss_kb": 682852, + "pss_kb": 640446, + "private_dirty_kb": 622308, + "vmhwm_kb": 682852, + "utime_ticks": 439, + "stime_ticks": 30, + "cg_current": 670814208, + "cg_peak": 671670272, + "cg_oom_kill": 0 + }, + { + "kind": "final", + "t_ms": 6281, + "msgs": 2000, + "events": 7151, + "pty_bytes": 48793, + "pty_writes": 29, + "rss_kb": 682852, + "pss_kb": 640446, + "private_dirty_kb": 622308, + "vmhwm_kb": 682852, + "utime_ticks": 439, + "stime_ticks": 30, + "cg_current": 670814208, + "cg_peak": 671670272, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 7098, + "msgs": 2000, + "events": null, + "pty_bytes": 53768, + "pty_writes": 31, + "rss_kb": 540452, + "pss_kb": 498047, + "private_dirty_kb": 479908, + "vmhwm_kb": 682396, + "utime_ticks": 527, + "stime_ticks": 44, + "cg_current": 525074432, + "cg_peak": 671981568, + "cg_oom_kill": 0 + } + ], + "events": [ + { + "kind": "rpc", + "method": "session.create", + "t_ms": 180 + }, + { + "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": 7221 + }, + "stream_done": true, + "msgs_streamed": 2000, + "events_streamed": 7151, + "pty_bytes_total": 53888, + "pty_data_callbacks": 33, + "first_byte_ms": 149, + "session_create_ms": 180, + "stream_start_ms": 1689, + "vmhwm_kb": 682396, + "cg_peak": 671981568, + "drain_max_loop_lag_ms": 25, + "drain_lag_violations": 2, + "drain_ok": false, + "digest": null + } +} \ No newline at end of file diff --git a/bench/results/2026-06-11T0240-805e080-mem300-ink-ink-r1.json b/bench/results/2026-06-11T0240-805e080-mem300-ink-ink-r1.json new file mode 100644 index 00000000000..f58d43303a1 --- /dev/null +++ b/bench/results/2026-06-11T0240-805e080-mem300-ink-ink-r1.json @@ -0,0 +1,367 @@ +{ + "meta": { + "cell": "mem300", + "ui": "ink", + "config": "ink", + "mode": "mem", + "rep": 1, + "run_id": "mq8w43l7-w52o", + "utc": "2026-06-11T02:40:19.243Z", + "sha": "805e08081", + "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": 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": 2722309, + "gw_pid": 2722318, + "cgroup": "/sys/fs/cgroup/user.slice/user-1001.slice/session-7421.scope", + "load_avg_at_start": [ + 0.71, + 0.52, + 0.31 + ], + "instrumented": false + }, + "samples": [ + { + "kind": "periodic", + "t_ms": 27, + "msgs": null, + "events": null, + "pty_bytes": 0, + "pty_writes": 0, + "rss_kb": 37872, + "pss_kb": 16618, + "private_dirty_kb": 7756, + "vmhwm_kb": 38376, + "utime_ticks": 1, + "stime_ticks": 0, + "cg_current": 1352650752, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 1033, + "msgs": null, + "events": null, + "pty_bytes": 6607, + "pty_writes": 12, + "rss_kb": 108008, + "pss_kb": 68820, + "private_dirty_kb": 48812, + "vmhwm_kb": 108008, + "utime_ticks": 27, + "stime_ticks": 2, + "cg_current": 1357225984, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1760, + "msgs": 100, + "events": 355, + "pty_bytes": 10920, + "pty_writes": 15, + "rss_kb": 120892, + "pss_kb": 81683, + "private_dirty_kb": 61696, + "vmhwm_kb": 121624, + "utime_ticks": 31, + "stime_ticks": 3, + "cg_current": 1364193280, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1835, + "msgs": 200, + "events": 738, + "pty_bytes": 18723, + "pty_writes": 17, + "rss_kb": 147400, + "pss_kb": 108117, + "private_dirty_kb": 87480, + "vmhwm_kb": 147628, + "utime_ticks": 44, + "stime_ticks": 4, + "cg_current": 1364307968, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1860, + "msgs": 300, + "events": 1051, + "pty_bytes": 22649, + "pty_writes": 18, + "rss_kb": 166820, + "pss_kb": 127505, + "private_dirty_kb": 106836, + "vmhwm_kb": 166836, + "utime_ticks": 49, + "stime_ticks": 4, + "cg_current": 1364328448, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "done", + "t_ms": 1862, + "msgs": 300, + "events": 1051, + "pty_bytes": 22649, + "pty_writes": 18, + "rss_kb": 166836, + "pss_kb": 127521, + "private_dirty_kb": 106852, + "vmhwm_kb": 166836, + "utime_ticks": 50, + "stime_ticks": 4, + "cg_current": 1364328448, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 2038, + "msgs": 300, + "events": null, + "pty_bytes": 34366, + "pty_writes": 22, + "rss_kb": 174368, + "pss_kb": 135053, + "private_dirty_kb": 114384, + "vmhwm_kb": 184316, + "utime_ticks": 63, + "stime_ticks": 5, + "cg_current": 1364586496, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 3040, + "msgs": 300, + "events": null, + "pty_bytes": 34411, + "pty_writes": 23, + "rss_kb": 174380, + "pss_kb": 135065, + "private_dirty_kb": 114396, + "vmhwm_kb": 184316, + "utime_ticks": 64, + "stime_ticks": 5, + "cg_current": 1390522368, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "final", + "t_ms": 3050, + "msgs": 300, + "events": 1051, + "pty_bytes": 34411, + "pty_writes": 23, + "rss_kb": 174380, + "pss_kb": 135065, + "private_dirty_kb": 114396, + "vmhwm_kb": 184316, + "utime_ticks": 64, + "stime_ticks": 5, + "cg_current": 1390280704, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + } + ], + "events": [ + { + "kind": "rpc", + "method": "config.get", + "t_ms": 202 + }, + { + "kind": "rpc", + "method": "commands.catalog", + "t_ms": 227 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 227 + }, + { + "kind": "rpc", + "method": "setup.status", + "t_ms": 227 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 227 + }, + { + "kind": "rpc", + "method": "session.create", + "t_ms": 252 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 252 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 252 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 252 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 252 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 252 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 252 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1758 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 1758 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1783 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1783 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1783 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1808 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1835 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1835 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1859 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1885 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1885 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1910 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1936 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1936 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1936 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1961 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1961 + } + ], + "summary": { + "result": "completed", + "cap_hit": false, + "cap_hit_basis": null, + "at_messages": null, + "exit": { + "exitCode": 0, + "signal": 0, + "t": 3062 + }, + "stream_done": true, + "msgs_streamed": 300, + "events_streamed": 1051, + "pty_bytes_total": 34592, + "pty_data_callbacks": 31, + "first_byte_ms": 84, + "session_create_ms": 252, + "stream_start_ms": 1733, + "vmhwm_kb": 184316, + "cg_peak": 2533130240, + "drain_max_loop_lag_ms": 4, + "drain_lag_violations": 0, + "drain_ok": true, + "digest": null + } +} \ No newline at end of file diff --git a/bench/results/2026-06-11T0240-805e080-mem300-opentui-otui-capped-r1.json b/bench/results/2026-06-11T0240-805e080-mem300-opentui-otui-capped-r1.json new file mode 100644 index 00000000000..4384658973d --- /dev/null +++ b/bench/results/2026-06-11T0240-805e080-mem300-opentui-otui-capped-r1.json @@ -0,0 +1,237 @@ +{ + "meta": { + "cell": "mem300", + "ui": "opentui", + "config": "otui-capped", + "mode": "mem", + "rep": 1, + "run_id": "mq8w3tb9-pulq", + "utc": "2026-06-11T02:40:05.925Z", + "sha": "805e08081", + "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-300.ndjson", + "msgs": 300, + "sha256": "ac81e975c299da7d50cfda7fc0fee33c356bd31a4e17a7f0f8e49905e205051a" + }, + "sample_every": 100, + "mode_params": {}, + "ui_pid": 2721819, + "gw_pid": 2721830, + "cgroup": "/sys/fs/cgroup/user.slice/user-1001.slice/session-7421.scope", + "load_avg_at_start": [ + 0.72, + 0.52, + 0.3 + ], + "instrumented": false + }, + "samples": [ + { + "kind": "periodic", + "t_ms": 27, + "msgs": null, + "events": null, + "pty_bytes": 0, + "pty_writes": 0, + "rss_kb": 34100, + "pss_kb": 14934, + "private_dirty_kb": 7104, + "vmhwm_kb": 34116, + "utime_ticks": 1, + "stime_ticks": 0, + "cg_current": 1135128576, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 1032, + "msgs": null, + "events": null, + "pty_bytes": 28911, + "pty_writes": 11, + "rss_kb": 105200, + "pss_kb": 65027, + "private_dirty_kb": 48408, + "vmhwm_kb": 107832, + "utime_ticks": 18, + "stime_ticks": 2, + "cg_current": 1162108928, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1686, + "msgs": 100, + "events": 355, + "pty_bytes": 31413, + "pty_writes": 13, + "rss_kb": 111760, + "pss_kb": 71486, + "private_dirty_kb": 54840, + "vmhwm_kb": 111784, + "utime_ticks": 21, + "stime_ticks": 2, + "cg_current": 1221275648, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1707, + "msgs": 200, + "events": 738, + "pty_bytes": 31413, + "pty_writes": 13, + "rss_kb": 114276, + "pss_kb": 73912, + "private_dirty_kb": 57228, + "vmhwm_kb": 114376, + "utime_ticks": 25, + "stime_ticks": 2, + "cg_current": 1221947392, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1709, + "msgs": 300, + "events": 1051, + "pty_bytes": 31413, + "pty_writes": 13, + "rss_kb": 114396, + "pss_kb": 74032, + "private_dirty_kb": 57348, + "vmhwm_kb": 114400, + "utime_ticks": 25, + "stime_ticks": 2, + "cg_current": 1221947392, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "done", + "t_ms": 1709, + "msgs": 300, + "events": 1051, + "pty_bytes": 31413, + "pty_writes": 13, + "rss_kb": 114464, + "pss_kb": 74100, + "private_dirty_kb": 57416, + "vmhwm_kb": 114472, + "utime_ticks": 25, + "stime_ticks": 2, + "cg_current": 1221947392, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 2038, + "msgs": 300, + "events": null, + "pty_bytes": 31413, + "pty_writes": 13, + "rss_kb": 222156, + "pss_kb": 180049, + "private_dirty_kb": 162100, + "vmhwm_kb": 222156, + "utime_ticks": 76, + "stime_ticks": 6, + "cg_current": 1229266944, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "final", + "t_ms": 3043, + "msgs": 300, + "events": 1051, + "pty_bytes": 35634, + "pty_writes": 17, + "rss_kb": 249196, + "pss_kb": 206870, + "private_dirty_kb": 188700, + "vmhwm_kb": 273600, + "utime_ticks": 110, + "stime_ticks": 9, + "cg_current": 1283567616, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 3045, + "msgs": 300, + "events": null, + "pty_bytes": 35634, + "pty_writes": 17, + "rss_kb": 249216, + "pss_kb": 206890, + "private_dirty_kb": 188720, + "vmhwm_kb": 273600, + "utime_ticks": 110, + "stime_ticks": 9, + "cg_current": 1285402624, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + } + ], + "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": 3302 + }, + "stream_done": true, + "msgs_streamed": 300, + "events_streamed": 1051, + "pty_bytes_total": 40445, + "pty_data_callbacks": 22, + "first_byte_ms": 141, + "session_create_ms": 176, + "stream_start_ms": 1682, + "vmhwm_kb": 273600, + "cg_peak": 2533130240, + "drain_max_loop_lag_ms": 3, + "drain_lag_violations": 0, + "drain_ok": true, + "digest": null + } +} \ No newline at end of file diff --git a/bench/results/2026-06-11T0241-448e6ee-mem2000-ink-ink-r0.json b/bench/results/2026-06-11T0241-448e6ee-mem2000-ink-ink-r0.json new file mode 100644 index 00000000000..8638760b187 --- /dev/null +++ b/bench/results/2026-06-11T0241-448e6ee-mem2000-ink-ink-r0.json @@ -0,0 +1,1001 @@ +{ + "meta": { + "cell": "mem2000", + "ui": "ink", + "config": "ink", + "mode": "mem", + "rep": 0, + "run_id": "mq8w52oy-3awi", + "utc": "2026-06-11T02:41:04.738Z", + "sha": "805e08081", + "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": null, + "fixture": { + "path": "/home/daimon/github/worktrees/hermes-agent/lively-thrush/hermes-agent/bench/.cache/fixture-2000.ndjson", + "msgs": 2000, + "sha256": "645b9ee4fdaccee45172fcec8af4a0b01a5f9aeca56ce45d8e84c4276472f99c" + }, + "sample_every": 100, + "mode_params": {}, + "ui_pid": 2724979, + "gw_pid": 2724987, + "cgroup": "/sys/fs/cgroup/user.slice/user-1001.slice/user@1001.service/app.slice/hermes-bench-mq8w52oy-3awi.scope", + "load_avg_at_start": [ + 1, + 0.63, + 0.36 + ], + "instrumented": false + }, + "samples": [ + { + "kind": "periodic", + "t_ms": 54, + "msgs": null, + "events": null, + "pty_bytes": 0, + "pty_writes": 0, + "rss_kb": 57488, + "pss_kb": 31347, + "private_dirty_kb": 20056, + "vmhwm_kb": 57520, + "utime_ticks": 2, + "stime_ticks": 1, + "cg_current": 22679552, + "cg_peak": 22880256, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 1066, + "msgs": null, + "events": null, + "pty_bytes": 6601, + "pty_writes": 11, + "rss_kb": 110056, + "pss_kb": 70877, + "private_dirty_kb": 50868, + "vmhwm_kb": 110056, + "utime_ticks": 25, + "stime_ticks": 3, + "cg_current": 64974848, + "cg_peak": 66052096, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1796, + "msgs": 100, + "events": 355, + "pty_bytes": 15096, + "pty_writes": 16, + "rss_kb": 130344, + "pss_kb": 91091, + "private_dirty_kb": 70432, + "vmhwm_kb": 130352, + "utime_ticks": 36, + "stime_ticks": 4, + "cg_current": 91930624, + "cg_peak": 91930624, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1847, + "msgs": 200, + "events": 738, + "pty_bytes": 18661, + "pty_writes": 18, + "rss_kb": 169248, + "pss_kb": 129973, + "private_dirty_kb": 109336, + "vmhwm_kb": 171988, + "utime_ticks": 44, + "stime_ticks": 5, + "cg_current": 136343552, + "cg_peak": 136343552, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1871, + "msgs": 300, + "events": 1051, + "pty_bytes": 22450, + "pty_writes": 19, + "rss_kb": 178832, + "pss_kb": 139525, + "private_dirty_kb": 118856, + "vmhwm_kb": 178832, + "utime_ticks": 49, + "stime_ticks": 5, + "cg_current": 143958016, + "cg_peak": 144216064, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1921, + "msgs": 400, + "events": 1432, + "pty_bytes": 29844, + "pty_writes": 21, + "rss_kb": 183480, + "pss_kb": 144173, + "private_dirty_kb": 123504, + "vmhwm_kb": 195076, + "utime_ticks": 58, + "stime_ticks": 6, + "cg_current": 149327872, + "cg_peak": 161316864, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1971, + "msgs": 501, + "events": 1792, + "pty_bytes": 36749, + "pty_writes": 23, + "rss_kb": 187908, + "pss_kb": 148601, + "private_dirty_kb": 127932, + "vmhwm_kb": 195076, + "utime_ticks": 67, + "stime_ticks": 6, + "cg_current": 153915392, + "cg_peak": 161316864, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2021, + "msgs": 601, + "events": 2154, + "pty_bytes": 44468, + "pty_writes": 26, + "rss_kb": 190132, + "pss_kb": 150793, + "private_dirty_kb": 130156, + "vmhwm_kb": 195076, + "utime_ticks": 75, + "stime_ticks": 6, + "cg_current": 157167616, + "cg_peak": 161316864, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2046, + "msgs": 701, + "events": 2496, + "pty_bytes": 47060, + "pty_writes": 28, + "rss_kb": 190536, + "pss_kb": 151197, + "private_dirty_kb": 130560, + "vmhwm_kb": 195076, + "utime_ticks": 79, + "stime_ticks": 6, + "cg_current": 157892608, + "cg_peak": 161316864, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 2072, + "msgs": null, + "events": null, + "pty_bytes": 53941, + "pty_writes": 30, + "rss_kb": 194612, + "pss_kb": 155273, + "private_dirty_kb": 134636, + "vmhwm_kb": 195076, + "utime_ticks": 84, + "stime_ticks": 6, + "cg_current": 162430976, + "cg_peak": 162430976, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2099, + "msgs": 801, + "events": 2857, + "pty_bytes": 57900, + "pty_writes": 31, + "rss_kb": 196208, + "pss_kb": 156864, + "private_dirty_kb": 136232, + "vmhwm_kb": 196212, + "utime_ticks": 87, + "stime_ticks": 6, + "cg_current": 163344384, + "cg_peak": 163602432, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2124, + "msgs": 901, + "events": 3245, + "pty_bytes": 61909, + "pty_writes": 32, + "rss_kb": 199096, + "pss_kb": 159752, + "private_dirty_kb": 139120, + "vmhwm_kb": 199104, + "utime_ticks": 91, + "stime_ticks": 6, + "cg_current": 166461440, + "cg_peak": 166711296, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2176, + "msgs": 1001, + "events": 3588, + "pty_bytes": 69446, + "pty_writes": 34, + "rss_kb": 203936, + "pss_kb": 164592, + "private_dirty_kb": 143960, + "vmhwm_kb": 203960, + "utime_ticks": 98, + "stime_ticks": 7, + "cg_current": 171687936, + "cg_peak": 171687936, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2200, + "msgs": 1101, + "events": 3928, + "pty_bytes": 72856, + "pty_writes": 35, + "rss_kb": 206568, + "pss_kb": 167224, + "private_dirty_kb": 146592, + "vmhwm_kb": 206932, + "utime_ticks": 101, + "stime_ticks": 7, + "cg_current": 174628864, + "cg_peak": 174661632, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2249, + "msgs": 1201, + "events": 4298, + "pty_bytes": 81087, + "pty_writes": 40, + "rss_kb": 211348, + "pss_kb": 172004, + "private_dirty_kb": 151372, + "vmhwm_kb": 211348, + "utime_ticks": 108, + "stime_ticks": 7, + "cg_current": 179568640, + "cg_peak": 179826688, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2401, + "msgs": 1300, + "events": 4659, + "pty_bytes": 89171, + "pty_writes": 42, + "rss_kb": 218264, + "pss_kb": 178920, + "private_dirty_kb": 158288, + "vmhwm_kb": 218572, + "utime_ticks": 125, + "stime_ticks": 7, + "cg_current": 186773504, + "cg_peak": 186773504, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2427, + "msgs": 1400, + "events": 5011, + "pty_bytes": 93083, + "pty_writes": 43, + "rss_kb": 221096, + "pss_kb": 181752, + "private_dirty_kb": 161120, + "vmhwm_kb": 221096, + "utime_ticks": 129, + "stime_ticks": 7, + "cg_current": 189878272, + "cg_peak": 189878272, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2552, + "msgs": 1500, + "events": 5384, + "pty_bytes": 100499, + "pty_writes": 45, + "rss_kb": 226288, + "pss_kb": 186944, + "private_dirty_kb": 166312, + "vmhwm_kb": 226300, + "utime_ticks": 143, + "stime_ticks": 7, + "cg_current": 195260416, + "cg_peak": 195260416, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2603, + "msgs": 1600, + "events": 5730, + "pty_bytes": 103884, + "pty_writes": 48, + "rss_kb": 231416, + "pss_kb": 192072, + "private_dirty_kb": 171440, + "vmhwm_kb": 231416, + "utime_ticks": 148, + "stime_ticks": 8, + "cg_current": 200568832, + "cg_peak": 200568832, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2728, + "msgs": 1700, + "events": 6100, + "pty_bytes": 110740, + "pty_writes": 50, + "rss_kb": 234320, + "pss_kb": 194976, + "private_dirty_kb": 174344, + "vmhwm_kb": 234328, + "utime_ticks": 162, + "stime_ticks": 8, + "cg_current": 203378688, + "cg_peak": 203378688, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2753, + "msgs": 1800, + "events": 6455, + "pty_bytes": 117437, + "pty_writes": 52, + "rss_kb": 236768, + "pss_kb": 197424, + "private_dirty_kb": 176792, + "vmhwm_kb": 236772, + "utime_ticks": 166, + "stime_ticks": 8, + "cg_current": 206143488, + "cg_peak": 206172160, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2780, + "msgs": 1900, + "events": 6838, + "pty_bytes": 121127, + "pty_writes": 53, + "rss_kb": 238448, + "pss_kb": 199104, + "private_dirty_kb": 178472, + "vmhwm_kb": 238448, + "utime_ticks": 170, + "stime_ticks": 8, + "cg_current": 207413248, + "cg_peak": 207642624, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2828, + "msgs": 2000, + "events": 7151, + "pty_bytes": 131031, + "pty_writes": 57, + "rss_kb": 242984, + "pss_kb": 203640, + "private_dirty_kb": 183008, + "vmhwm_kb": 242984, + "utime_ticks": 176, + "stime_ticks": 8, + "cg_current": 212066304, + "cg_peak": 212066304, + "cg_oom_kill": 0 + }, + { + "kind": "done", + "t_ms": 2832, + "msgs": 2000, + "events": 7151, + "pty_bytes": 131031, + "pty_writes": 57, + "rss_kb": 243744, + "pss_kb": 204400, + "private_dirty_kb": 183768, + "vmhwm_kb": 243900, + "utime_ticks": 176, + "stime_ticks": 8, + "cg_current": 213377024, + "cg_peak": 213377024, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 3078, + "msgs": 2000, + "events": null, + "pty_bytes": 134375, + "pty_writes": 58, + "rss_kb": 244240, + "pss_kb": 204896, + "private_dirty_kb": 184264, + "vmhwm_kb": 244240, + "utime_ticks": 177, + "stime_ticks": 8, + "cg_current": 213618688, + "cg_peak": 213901312, + "cg_oom_kill": 0 + }, + { + "kind": "final", + "t_ms": 4063, + "msgs": 2000, + "events": 7151, + "pty_bytes": 134420, + "pty_writes": 59, + "rss_kb": 244252, + "pss_kb": 204908, + "private_dirty_kb": 184276, + "vmhwm_kb": 244252, + "utime_ticks": 177, + "stime_ticks": 8, + "cg_current": 213037056, + "cg_peak": 213901312, + "cg_oom_kill": 0 + } + ], + "events": [ + { + "kind": "rpc", + "method": "config.get", + "t_ms": 203 + }, + { + "kind": "rpc", + "method": "commands.catalog", + "t_ms": 228 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 228 + }, + { + "kind": "rpc", + "method": "setup.status", + "t_ms": 228 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 228 + }, + { + "kind": "rpc", + "method": "session.create", + "t_ms": 253 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 253 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 253 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 253 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 253 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 253 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 253 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 253 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1744 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1769 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1769 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 1794 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1796 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1796 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1819 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1844 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1847 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1869 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1871 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1894 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1919 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1919 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1944 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1944 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1969 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1969 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1971 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1994 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1994 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2019 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2021 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2044 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2044 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2046 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2069 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2069 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2069 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2099 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2099 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2122 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2122 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2147 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2147 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2176 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2176 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2176 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2176 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2197 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2197 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2200 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2222 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2222 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2247 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2249 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2249 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2273 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2273 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2273 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2401 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2401 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2423 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2427 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2427 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2550 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2550 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2550 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2552 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2575 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2575 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2575 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2603 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2603 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2726 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2726 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2726 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2728 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2751 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2753 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2753 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2753 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2776 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2776 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2780 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2801 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2801 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2801 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2832 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2832 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2832 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2851 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2851 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2851 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 3276 + } + ], + "summary": { + "result": "completed", + "cap_hit": false, + "cap_hit_basis": null, + "at_messages": null, + "exit": { + "exitCode": 0, + "signal": 0, + "t": 4076 + }, + "stream_done": true, + "msgs_streamed": 2000, + "events_streamed": 7151, + "pty_bytes_total": 134601, + "pty_data_callbacks": 62, + "first_byte_ms": 92, + "session_create_ms": 253, + "stream_start_ms": 1744, + "vmhwm_kb": 244252, + "cg_peak": 213901312, + "drain_max_loop_lag_ms": 4, + "drain_lag_violations": 0, + "drain_ok": true, + "digest": null + } +} \ No newline at end of file diff --git a/bench/results/2026-06-11T0241-448e6ee-mem2000-ink-ink-r1.json b/bench/results/2026-06-11T0241-448e6ee-mem2000-ink-ink-r1.json new file mode 100644 index 00000000000..7968c7e0913 --- /dev/null +++ b/bench/results/2026-06-11T0241-448e6ee-mem2000-ink-ink-r1.json @@ -0,0 +1,981 @@ +{ + "meta": { + "cell": "mem2000", + "ui": "ink", + "config": "ink", + "mode": "mem", + "rep": 1, + "run_id": "mq8w5s9w-36ap", + "utc": "2026-06-11T02:41:37.892Z", + "sha": "805e08081", + "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": null, + "fixture": { + "path": "/home/daimon/github/worktrees/hermes-agent/lively-thrush/hermes-agent/bench/.cache/fixture-2000.ndjson", + "msgs": 2000, + "sha256": "645b9ee4fdaccee45172fcec8af4a0b01a5f9aeca56ce45d8e84c4276472f99c" + }, + "sample_every": 100, + "mode_params": {}, + "ui_pid": 2726425, + "gw_pid": 2726433, + "cgroup": "/sys/fs/cgroup/user.slice/user-1001.slice/session-7421.scope", + "load_avg_at_start": [ + 0.62, + 0.58, + 0.35 + ], + "instrumented": false + }, + "samples": [ + { + "kind": "periodic", + "t_ms": 27, + "msgs": null, + "events": null, + "pty_bytes": 0, + "pty_writes": 0, + "rss_kb": 26612, + "pss_kb": 9778, + "private_dirty_kb": 3112, + "vmhwm_kb": 26612, + "utime_ticks": 0, + "stime_ticks": 0, + "cg_current": 1301958656, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 1032, + "msgs": null, + "events": null, + "pty_bytes": 6160, + "pty_writes": 11, + "rss_kb": 108624, + "pss_kb": 68570, + "private_dirty_kb": 49488, + "vmhwm_kb": 108624, + "utime_ticks": 25, + "stime_ticks": 2, + "cg_current": 1256726528, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1786, + "msgs": 100, + "events": 355, + "pty_bytes": 9673, + "pty_writes": 14, + "rss_kb": 126392, + "pss_kb": 86255, + "private_dirty_kb": 66472, + "vmhwm_kb": 126400, + "utime_ticks": 34, + "stime_ticks": 3, + "cg_current": 1259548672, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1837, + "msgs": 200, + "events": 738, + "pty_bytes": 17719, + "pty_writes": 17, + "rss_kb": 155540, + "pss_kb": 115361, + "private_dirty_kb": 95620, + "vmhwm_kb": 155908, + "utime_ticks": 42, + "stime_ticks": 4, + "cg_current": 1259589632, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1864, + "msgs": 300, + "events": 1051, + "pty_bytes": 21877, + "pty_writes": 19, + "rss_kb": 164828, + "pss_kb": 124617, + "private_dirty_kb": 104844, + "vmhwm_kb": 164840, + "utime_ticks": 46, + "stime_ticks": 4, + "cg_current": 1259827200, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1914, + "msgs": 400, + "events": 1432, + "pty_bytes": 29567, + "pty_writes": 21, + "rss_kb": 169308, + "pss_kb": 129097, + "private_dirty_kb": 109324, + "vmhwm_kb": 179232, + "utime_ticks": 57, + "stime_ticks": 5, + "cg_current": 1260433408, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1940, + "msgs": 501, + "events": 1792, + "pty_bytes": 36923, + "pty_writes": 23, + "rss_kb": 171156, + "pss_kb": 130945, + "private_dirty_kb": 111172, + "vmhwm_kb": 179232, + "utime_ticks": 62, + "stime_ticks": 5, + "cg_current": 1260220416, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1989, + "msgs": 601, + "events": 2154, + "pty_bytes": 44882, + "pty_writes": 26, + "rss_kb": 181328, + "pss_kb": 141085, + "private_dirty_kb": 121344, + "vmhwm_kb": 181348, + "utime_ticks": 70, + "stime_ticks": 5, + "cg_current": 1260498944, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2014, + "msgs": 701, + "events": 2496, + "pty_bytes": 48812, + "pty_writes": 28, + "rss_kb": 182596, + "pss_kb": 142353, + "private_dirty_kb": 122612, + "vmhwm_kb": 182596, + "utime_ticks": 74, + "stime_ticks": 5, + "cg_current": 1260498944, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 2039, + "msgs": null, + "events": null, + "pty_bytes": 52518, + "pty_writes": 30, + "rss_kb": 185292, + "pss_kb": 145049, + "private_dirty_kb": 125308, + "vmhwm_kb": 185292, + "utime_ticks": 78, + "stime_ticks": 6, + "cg_current": 1260498944, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2064, + "msgs": 801, + "events": 2857, + "pty_bytes": 60003, + "pty_writes": 32, + "rss_kb": 188580, + "pss_kb": 148331, + "private_dirty_kb": 128596, + "vmhwm_kb": 188588, + "utime_ticks": 83, + "stime_ticks": 6, + "cg_current": 1261813760, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2089, + "msgs": 901, + "events": 3245, + "pty_bytes": 63637, + "pty_writes": 33, + "rss_kb": 191952, + "pss_kb": 151703, + "private_dirty_kb": 131968, + "vmhwm_kb": 191952, + "utime_ticks": 86, + "stime_ticks": 6, + "cg_current": 1262096384, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2140, + "msgs": 1001, + "events": 3588, + "pty_bytes": 68862, + "pty_writes": 35, + "rss_kb": 196336, + "pss_kb": 156087, + "private_dirty_kb": 136352, + "vmhwm_kb": 196336, + "utime_ticks": 93, + "stime_ticks": 6, + "cg_current": 1265397760, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2166, + "msgs": 1101, + "events": 3928, + "pty_bytes": 72773, + "pty_writes": 36, + "rss_kb": 198944, + "pss_kb": 158695, + "private_dirty_kb": 138960, + "vmhwm_kb": 199004, + "utime_ticks": 97, + "stime_ticks": 6, + "cg_current": 1265364992, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2215, + "msgs": 1201, + "events": 4298, + "pty_bytes": 80166, + "pty_writes": 38, + "rss_kb": 203676, + "pss_kb": 163427, + "private_dirty_kb": 143692, + "vmhwm_kb": 203692, + "utime_ticks": 103, + "stime_ticks": 7, + "cg_current": 1265635328, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2265, + "msgs": 1300, + "events": 4659, + "pty_bytes": 87237, + "pty_writes": 40, + "rss_kb": 208800, + "pss_kb": 168551, + "private_dirty_kb": 148816, + "vmhwm_kb": 208800, + "utime_ticks": 109, + "stime_ticks": 7, + "cg_current": 1265188864, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2290, + "msgs": 1400, + "events": 5011, + "pty_bytes": 91183, + "pty_writes": 41, + "rss_kb": 212048, + "pss_kb": 171799, + "private_dirty_kb": 152064, + "vmhwm_kb": 212048, + "utime_ticks": 112, + "stime_ticks": 7, + "cg_current": 1265020928, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2440, + "msgs": 1500, + "events": 5384, + "pty_bytes": 97545, + "pty_writes": 43, + "rss_kb": 217024, + "pss_kb": 176775, + "private_dirty_kb": 157040, + "vmhwm_kb": 217124, + "utime_ticks": 130, + "stime_ticks": 8, + "cg_current": 1265430528, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2465, + "msgs": 1600, + "events": 5730, + "pty_bytes": 104321, + "pty_writes": 45, + "rss_kb": 219812, + "pss_kb": 179563, + "private_dirty_kb": 159828, + "vmhwm_kb": 219852, + "utime_ticks": 133, + "stime_ticks": 8, + "cg_current": 1264504832, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2516, + "msgs": 1700, + "events": 6100, + "pty_bytes": 110913, + "pty_writes": 48, + "rss_kb": 225668, + "pss_kb": 185419, + "private_dirty_kb": 165684, + "vmhwm_kb": 225916, + "utime_ticks": 140, + "stime_ticks": 8, + "cg_current": 1264504832, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2519, + "msgs": 1800, + "events": 6455, + "pty_bytes": 110913, + "pty_writes": 48, + "rss_kb": 225932, + "pss_kb": 185683, + "private_dirty_kb": 165948, + "vmhwm_kb": 225936, + "utime_ticks": 141, + "stime_ticks": 8, + "cg_current": 1264504832, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2541, + "msgs": 1900, + "events": 6838, + "pty_bytes": 116692, + "pty_writes": 51, + "rss_kb": 228464, + "pss_kb": 188215, + "private_dirty_kb": 168480, + "vmhwm_kb": 228480, + "utime_ticks": 144, + "stime_ticks": 8, + "cg_current": 1264504832, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2591, + "msgs": 2000, + "events": 7151, + "pty_bytes": 122848, + "pty_writes": 53, + "rss_kb": 233156, + "pss_kb": 192907, + "private_dirty_kb": 173172, + "vmhwm_kb": 233160, + "utime_ticks": 151, + "stime_ticks": 8, + "cg_current": 1264115712, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "done", + "t_ms": 2593, + "msgs": 2000, + "events": 7151, + "pty_bytes": 122848, + "pty_writes": 53, + "rss_kb": 233160, + "pss_kb": 192911, + "private_dirty_kb": 173176, + "vmhwm_kb": 233168, + "utime_ticks": 151, + "stime_ticks": 8, + "cg_current": 1264115712, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 3047, + "msgs": 2000, + "events": null, + "pty_bytes": 126864, + "pty_writes": 55, + "rss_kb": 234560, + "pss_kb": 194311, + "private_dirty_kb": 174576, + "vmhwm_kb": 234560, + "utime_ticks": 152, + "stime_ticks": 8, + "cg_current": 1264824320, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "final", + "t_ms": 4043, + "msgs": 2000, + "events": 7151, + "pty_bytes": 126909, + "pty_writes": 56, + "rss_kb": 234564, + "pss_kb": 194315, + "private_dirty_kb": 174580, + "vmhwm_kb": 234564, + "utime_ticks": 152, + "stime_ticks": 8, + "cg_current": 1264787456, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + } + ], + "events": [ + { + "kind": "rpc", + "method": "config.get", + "t_ms": 201 + }, + { + "kind": "rpc", + "method": "commands.catalog", + "t_ms": 201 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 226 + }, + { + "kind": "rpc", + "method": "setup.status", + "t_ms": 226 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 226 + }, + { + "kind": "rpc", + "method": "session.create", + "t_ms": 226 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 226 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 226 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 251 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 251 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 251 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 251 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 251 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 1759 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1759 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1759 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1786 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1786 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1809 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1809 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1837 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1837 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1837 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1864 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1886 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1886 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1911 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1914 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1914 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1937 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1937 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1940 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1962 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1962 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 1987 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2012 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2012 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2014 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2037 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2037 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2062 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2064 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2064 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2064 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2087 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2089 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2112 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2112 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2138 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2138 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2140 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2164 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2166 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2166 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2188 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2213 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2215 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2238 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2238 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2263 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2265 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2288 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2290 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2290 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2413 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2438 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2440 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2440 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2463 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2463 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2463 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2465 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2488 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2488 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2513 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2513 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2516 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2516 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2519 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2539 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2539 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2539 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2539 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2541 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2563 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2563 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2563 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2593 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2593 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2593 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2614 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2614 + }, + { + "kind": "rpc", + "method": "config.get", + "t_ms": 2614 + }, + { + "kind": "rpc", + "method": "session.active_list", + "t_ms": 3250 + } + ], + "summary": { + "result": "completed", + "cap_hit": false, + "cap_hit_basis": null, + "at_messages": null, + "exit": { + "exitCode": 0, + "signal": 0, + "t": 4056 + }, + "stream_done": true, + "msgs_streamed": 2000, + "events_streamed": 7151, + "pty_bytes_total": 127090, + "pty_data_callbacks": 66, + "first_byte_ms": 87, + "session_create_ms": 226, + "stream_start_ms": 1759, + "vmhwm_kb": 234564, + "cg_peak": 2533130240, + "drain_max_loop_lag_ms": 3, + "drain_lag_violations": 0, + "drain_ok": true, + "digest": null + } +} \ No newline at end of file diff --git a/bench/results/2026-06-11T0241-448e6ee-mem2000-opentui-otui-capped-r1.json b/bench/results/2026-06-11T0241-448e6ee-mem2000-opentui-otui-capped-r1.json new file mode 100644 index 00000000000..dea32a26443 --- /dev/null +++ b/bench/results/2026-06-11T0241-448e6ee-mem2000-opentui-otui-capped-r1.json @@ -0,0 +1,611 @@ +{ + "meta": { + "cell": "mem2000", + "ui": "opentui", + "config": "otui-capped", + "mode": "mem", + "rep": 1, + "run_id": "mq8w5do2-ndox", + "utc": "2026-06-11T02:41:18.962Z", + "sha": "805e08081", + "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-2000.ndjson", + "msgs": 2000, + "sha256": "645b9ee4fdaccee45172fcec8af4a0b01a5f9aeca56ce45d8e84c4276472f99c" + }, + "sample_every": 100, + "mode_params": {}, + "ui_pid": 2725293, + "gw_pid": 2725302, + "cgroup": "/sys/fs/cgroup/user.slice/user-1001.slice/session-7421.scope", + "load_avg_at_start": [ + 0.79, + 0.61, + 0.35 + ], + "instrumented": false + }, + "samples": [ + { + "kind": "periodic", + "t_ms": 25, + "msgs": null, + "events": null, + "pty_bytes": 0, + "pty_writes": 0, + "rss_kb": 33520, + "pss_kb": 14428, + "private_dirty_kb": 6640, + "vmhwm_kb": 33588, + "utime_ticks": 0, + "stime_ticks": 0, + "cg_current": 1253228544, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 1035, + "msgs": null, + "events": null, + "pty_bytes": 28911, + "pty_writes": 11, + "rss_kb": 104992, + "pss_kb": 63971, + "private_dirty_kb": 48252, + "vmhwm_kb": 107596, + "utime_ticks": 17, + "stime_ticks": 2, + "cg_current": 1254535168, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1693, + "msgs": 100, + "events": 355, + "pty_bytes": 31413, + "pty_writes": 13, + "rss_kb": 113500, + "pss_kb": 72379, + "private_dirty_kb": 56632, + "vmhwm_kb": 113504, + "utime_ticks": 21, + "stime_ticks": 3, + "cg_current": 1256583168, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1694, + "msgs": 200, + "events": 738, + "pty_bytes": 31413, + "pty_writes": 13, + "rss_kb": 113664, + "pss_kb": 72543, + "private_dirty_kb": 56796, + "vmhwm_kb": 113744, + "utime_ticks": 21, + "stime_ticks": 3, + "cg_current": 1256583168, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1695, + "msgs": 300, + "events": 1051, + "pty_bytes": 31413, + "pty_writes": 13, + "rss_kb": 113644, + "pss_kb": 72523, + "private_dirty_kb": 56776, + "vmhwm_kb": 113644, + "utime_ticks": 21, + "stime_ticks": 3, + "cg_current": 1256583168, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 1696, + "msgs": 400, + "events": 1432, + "pty_bytes": 31413, + "pty_writes": 13, + "rss_kb": 113644, + "pss_kb": 72523, + "private_dirty_kb": 56776, + "vmhwm_kb": 113644, + "utime_ticks": 22, + "stime_ticks": 3, + "cg_current": 1256583168, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 2043, + "msgs": null, + "events": null, + "pty_bytes": 31413, + "pty_writes": 13, + "rss_kb": 231544, + "pss_kb": 188589, + "private_dirty_kb": 171540, + "vmhwm_kb": 231544, + "utime_ticks": 76, + "stime_ticks": 8, + "cg_current": 1256951808, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2143, + "msgs": 501, + "events": 1792, + "pty_bytes": 35161, + "pty_writes": 15, + "rss_kb": 234672, + "pss_kb": 191610, + "private_dirty_kb": 174480, + "vmhwm_kb": 234692, + "utime_ticks": 88, + "stime_ticks": 8, + "cg_current": 1256685568, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2321, + "msgs": 601, + "events": 2154, + "pty_bytes": 38337, + "pty_writes": 16, + "rss_kb": 277080, + "pss_kb": 233986, + "private_dirty_kb": 216760, + "vmhwm_kb": 277152, + "utime_ticks": 115, + "stime_ticks": 10, + "cg_current": 1256468480, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2574, + "msgs": 701, + "events": 2496, + "pty_bytes": 45086, + "pty_writes": 19, + "rss_kb": 318664, + "pss_kb": 275459, + "private_dirty_kb": 258220, + "vmhwm_kb": 335276, + "utime_ticks": 163, + "stime_ticks": 13, + "cg_current": 1257005056, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2825, + "msgs": 801, + "events": 2857, + "pty_bytes": 50936, + "pty_writes": 22, + "rss_kb": 352828, + "pss_kb": 309617, + "private_dirty_kb": 292384, + "vmhwm_kb": 352868, + "utime_ticks": 194, + "stime_ticks": 14, + "cg_current": 1257312256, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2828, + "msgs": 901, + "events": 3245, + "pty_bytes": 50936, + "pty_writes": 22, + "rss_kb": 352952, + "pss_kb": 309741, + "private_dirty_kb": 292508, + "vmhwm_kb": 353532, + "utime_ticks": 194, + "stime_ticks": 14, + "cg_current": 1257312256, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2830, + "msgs": 1001, + "events": 3588, + "pty_bytes": 50936, + "pty_writes": 22, + "rss_kb": 353552, + "pss_kb": 310341, + "private_dirty_kb": 293108, + "vmhwm_kb": 353608, + "utime_ticks": 194, + "stime_ticks": 14, + "cg_current": 1257312256, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2831, + "msgs": 1101, + "events": 3928, + "pty_bytes": 50936, + "pty_writes": 22, + "rss_kb": 353636, + "pss_kb": 310425, + "private_dirty_kb": 293192, + "vmhwm_kb": 353664, + "utime_ticks": 195, + "stime_ticks": 14, + "cg_current": 1257312256, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2850, + "msgs": 1201, + "events": 4298, + "pty_bytes": 50936, + "pty_writes": 22, + "rss_kb": 355840, + "pss_kb": 312629, + "private_dirty_kb": 295396, + "vmhwm_kb": 355884, + "utime_ticks": 197, + "stime_ticks": 14, + "cg_current": 1257312256, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2852, + "msgs": 1300, + "events": 4659, + "pty_bytes": 50936, + "pty_writes": 22, + "rss_kb": 356044, + "pss_kb": 312833, + "private_dirty_kb": 295600, + "vmhwm_kb": 356112, + "utime_ticks": 197, + "stime_ticks": 14, + "cg_current": 1257312256, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 2853, + "msgs": 1400, + "events": 5011, + "pty_bytes": 50936, + "pty_writes": 22, + "rss_kb": 356228, + "pss_kb": 313017, + "private_dirty_kb": 295784, + "vmhwm_kb": 356272, + "utime_ticks": 197, + "stime_ticks": 14, + "cg_current": 1257312256, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 3052, + "msgs": null, + "events": null, + "pty_bytes": 50936, + "pty_writes": 22, + "rss_kb": 427608, + "pss_kb": 384397, + "private_dirty_kb": 367164, + "vmhwm_kb": 427772, + "utime_ticks": 225, + "stime_ticks": 16, + "cg_current": 1266737152, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 3583, + "msgs": 1500, + "events": 5384, + "pty_bytes": 53133, + "pty_writes": 23, + "rss_kb": 528884, + "pss_kb": 485673, + "private_dirty_kb": 468440, + "vmhwm_kb": 528884, + "utime_ticks": 301, + "stime_ticks": 19, + "cg_current": 1263554560, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 4062, + "msgs": null, + "events": null, + "pty_bytes": 55245, + "pty_writes": 24, + "rss_kb": 553696, + "pss_kb": 510485, + "private_dirty_kb": 493252, + "vmhwm_kb": 553696, + "utime_ticks": 350, + "stime_ticks": 21, + "cg_current": 1264406528, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 4136, + "msgs": 1600, + "events": 5730, + "pty_bytes": 56674, + "pty_writes": 25, + "rss_kb": 554076, + "pss_kb": 510865, + "private_dirty_kb": 493632, + "vmhwm_kb": 554076, + "utime_ticks": 358, + "stime_ticks": 22, + "cg_current": 1264660480, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 4690, + "msgs": 1700, + "events": 6100, + "pty_bytes": 60000, + "pty_writes": 27, + "rss_kb": 584192, + "pss_kb": 540981, + "private_dirty_kb": 523748, + "vmhwm_kb": 584192, + "utime_ticks": 416, + "stime_ticks": 23, + "cg_current": 1264029696, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 4866, + "msgs": 1800, + "events": 6455, + "pty_bytes": 61035, + "pty_writes": 28, + "rss_kb": 587360, + "pss_kb": 544149, + "private_dirty_kb": 526916, + "vmhwm_kb": 587392, + "utime_ticks": 435, + "stime_ticks": 23, + "cg_current": 1264029696, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 5068, + "msgs": null, + "events": null, + "pty_bytes": 61035, + "pty_writes": 28, + "rss_kb": 612556, + "pss_kb": 569345, + "private_dirty_kb": 552112, + "vmhwm_kb": 612556, + "utime_ticks": 457, + "stime_ticks": 25, + "cg_current": 1264279552, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 5448, + "msgs": 1900, + "events": 6838, + "pty_bytes": 65147, + "pty_writes": 30, + "rss_kb": 616604, + "pss_kb": 573393, + "private_dirty_kb": 556160, + "vmhwm_kb": 616652, + "utime_ticks": 495, + "stime_ticks": 25, + "cg_current": 1264021504, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 6073, + "msgs": null, + "events": null, + "pty_bytes": 67904, + "pty_writes": 31, + "rss_kb": 645368, + "pss_kb": 602157, + "private_dirty_kb": 584924, + "vmhwm_kb": 645368, + "utime_ticks": 558, + "stime_ticks": 27, + "cg_current": 1265160192, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "boundary", + "t_ms": 6098, + "msgs": 2000, + "events": 7151, + "pty_bytes": 70788, + "pty_writes": 32, + "rss_kb": 647128, + "pss_kb": 603917, + "private_dirty_kb": 586684, + "vmhwm_kb": 647152, + "utime_ticks": 561, + "stime_ticks": 28, + "cg_current": 1265160192, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "done", + "t_ms": 6102, + "msgs": 2000, + "events": 7151, + "pty_bytes": 70788, + "pty_writes": 32, + "rss_kb": 647172, + "pss_kb": 603961, + "private_dirty_kb": 586728, + "vmhwm_kb": 647180, + "utime_ticks": 561, + "stime_ticks": 28, + "cg_current": 1265160192, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 7078, + "msgs": 2000, + "events": null, + "pty_bytes": 75192, + "pty_writes": 35, + "rss_kb": 689936, + "pss_kb": 646725, + "private_dirty_kb": 629492, + "vmhwm_kb": 689936, + "utime_ticks": 660, + "stime_ticks": 31, + "cg_current": 1265418240, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "final", + "t_ms": 8021, + "msgs": 2000, + "events": 7151, + "pty_bytes": 79505, + "pty_writes": 38, + "rss_kb": 690892, + "pss_kb": 647681, + "private_dirty_kb": 630448, + "vmhwm_kb": 690892, + "utime_ticks": 673, + "stime_ticks": 31, + "cg_current": 1265438720, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + }, + { + "kind": "periodic", + "t_ms": 8087, + "msgs": 2000, + "events": null, + "pty_bytes": 79505, + "pty_writes": 38, + "rss_kb": 691240, + "pss_kb": 648029, + "private_dirty_kb": 630796, + "vmhwm_kb": 691240, + "utime_ticks": 680, + "stime_ticks": 31, + "cg_current": 1265430528, + "cg_peak": 2533130240, + "cg_oom_kill": 0 + } + ], + "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": 8916 + }, + "stream_done": true, + "msgs_streamed": 2000, + "events_streamed": 7151, + "pty_bytes_total": 84600, + "pty_data_callbacks": 42, + "first_byte_ms": 137, + "session_create_ms": 176, + "stream_start_ms": 1690, + "vmhwm_kb": 691240, + "cg_peak": 2533130240, + "drain_max_loop_lag_ms": 7, + "drain_lag_violations": 0, + "drain_ok": true, + "digest": null + } +} \ No newline at end of file diff --git a/bench/run.mjs b/bench/run.mjs index 1d6f4017b34..5399de9abce 100644 --- a/bench/run.mjs +++ b/bench/run.mjs @@ -140,8 +140,9 @@ async function cellMem(opts) { const reps = opts.reps ?? 3 const fx = await ensureFixture(msgs) const rand = rng(opts.seed ?? 20260611) + const configs = opts.configs ?? Object.keys(CONFIGS) for (let rep = 0; rep < reps; rep++) { - for (const config of shuffled(Object.keys(CONFIGS), rand)) { + for (const config of shuffled(configs, rand)) { await doRun(`mem${msgs}`, config, rep, { mode: 'mem', fixturePath: fx.path, @@ -329,7 +330,8 @@ const opts = { reps: opt('reps') ? Number(opt('reps')) : undefined, msgs: opt('msgs') ? Number(opt('msgs')) : undefined, cap: opt('cap'), - seed: opt('seed') ? Number(opt('seed')) : undefined + seed: opt('seed') ? Number(opt('seed')) : undefined, + configs: opt('configs') ? opt('configs').split(',').filter(c => CONFIGS[c]) : undefined } const cell = opt('cell') mkdirSync(RESULTS_DIR, { recursive: true }) diff --git a/bench/session-distribution.json b/bench/session-distribution.json new file mode 100644 index 00000000000..345fe12a576 --- /dev/null +++ b/bench/session-distribution.json @@ -0,0 +1,199 @@ +{ + "sources": { + "cli": 19, + "cron": 5159, + "telegram": 281, + "tui": 425, + "webhook": 67 + }, + "all": { + "n": 5951, + "min": 0, + "max": 1980, + "mean": 20.5, + "p50": 12, + "p75": 20, + "p90": 30, + "p95": 42, + "p99": 188, + "histogram": [ + { + "lo": 0, + "hi": 10, + "count": 1918 + }, + { + "lo": 10, + "hi": 25, + "count": 3050 + }, + { + "lo": 25, + "hi": 50, + "count": 774 + }, + { + "lo": 50, + "hi": 100, + "count": 106 + }, + { + "lo": 100, + "hi": 200, + "count": 48 + }, + { + "lo": 200, + "hi": 300, + "count": 24 + }, + { + "lo": 300, + "hi": 500, + "count": 19 + }, + { + "lo": 500, + "hi": 1000, + "count": 6 + }, + { + "lo": 1000, + "hi": 3000, + "count": 6 + }, + { + "lo": 3000, + "hi": null, + "count": 0 + } + ] + }, + "tui_cli": { + "n": 444, + "min": 0, + "max": 1980, + "mean": 82.7, + "p50": 20, + "p75": 53, + "p90": 182, + "p95": 340, + "p99": 1941, + "histogram": [ + { + "lo": 0, + "hi": 10, + "count": 168 + }, + { + "lo": 10, + "hi": 25, + "count": 78 + }, + { + "lo": 25, + "hi": 50, + "count": 78 + }, + { + "lo": 50, + "hi": 100, + "count": 47 + }, + { + "lo": 100, + "hi": 200, + "count": 30 + }, + { + "lo": 200, + "hi": 300, + "count": 14 + }, + { + "lo": 300, + "hi": 500, + "count": 18 + }, + { + "lo": 500, + "hi": 1000, + "count": 5 + }, + { + "lo": 1000, + "hi": 3000, + "count": 6 + }, + { + "lo": 3000, + "hi": null, + "count": 0 + } + ] + }, + "tui_cli_top": [ + { + "msgs": 1980, + "tools": 12, + "source": "tui", + "title": "context-answerer" + }, + { + "msgs": 1947, + "tools": 0, + "source": "tui", + "title": "context-answerer-2" + }, + { + "msgs": 1946, + "tools": 1, + "source": "tui", + "title": "context-answerer-3" + }, + { + "msgs": 1941, + "tools": 874, + "source": "tui", + "title": "" + }, + { + "msgs": 1941, + "tools": 0, + "source": "tui", + "title": "" + }, + { + "msgs": 1731, + "tools": 792, + "source": "tui", + "title": "daimon stuff" + }, + { + "msgs": 762, + "tools": 327, + "source": "tui", + "title": "Restructuring Hermes Permission Gateway Into RFC Spec" + }, + { + "msgs": 663, + "tools": 310, + "source": "tui", + "title": "tui-table" + }, + { + "msgs": 593, + "tools": 271, + "source": "tui", + "title": "Claude Code Double Ctrl-C Skips Resumable Session" + }, + { + "msgs": 574, + "tools": 259, + "source": "tui", + "title": "Hermes Discord Gateway Missing Dependencies" + } + ], + "generated_at": "2026-06-11T02:40:45.248Z", + "db": "/home/daimon/.hermes/state.db" +} diff --git a/bench/session-distribution.mjs b/bench/session-distribution.mjs new file mode 100644 index 00000000000..3f2bf9c256c --- /dev/null +++ b/bench/session-distribution.mjs @@ -0,0 +1,57 @@ +// bench/session-distribution.mjs — query the REAL sessions DB (~/.hermes/state.db, +// read-only) for the message_count distribution that frames the memory cells. +// Writes bench/session-distribution.json; render.mjs embeds it in the report. +// +// "message_count" here is DB messages (user/assistant/tool entries), the closest +// available unit to the bench's fixture rows. Not byte-identical semantics, but +// the same order of magnitude: both count transcript entries, not tokens. +// +// Usage: node session-distribution.mjs [path-to-state.db] +import { execFileSync } from 'node:child_process' +import { writeFileSync } from 'node:fs' +import { join, dirname } from 'node:path' +import { fileURLToPath } from 'node:url' +import { homedir } from 'node:os' + +const here = dirname(fileURLToPath(import.meta.url)) +const db = process.argv[2] ?? join(homedir(), '.hermes', 'state.db') + +// No sqlite3 CLI on this box; the repo venv python is the canonical reader. +const py = join(here, '..', '.venv', 'bin', 'python') +const script = ` +import sqlite3, json, math, sys +con = sqlite3.connect("file:" + sys.argv[1] + "?mode=ro", uri=True) +cur = con.cursor() +def pct(v, p): + if not v: return None + return v[max(0, min(len(v)-1, math.ceil(p/100*len(v))-1))] +def stats(rows): + v = sorted(r[0] for r in rows if r[0] is not None) + if not v: return None + buckets = [(0,10),(10,25),(25,50),(50,100),(100,200),(200,300),(300,500),(500,1000),(1000,3000),(3000,None)] + hist = [] + for lo,hi in buckets: + c = sum(1 for x in v if x >= lo and (hi is None or x < hi)) + hist.append({"lo": lo, "hi": hi, "count": c}) + return {"n": len(v), "min": v[0], "max": v[-1], "mean": round(sum(v)/len(v),1), + "p50": pct(v,50), "p75": pct(v,75), "p90": pct(v,90), "p95": pct(v,95), "p99": pct(v,99), + "histogram": hist} +out = { + "sources": dict(cur.execute("SELECT source, COUNT(*) FROM sessions GROUP BY source").fetchall()), + "all": stats(cur.execute("SELECT message_count FROM sessions").fetchall()), + "tui_cli": stats(cur.execute("SELECT message_count FROM sessions WHERE source IN ('tui','cli')").fetchall()), + "tui_cli_top": [ + {"msgs": r[0], "tools": r[1] or 0, "source": r[2], "title": (r[3] or "")[:60]} + for r in cur.execute("SELECT message_count, tool_call_count, source, title FROM sessions WHERE source IN ('tui','cli') ORDER BY message_count DESC LIMIT 10") + ], +} +print(json.dumps(out, indent=2)) +` +const json = execFileSync(py, ['-c', script, db], { encoding: 'utf8' }) +const data = JSON.parse(json) +data.generated_at = new Date().toISOString() +data.db = db +const outFile = join(here, 'session-distribution.json') +writeFileSync(outFile, JSON.stringify(data, null, 2) + '\n') +const t = data.tui_cli +process.stdout.write(`tui+cli sessions n=${t.n}: p50=${t.p50} p75=${t.p75} p90=${t.p90} p95=${t.p95} p99=${t.p99} max=${t.max}\n→ ${outFile}\n`)