mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-19 15:18:03 +00:00
The biggest real memory lever: OpenTUI retained full resultText + the raw result dict + the args dict per tool call, while Ink discards tool bodies (keeps only a short context line). That retention asymmetry is the bulk of the Ink-vs-OpenTUI memory gap. New `HERMES_TUI_TOOL_OUTPUTS` flag (toolOutputsEnabled() in env.ts, default ON — the rich tool cards are OpenTUI's differentiator). When OFF, the tool.complete reducer (store.ts) neither BUILDS nor STORES the body: skip the whole result_text/result stringify+envelope-strip work and suppress part.resultText / part.result / part.args / part.argsText / part.lineCount / part.omittedNote. KEPT either way: name, state, duration, error, summary, argsPreview (the redaction-safe one-liner from tool.start context = Ink's context line), and the file-edit diff (diffUnified/diffStats — a diff is a high-value surface, not generic "output"). Render is automatic: with no resultText/result, defaultRenderer.expandable() is false → header-only row = Ink parity, no extra view gating needed. This powers the bench's fair Ink-vs-OpenTUI comparison (D8 — launch OpenTUI with outputs off so both engines are body-less = pure engine overhead) and the low-mem mode. Tests: store retains rich outputs by default; OFF drops the bodies but keeps name/duration/error/argsPreview/diff. npm run check OK (770 tests). |
||
|---|---|---|
| .. | ||
| boundary | ||
| entry | ||
| logic | ||
| test | ||
| view | ||