[PR #79] [MERGED] feat(tui): iteration-based architecture with streaming improvements #124

Closed
opened 2026-02-27 10:22:19 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/mikeyobrien/ralph-orchestrator/pull/79
Author: @mikeyobrien
Created: 1/20/2026
Status: Merged
Merged: 1/20/2026
Merged by: @mikeyobrien

Base: mainHead: feature/tui


📝 Commits (4)

  • b9297c5 feat(tui): refactor to iteration-based architecture with snapshot testing
  • 3d0e053 fix(tui): clear viewport buffer to prevent artifacts on iteration switch
  • f3db307 fix(tui): autoscroll content and preserve markdown line boundaries
  • 57be8dc fix(tui): remove ellipsis truncation from TUI content

📊 Changes

152 files changed (+17009 additions, -1768 deletions)

View changed files

📝 .claude/commands/verify-behaviors.md (+2 -2)
📝 AGENTS.md (+2 -1)
📝 Cargo.lock (+660 -7)
📝 Cargo.toml (+7 -1)
📝 PROMPT.md (+4 -2)
📝 README.md (+3 -4)
📝 crates/ralph-adapters/Cargo.toml (+12 -0)
📝 crates/ralph-adapters/src/cli_backend.rs (+11 -14)
📝 crates/ralph-adapters/src/lib.rs (+4 -1)
📝 crates/ralph-adapters/src/pty_executor.rs (+174 -55)
📝 crates/ralph-adapters/src/stream_handler.rs (+1134 -0)
📝 crates/ralph-cli/Cargo.toml (+3 -0)
📝 crates/ralph-cli/src/init.rs (+7 -3)
📝 crates/ralph-cli/src/main.rs (+209 -115)
📝 crates/ralph-cli/src/sop_runner.rs (+3 -1)
📝 crates/ralph-core/src/config.rs (+0 -7)
📝 crates/ralph-core/src/lib.rs (+3 -0)
crates/ralph-core/src/text.rs (+108 -0)
crates/ralph-core/src/utils.rs (+71 -0)
📝 crates/ralph-tui/Cargo.toml (+6 -1)

...and 80 more files

📄 Description

Summary

  • Refactored TUI to iteration-based architecture with snapshot testing for visual regression protection
  • Fixed viewport buffer artifacts when switching between iterations
  • Improved autoscroll behavior with proper markdown line boundary preservation
  • Removed ellipsis truncation from TUI content to show full text

Key Changes

  • New IterationBuffer for per-iteration content management
  • Snapshot tests capturing header, footer, content, and full layout at various widths
  • Stream handler improvements for markdown/ANSI rendering in TUI mode
  • Navigation between iterations with proper scroll position preservation

Test Plan

  • All 667+ tests pass locally
  • CI passes
  • Manual testing of TUI iteration navigation
  • Verify no visual regressions in TUI rendering

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/mikeyobrien/ralph-orchestrator/pull/79 **Author:** [@mikeyobrien](https://github.com/mikeyobrien) **Created:** 1/20/2026 **Status:** ✅ Merged **Merged:** 1/20/2026 **Merged by:** [@mikeyobrien](https://github.com/mikeyobrien) **Base:** `main` ← **Head:** `feature/tui` --- ### 📝 Commits (4) - [`b9297c5`](https://github.com/mikeyobrien/ralph-orchestrator/commit/b9297c509e444c0d620555aa7fed9f48ef34f0f1) feat(tui): refactor to iteration-based architecture with snapshot testing - [`3d0e053`](https://github.com/mikeyobrien/ralph-orchestrator/commit/3d0e05389afe9a8b7bce44290590c0d2d17386b7) fix(tui): clear viewport buffer to prevent artifacts on iteration switch - [`f3db307`](https://github.com/mikeyobrien/ralph-orchestrator/commit/f3db30716cf31ab1c7d87c7bf860224239081e44) fix(tui): autoscroll content and preserve markdown line boundaries - [`57be8dc`](https://github.com/mikeyobrien/ralph-orchestrator/commit/57be8dc6d693442c5a70b0c534ae61dafc97b450) fix(tui): remove ellipsis truncation from TUI content ### 📊 Changes **152 files changed** (+17009 additions, -1768 deletions) <details> <summary>View changed files</summary> 📝 `.claude/commands/verify-behaviors.md` (+2 -2) 📝 `AGENTS.md` (+2 -1) 📝 `Cargo.lock` (+660 -7) 📝 `Cargo.toml` (+7 -1) 📝 `PROMPT.md` (+4 -2) 📝 `README.md` (+3 -4) 📝 `crates/ralph-adapters/Cargo.toml` (+12 -0) 📝 `crates/ralph-adapters/src/cli_backend.rs` (+11 -14) 📝 `crates/ralph-adapters/src/lib.rs` (+4 -1) 📝 `crates/ralph-adapters/src/pty_executor.rs` (+174 -55) 📝 `crates/ralph-adapters/src/stream_handler.rs` (+1134 -0) 📝 `crates/ralph-cli/Cargo.toml` (+3 -0) 📝 `crates/ralph-cli/src/init.rs` (+7 -3) 📝 `crates/ralph-cli/src/main.rs` (+209 -115) 📝 `crates/ralph-cli/src/sop_runner.rs` (+3 -1) 📝 `crates/ralph-core/src/config.rs` (+0 -7) 📝 `crates/ralph-core/src/lib.rs` (+3 -0) ➕ `crates/ralph-core/src/text.rs` (+108 -0) ➕ `crates/ralph-core/src/utils.rs` (+71 -0) 📝 `crates/ralph-tui/Cargo.toml` (+6 -1) _...and 80 more files_ </details> ### 📄 Description ## Summary - **Refactored TUI to iteration-based architecture** with snapshot testing for visual regression protection - **Fixed viewport buffer artifacts** when switching between iterations - **Improved autoscroll behavior** with proper markdown line boundary preservation - **Removed ellipsis truncation** from TUI content to show full text ## Key Changes - New `IterationBuffer` for per-iteration content management - Snapshot tests capturing header, footer, content, and full layout at various widths - Stream handler improvements for markdown/ANSI rendering in TUI mode - Navigation between iterations with proper scroll position preservation ## Test Plan - [x] All 667+ tests pass locally - [x] CI passes - [ ] Manual testing of TUI iteration navigation - [x] Verify no visual regressions in TUI rendering --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 10:22:19 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ralph-orchestrator#124
No description provided.