Skip to content

fix(cli): reduce duplicated chrome after terminal resize - #59729

Closed
angeon922-collab wants to merge 2 commits into
NousResearch:mainfrom
angeon922-collab:fix/cli-statusbar-config
Closed

fix(cli): reduce duplicated chrome after terminal resize#59729
angeon922-collab wants to merge 2 commits into
NousResearch:mainfrom
angeon922-collab:fix/cli-statusbar-config

Conversation

@angeon922-collab

@angeon922-collab angeon922-collab commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Make classic CLI startup honor persisted display.tui_statusbar/statusbar config instead of always enabling the status bar
  • Add display.cli_rebuild_scrollback_on_redraw as an opt-in recovery mode for terminals/tmux stacks that stamp prompt chrome into scrollback during fullscreen/restore resizes
  • When enabled, /redraw and width-change resize recovery send CSI 3J before replaying bounded output history, removing stale prompt/input-rule rows from scrollback
  • Add focused tests for persisted status-bar visibility and scrollback rebuild behavior

Test Plan

  • /home/angeon/.hermes/hermes-agent/venv/bin/python3 -m py_compile cli.py hermes_cli/config.py tests/cli/test_cli_force_redraw.py
  • /home/angeon/.hermes/hermes-agent/venv/bin/python3 -m pytest tests/cli/test_cli_force_redraw.py tests/cli/test_cli_status_bar.py -q -o 'addopts='

@alt-glitch alt-glitch added type/bug Something isn't working comp/cli CLI entry point, hermes_cli/, setup wizard P3 Low — cosmetic, nice to have labels Jul 6, 2026
@angeon922-collab angeon922-collab changed the title fix(cli): honor persisted status bar visibility fix(cli): reduce duplicated chrome after terminal resize Jul 6, 2026
@teknium1

Copy link
Copy Markdown
Contributor

Thanks for the focused CLI recovery work. The persisted-statusbar portion addresses a current-main defect: tui_gateway/server.py:10746 writes display.tui_statusbar, while classic CLI startup still sets _status_bar_visible = True unconditionally at cli.py:4127.

Suggested changes

  • Preserve the current default behavior when salvaging the scrollback gate. Current resize recovery deliberately uses CSI 2J only (cli.py:4340-4346) because CSI 3J removes the startup banner and tool summary, which _replay_output_history cannot restore (cli.py:4307-4312). Make that irreversible opt-in effect explicit in the configuration description or user-facing documentation.

This is an automated hermes-sweeper review.

@teknium1 teknium1 added sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades sweeper:risk-platform-windows Sweeper risk: may break or behave differently on native Windows sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform labels Jul 15, 2026
@teknium1

Copy link
Copy Markdown
Contributor

Merged via PR #86260 as part of the duplicated-CLI-chrome class fix. Your commit was cherry-picked onto current main with your authorship preserved in git log. Thank you!

@teknium1 teknium1 closed this Aug 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cli CLI entry point, hermes_cli/, setup wizard P3 Low — cosmetic, nice to have sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades sweeper:risk-platform-windows Sweeper risk: may break or behave differently on native Windows type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants