Skip to content

pr 405#406

Closed
skulidropek wants to merge 6 commits into
mainfrom
pr-405
Closed

pr 405#406
skulidropek wants to merge 6 commits into
mainfrom
pr-405

Conversation

@skulidropek

Copy link
Copy Markdown
Member
  • Initial commit with task details
  • chore(release): version packages
  • fix(terminal): suppress alternate screen for project terminals to enable scrollback
  • Revert "Initial commit with task details"
  • fix(terminal): preload tmux history for native scrollback

konard and others added 6 commits June 15, 2026 06:54
Adding .gitkeep for PR creation (default mode).
This file will be removed when the task is complete.

Issue: #404
…ble scrollback

Project terminals run inside tmux, which switches xterm into the alternate
screen buffer (DEC 47/1047/1049). The alternate screen keeps no scrollback,
so output was cleared on every repaint and wheel scroll had nothing to reveal
("constantly clears all text, only shows one page").

Wire the already-implemented suppressAlternateScreen query-suppression option
on for project terminals via a new pure gating module (terminal-screen-policy),
keeping tmux/TUI output in xterm's normal 50k-line scrollback buffer.

Refs #404
@skulidropek

skulidropek commented Jun 15, 2026

Copy link
Copy Markdown
Member Author

AI Session Backup

Commit: 27dc01e
Status: success
Files: 4 (4.31 MB)
Links: README | Manifest

git status

On branch pr-405
nothing to commit, working tree clean

@coderabbitai

coderabbitai Bot commented Jun 15, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 29c2a9f1-128a-483e-88c3-cff24030ab5a

📥 Commits

Reviewing files that changed from the base of the PR and between 76f4fab and 27dc01e.

📒 Files selected for processing (11)
  • .changeset/terminal-scrollback-alternate-screen.md
  • packages/api/src/services/terminal-sessions.ts
  • packages/api/tests/terminal-sessions.test.ts
  • packages/app/CHANGELOG.md
  • packages/app/package.json
  • packages/docker-git-session-sync/CHANGELOG.md
  • packages/docker-git-session-sync/package.json
  • packages/terminal/src/web/index.ts
  • packages/terminal/src/web/terminal-panel-runtime.ts
  • packages/terminal/src/web/terminal-screen-policy.ts
  • packages/terminal/tests/web/terminal-alternate-screen.test.ts

📝 Walkthrough

Summary by CodeRabbit

Примечания к выпуску

  • Исправления ошибок

    • Терминалы проекта теперь сохраняют полную историю вывода с поддержкой прокрутки вверх.
    • Вывод больше не очищается при перерисовке терминала.
  • Chores

    • Обновлена версия до 1.3.2.

Walkthrough

Добавлен модуль политик xterm-экрана (terminal-screen-policy.ts), подавляющий alternate screen и управляющий mouse tracking для project-сессий. На стороне API в renderTmuxAttachCommand внедрена предзагрузка tmux pane-history через новую функцию renderTmuxInitialScrollbackCommand. Версии пакетов обновлены автоматически.

Changes

Поддержка scrollback в project terminal

Layer / File(s) Summary
Модуль политик xterm-экрана
packages/terminal/src/web/terminal-screen-policy.ts, packages/terminal/src/web/index.ts, packages/terminal/src/web/terminal-panel-runtime.ts, packages/terminal/tests/web/terminal-alternate-screen.test.ts
Новый модуль вводит предикат isProjectTerminalSession и две политики: shouldAllowTerminalMouseTracking и shouldSuppressTerminalAlternateScreen. Локальная реализация в terminal-panel-runtime.ts удалена; querySuppression расширен suppressAlternateScreen. Реэкспорт добавлен в web/index.ts. Unit-тесты проверяют оба типа сессий.
Предзагрузка tmux pane-history при attach
packages/api/src/services/terminal-sessions.ts, packages/api/tests/terminal-sessions.test.ts
Добавлены константы-лимиты и функция renderTmuxInitialScrollbackCommand, формирующая shell-пайплайн tmux capture-pane → tail → sed. Вызов встроен в renderTmuxAttachCommand перед exec tmux attach-session. Тест обновлён с проверками новых фрагментов и их порядка.
Changeset и версионные бампы
.changeset/terminal-scrollback-alternate-screen.md, packages/app/..., packages/docker-git-session-sync/...
Добавлен changeset, описывающий исправление. Версии app (1.3.1→1.3.2) и docker-git-session-sync (1.0.60→1.0.61) обновлены с записями в CHANGELOG.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • ProverCoderAI/docker-git#320: Затрагивает renderTmuxAttachCommand и тесты скрипта attach — напрямую пересекается с изменениями предзагрузки scrollback в текущем PR.
  • ProverCoderAI/docker-git#322: Работает с querySuppression/suppressAlternateScreen в том же месте xterm-конфигурации, что и текущий PR при добавлении suppressAlternateScreen в mountTerminalSession.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch pr-405

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@skulidropek

Copy link
Copy Markdown
Member Author

Superseded by PR #405 updates.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants