fix(cli): disable background redraw by default to prevent scroll hijack (#63895) - #63992
fix(cli): disable background redraw by default to prevent scroll hijack (#63895)#63992webtecnica wants to merge 1 commit into
Conversation
teknium1
left a comment
There was a problem hiding this comment.
Thanks for isolating the classic-CLI scrollback problem. The underlying premise is still present on current main: hermes_cli/config.py:1892 defaults the setting to 1.0, and cli.py:15227 passes it to prompt_toolkit's refresh_interval.
Problems
- The patch contains unrelated config reversions. Current main preserves string-valued settings in
hermes_cli/config.py:8205-8290; the PR-head replacement athermes_cli/config.py:8184-8194restores blanket coercion, changing values such asapprovals.mode="off"into a boolean. tests/hermes_cli/test_config.py:1323-1328currently asserts the1.0default. The PR changes onlyhermes_cli/config.py, so the intended default change needs a corresponding test update.
Suggested changes
- Salvage only the
cli_refresh_intervaldefault/comment into currenthermes_cli/config.py, retaining the currentset_config_value()coercion guard. - Update the focused config-default test with the new expected value.
This is an automated hermes-sweeper review.
| # Set to a positive value (e.g. 1.0) if the idle status-bar clock | ||
| # going stale bothers you — users on emulators without the | ||
| # auto-scroll issue can opt in. | ||
| "cli_refresh_interval": 0, |
There was a problem hiding this comment.
Please update the focused default-config test as part of this change: current tests/hermes_cli/test_config.py:1323-1328 explicitly asserts cli_refresh_interval == 1.0, while this PR changes only the config file.
| coerced_value = float(value) | ||
|
|
||
| value = coerced_value | ||
| # Convert value to appropriate type |
There was a problem hiding this comment.
Please retain current main's typed-setting guard (_default_value_for_key and the string preservation at current hermes_cli/config.py:8205-8290). This blanket coercion changes string enum values such as approvals.mode="off" into boolean False, which is unrelated to the refresh-default fix.
SummaryOne PR, #63992, directly addresses Issue #63895 by changing the classic CLI's idle refresh default from 1.0 to 0, which targets the periodic redraw identified as the scroll-hijack cause. Its full diff also includes unrelated configuration additions and reversions, while changing no tests. Related pull requests
DuplicatesThe core Suggested consolidationKeep #63992 open with a salvage path, consistent with the contributor's keep_open review: rebase onto current main, retain only the Complex graphflowchart LR
classDef open fill:#dbeafe,stroke:#1d4ed8,color:#1e3a8a
classDef merged fill:#dcfce7,stroke:#15803d,color:#14532d
classDef closed fill:#e5e7eb,stroke:#6b7280,color:#1f2937
classDef unverified fill:#f3f4f6,stroke:#9ca3af,color:#374151
classDef best stroke-width:3px,stroke:#b45309
classDef target stroke-width:3px,stroke:#4338ca
I63895(["issue #63895 (open)"])
P63992["PR #63992 (open)"]
P63992 -.->|partial| I63895
class I63895 open
class P63992 open
class P63992 target
click I63895 "https://github.com/NousResearch/hermes-agent/issues/63895"
click P63992 "https://github.com/NousResearch/hermes-agent/pull/63992"
Graph: solid arrow = fixes / best fix, dashed arrow = partial or unverified (see edge label); boxed group = PRs duplicating each other; amber border = best fix; indigo border = target; gray node = closed (state tag in the node label). Cross-PR triage: Reviewed 1 pull request and 1 issue in this complex. Each diff was read against this issue; Assessment working set: 8 kB of PR diffs, 2 kB of issue/PR text, 2 kB of discussion (3 comments), 1 verify verdict. verdicts reflect diff content, not PR titles. Part of an automated triage batch. |
Fixes #63895. Changes default from 1.0 to 0, preventing periodic prompt_toolkit redraws from fighting the terminal's native scrollback. Users can opt in via .