Skip to content

Repair terminal resize frames and standalone tmux startup - #745

Draft
igorcosta wants to merge 5 commits into
mainfrom
repair/terminal-resize-tmux
Draft

igorcosta wants to merge 5 commits into
mainfrom
repair/terminal-resize-tmux

Conversation

@igorcosta

@igorcosta igorcosta commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Resizing iTerm2 could archive stale full-screen frames into scrollback, duplicate the transcript and composer, and erase saved history during an Ink overflow reset. The renderer now erases addressed rows and uses clamped cursor movement inside owned full-screen frames. Inline and paused output retain their existing behavior.

Compiled Bun executables now relaunch their real executable inside tmux. Plain --tmux works in the current directory without Git; --worktree and --zit select isolation explicitly. Configuration saves wait for brief startup contention so account-managed connectors can apply reliably. Configuration references and docs/terminal-compatibility.md describe the behavior.

The compatibility workflow exercises real tmux and native iTerm2, Ghostty, cmux, and VS Code windows through Tuistory and XCTest. Native scenarios run the fixture inside an interactive shell, paste its command, use physical key events, and check idle/streaming resize, transcript and draft retention, cursor editing, and exit. VS Code uses a maximized terminal panel. Startup failures capture bounded terminal text and a native screenshot. The iTerm2 Python API stays disabled. Native app signatures and Gatekeeper assessment are verified before preparing the installed app for unattended launch on the disposable runner.

Local validation:

  • Lint, type checking, build, focused renderer/configuration/workflow checks, and a real PTY scenario passed. The revised XCTest project compiled successfully.
  • Native iTerm2 3.7.7 renderer fixtures passed idle and streaming resize at four window sizes, with exactly one header, history marker, and draft. This is separate from live-provider CLI proof.
  • The aggregate unit run passed 13,744 tests and stopped with three worker-start timeouts. The three missing files passed all 50 tests in focused recovery.
  • The aggregate terminal run passed 538 tests with one extension-builder navigation timeout and three skips. Both legacy and enhanced keyboard variants passed in isolation.
  • Both aggregate commands remain nonzero locally; their recovery results do not turn those commands green.

CI at 196f2403: tmux, Ghostty, and cmux passed native compatibility. iTerm2 and VS Code checks failed and need further investigation. Full proof and regular CI were still running at the last check. This PR remains a draft; the native matrix is not signed off.

igorcosta and others added 4 commits November 5, 2026 22:20
…rtup

Erase resized full-screen rows atomically without archival erase-display sequences. Relaunch the real compiled Bun executable inside tmux and allow current-directory, worktree, or Zit sessions independently of terminal transport.

Add real tmux pane and scrollback checks, native macOS terminal compatibility scenarios, and updated CLI documentation.

Co-authored-by: Autohand Evolve <code-noreply@autohand.ai>
Register native application bundles and launch their actual URLs on fresh macOS runners. Prepare the checksum-verified Zit binary explicitly because development postinstall intentionally skips it, and preserve configured Zit resolution in tmux scenarios. Avoid duplicate push and pull-request CI for repair branches.

Co-authored-by: Autohand Evolve <code-noreply@autohand.ai>
Start the actual application with NSWorkspace and attach XCTest after launch, preserving command arguments and fresh application instances. Export desktop captures and native display diagnostics so launch failures are inspectable on hosted runners.

Co-authored-by: Autohand Evolve <code-noreply@autohand.ai>
Keep stale full-screen paints inside the viewport and preserve scrollback during Ink overflow resets. Wait for brief contention between startup configuration writes, and sample completed frames in terminal scenarios.

Verify native terminal signatures and Gatekeeper assessment before preparing the installed app for unattended CI launch.

Focused renderer, configuration, workflow, PTY, and native iTerm2 checks passed. Aggregate validation still records worker-start failures and one question-navigation timeout; focused recovery passed.

Co-authored-by: Autohand Evolve <code-noreply@autohand.ai>
@igorcosta igorcosta changed the title Repair iTerm2 resize repaint and standalone tmux sessions Repair terminal resize frames and standalone tmux startup Nov 5, 2026
@igorcosta igorcosta added the full-proof Run the complete lint, unit, build, and terminal proof on GitHub label Nov 5, 2026
Run the fixture inside an interactive shell on every terminal and paste its command before pressing Return. This avoids XCTest text-input sessions against read-only terminal views and retains completion output after the fixture exits.

Maximize the VS Code terminal panel and attach bounded terminal text and a native screenshot when startup fails.

The revised XCTest project compiled successfully. Native automation boundary and workflow checks passed, along with lint and type checking. Native CI verification remains pending.

Co-authored-by: Autohand Evolve <code-noreply@autohand.ai>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

full-proof Run the complete lint, unit, build, and terminal proof on GitHub

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant