mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-14 04:02:26 +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
|
|
@ -1,19 +1,15 @@
|
|||
const truthy = (v?: string) => /^(?:1|true|yes|on)$/i.test((v ?? '').trim())
|
||||
|
||||
export const STARTUP_RESUME_ID = (process.env.HERMES_TUI_RESUME ?? '').trim()
|
||||
export const MOUSE_TRACKING = !/^(?:1|true|yes|on)$/i.test((process.env.HERMES_TUI_DISABLE_MOUSE ?? '').trim())
|
||||
export const NO_CONFIRM_DESTRUCTIVE = /^(?:1|true|yes|on)$/i.test((process.env.HERMES_TUI_NO_CONFIRM ?? '').trim())
|
||||
// Inline mode: skip the alt-screen wrapper. The TUI renders into the
|
||||
// primary buffer so the terminal's native scrollback captures whatever
|
||||
// scrolls off the top. Wheel + PageUp are then handled by the host
|
||||
// terminal, not by our virtual-scroll logic. The live composer/progress
|
||||
// area still pins to the bottom via Ink's normal flow.
|
||||
//
|
||||
// This is an experiment gate — the full "inline layout" (plain-text
|
||||
// transcript with composer pinned below) is a bigger change; the env var
|
||||
// here just disables AlternateScreen so we can measure whether native
|
||||
// scrolling beats our virtualization on the same pipeline.
|
||||
export const INLINE_MODE = /^(?:1|true|yes|on)$/i.test((process.env.HERMES_TUI_INLINE ?? '').trim())
|
||||
// Show a small FPS counter overlay in the bottom-right corner. Fed by
|
||||
// ink's onFrame callback (so it's the REAL render rate, not a synthetic
|
||||
// timer). Useful during scroll-perf tuning to watch behavior in real
|
||||
// time instead of running a separate profile harness.
|
||||
export const SHOW_FPS = /^(?:1|true|yes|on)$/i.test((process.env.HERMES_TUI_FPS ?? '').trim())
|
||||
export const MOUSE_TRACKING = !truthy(process.env.HERMES_TUI_DISABLE_MOUSE)
|
||||
export const NO_CONFIRM_DESTRUCTIVE = truthy(process.env.HERMES_TUI_NO_CONFIRM)
|
||||
|
||||
// Skip AlternateScreen — TUI renders into the primary buffer so the host
|
||||
// terminal's native scrollback captures whatever scrolls off the top.
|
||||
// Experiment gate: lets us measure native scroll vs our virtualization on
|
||||
// the same pipeline.
|
||||
export const INLINE_MODE = truthy(process.env.HERMES_TUI_INLINE)
|
||||
|
||||
// Live FPS counter overlay, fed by ink's onFrame (real render rate, not a
|
||||
// synthetic timer).
|
||||
export const SHOW_FPS = truthy(process.env.HERMES_TUI_FPS)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue