Skip to content

id(ssh): use the alternate screen for raw interactive SSH sessions #545

Closed

Description

@dezren39

What and why

Wrap interactive sessions in \x1b[?1049h/l so game repaints do not pile cleared frames into scrollback. REF wrongly claims this is already on main; RPT corrects it. Every view is a primary-screen clear and repaint, so game repaints pile cleared frames into the user's scrollback. The reference report wrongly says this is already on main.

Source

  • RPT §5 'Three things that get conflated'
  • RPT §5 Recommendation 1
  • RPT §11 correction 6
  • REF:168

RPT = doc/2026-10-18T18-40-00Z_report_platform_world_state/2026-10-18T18-40-00Z_report_platform_world_state.md, REF = doc/2026-10-18T00-00-00Z_reference_platform_state/2026-10-18T00-00-00Z_reference_platform_state.md. Both are uncommitted reports in the platform-world-apps-migration worktree.

Current status

Not started. grep -rn '1049' pkgs/id/src finds nothing; every view is a primary-screen clear and repaint, \x1b[H\x1b[2J (pkgs/id/src/world_presentation.rs:370, pkgs/id/src/world_ssh.rs:545/:550).

Acceptance criteria

  • Raw interactive sessions send \x1b[?1049h on start and \x1b[?1049l on every exit path (quit, disconnect, error)
  • Command (line) mode is unchanged
  • A test asserts the enter and leave sequences
  • Scrollback no longer collects cleared frames (checked by hand in a terminal)

Size

S

Prerequisites

None.

Activity

  1. added a commit that references this issue on Oct 22, 2026
    090c356
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions