mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-27 06:11:40 +00:00
chore(tui): /clean recent perf work — KISS/DRY pass
24 files, -319 LoC. Behaviour preserved, 369/369 tests green. - hermes-ink caches: shared lruEvict helper for the four parallel LRU caches (stringWidth, wrapText, sliceAnsi, lineWidth); touch-on-read stays inlined per cache; tightened output.ts skip-slice fast path. - wheelAccel: trimmed provenance header, collapsed env parsing, ternary dispatch in computeWheelStep. - perfPane: folded ensureLogDir into once-flag, spread-with-overrides for fastPath/phases instead of full rebuilds. - env: extracted truthy() (used 4×). - virtualHeights: collapsed user/diff/slash height bumps; trail+todos estimate. - useInputHandlers: scrollIdleTimer cleanup on unmount, ?? undefined shorthand. - useMainApp: dropped dead liveTailVisible IIFE and liveProgress indirection. - appLayout, markdown, messageLine, entry: vertical rhythm, dropped narration comments, inlined one-shot vars. - fix: empty catch blocks → /* best-effort */ for no-empty lint.
This commit is contained in:
parent
527ac351b4
commit
b1c49d5e73
32 changed files with 259 additions and 547 deletions
|
|
@ -467,15 +467,15 @@ export default class Output {
|
|||
|
||||
if (clipHorizontally) {
|
||||
lines = lines.map(line => {
|
||||
const startsBefore = x < clip.x1!
|
||||
const width = stringWidth(line)
|
||||
const startsBefore = x < clip.x1!
|
||||
const endsAfter = x + width > clip.x2!
|
||||
|
||||
// Fast path: line fits entirely within the clip box — skip
|
||||
// the tokenize/slice. This is the common case for transcript
|
||||
// text where containers are wider than the rendered content.
|
||||
// CPU profile (Apr 2026) showed sliceAnsi at 18% total time;
|
||||
// most calls were no-op slices like (line, 0, width).
|
||||
// tokenize/slice. Common case for transcript text where
|
||||
// containers are wider than rendered content. CPU profile
|
||||
// (Apr 2026): sliceAnsi at 18% total during scroll, mostly
|
||||
// no-op (line, 0, width) slices.
|
||||
if (!startsBefore && !endsAfter) {
|
||||
return line
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue