mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-30 01:41:43 +00:00
fix(tui): approval flow + input ergonomics + selection perf
- tui_gateway: route approvals through gateway callback (HERMES_GATEWAY_SESSION/ HERMES_EXEC_ASK) so dangerous commands emit approval.request instead of silently falling through the CLI input() path and auto-denying - approval UX: dedicated PromptZone between transcript and composer, safer defaults (sel=0, numeric quick-picks, no Esc=deny), activity trail line, outcome footer under the cost row - text input: Ctrl+A select-all, real forward Delete, Ctrl+W always consumed (fixes Ctrl+Backspace at cursor 0 inserting literal w) - hermes-ink selection: swap synchronous onRender() for throttled scheduleRender() on drag, and only notify React subscribers on presence change — no more per-cell paint/subscribe spam - useConfigSync: silence config.get polling failures instead of surfacing 'error: timeout: config.get' in the transcript
This commit is contained in:
parent
0219da9626
commit
5b386ced71
15 changed files with 319 additions and 129 deletions
|
|
@ -537,6 +537,7 @@ interface Group {
|
|||
export const ToolTrail = memo(function ToolTrail({
|
||||
busy = false,
|
||||
detailsMode = 'collapsed',
|
||||
outcome = '',
|
||||
reasoningActive = false,
|
||||
reasoning = '',
|
||||
reasoningTokens,
|
||||
|
|
@ -550,6 +551,7 @@ export const ToolTrail = memo(function ToolTrail({
|
|||
}: {
|
||||
busy?: boolean
|
||||
detailsMode?: DetailsMode
|
||||
outcome?: string
|
||||
reasoningActive?: boolean
|
||||
reasoning?: string
|
||||
reasoningTokens?: number
|
||||
|
|
@ -596,7 +598,16 @@ export const ToolTrail = memo(function ToolTrail({
|
|||
|
||||
const cot = useMemo(() => thinkingPreview(reasoning, 'full', THINKING_COT_MAX), [reasoning])
|
||||
|
||||
if (!busy && !trail.length && !tools.length && !subagents.length && !activity.length && !cot && !reasoningActive) {
|
||||
if (
|
||||
!busy &&
|
||||
!trail.length &&
|
||||
!tools.length &&
|
||||
!subagents.length &&
|
||||
!activity.length &&
|
||||
!cot &&
|
||||
!reasoningActive &&
|
||||
!outcome
|
||||
) {
|
||||
return null
|
||||
}
|
||||
|
||||
|
|
@ -961,6 +972,13 @@ export const ToolTrail = memo(function ToolTrail({
|
|||
t={t}
|
||||
/>
|
||||
) : null}
|
||||
{outcome ? (
|
||||
<Box marginTop={1}>
|
||||
<Text color={t.color.dim} dim>
|
||||
· {outcome}
|
||||
</Text>
|
||||
</Box>
|
||||
) : null}
|
||||
</Box>
|
||||
)
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue