mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-30 19:09:28 +00:00
docs(desktop): explain what UNBOUNDABLE_TOOLS now guards
The list gates two behaviours since the settled-run summary landed, but the comment still justified it only in terms of the scroll window's height cap. Record the pending-row rule that keeps approvals visible, and why file edits stay off the list.
This commit is contained in:
parent
a77c75f3e0
commit
f7d6c1be8f
1 changed files with 16 additions and 9 deletions
|
|
@ -705,20 +705,27 @@ function TerminalTranscript({ command, exitCode }: TerminalTranscriptProps) {
|
|||
// auto-scrolling window; fewer than this stays a plain inline stack.
|
||||
const TOOL_GROUP_SCROLL_THRESHOLD = 3
|
||||
|
||||
// Tools whose body must never be trapped behind the window's max-height +
|
||||
// fade mask. A run holding any of them stays a plain, fully-visible stack no
|
||||
// matter how long it is.
|
||||
// Tools whose body must never be hidden — not behind the window's max-height +
|
||||
// fade mask, and not behind a settled run's summary chevron. A run holding any
|
||||
// of them stays a plain, fully-visible stack no matter how long it is.
|
||||
//
|
||||
// This list is deliberately tiny. A row rendered by ToolEntry carries
|
||||
// This list is deliberately tiny, because the two things it opts out of are
|
||||
// already safe for anything ToolEntry renders. For the window: a row carries
|
||||
// `data-tool-row`, and the `:has([data-tool-row][data-tool-open])` rule in
|
||||
// styles.css lifts the cap whenever one is open — so anything ToolEntry
|
||||
// renders takes care of itself. A code/diff row mounts open (see
|
||||
// `defaultOpen`), lifting the cap the moment it appears; a collapsed row is a
|
||||
// one-line status with no body in the DOM at all, so there is nothing to clip.
|
||||
// styles.css lifts the cap whenever one is open, so a code/diff row mounting
|
||||
// open (see `defaultOpen`) frees itself the moment it appears, and a collapsed
|
||||
// row is a one-line status with no body in the DOM to clip. For the chevron: a
|
||||
// run still holding a pending call always renders its rows, so an approval bar
|
||||
// can't end up behind one.
|
||||
//
|
||||
// Only components that bypass ToolEntry need this opt-out: `clarify` and
|
||||
// `image_generate` render their own markup, never emit `data-tool-row`, and so
|
||||
// the CSS escape hatch can never reach them.
|
||||
// neither the CSS escape hatch nor the pending-row rule can reach them.
|
||||
//
|
||||
// File edits are pointedly NOT here. A settled run collapses its diffs behind
|
||||
// the summary, which carries their +N/−M — one click to read, and the run stays
|
||||
// compact. Adding them back veto'd the window for nearly every coding session
|
||||
// last time (7f2971039, reverted in 058aa34d8); it would do the same here.
|
||||
const UNBOUNDABLE_TOOLS = new Set(['clarify', 'image_generate'])
|
||||
|
||||
export function isUnboundableTool(toolName: string): boolean {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue