-
Notifications
You must be signed in to change notification settings - Fork 0
Connect Terminal Component to CLI Service with Interactive Process Support #26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Co-authored-by: KSemenenko <[email protected]>
@copilot fix tests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements the complete integration between the Terminal Blazor component and the CLI service to enable real-time interactive terminal functionality. The implementation supports both traditional command execution and interactive CLI tools through stdin piping.
Key changes include:
- Enhanced CLI service with interactive process support using anonymous pipes for stdin communication
- Smart terminal input handling that differentiates between command mode and interactive mode
- Comprehensive test coverage for the new interactive functionality
Reviewed Changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 3 comments.
File | Description |
---|---|
CodeUI.Web/Components/Pages/Terminal.razor | Enhanced terminal component with dual input modes, interactive command detection, and real-time process state management |
CodeUI.Core/Services/ICliExecutor.cs | Added interface method for starting interactive processes with stdin support |
CodeUI.Core/Services/CliExecutor.cs | Implemented interactive process functionality using anonymous pipes for stdin communication |
CodeUI.Tests/Services/CliExecutorInteractiveTests.cs | Added comprehensive test suite for interactive CLI process functionality |
…closure Co-authored-by: KSemenenko <[email protected]>
Fixed the test failure in |
Tests are now fixed and all passing! ✅ Current Status:
The test failures were resolved in commit 36cc526 which fixed the stdin pipe disposal issue causing premature process termination in interactive CLI processes. |
This PR implements the complete connection between the Blazor terminal component and the CLI service layer, enabling real-time interaction with both interactive and non-interactive CLI processes.
Key Features Implemented
Interactive Process Support
Added full stdin piping capability to the
CliExecutor
service using anonymous pipes, enabling real-time interaction with CLI tools:Smart Terminal Input Handling
The terminal component now automatically detects and handles two distinct modes:
Real-time Output Streaming
Enhanced the existing reactive output streaming with process state monitoring:
Technical Implementation
Enhanced CLI Service Architecture
StartProcessAsync()
unchanged for non-interactive useStartInteractiveProcessAsync()
with stdin pipingTerminal Component Improvements
Supported Interactive Commands
The terminal now supports real-time interaction with:
Testing Results
The terminal component now provides a complete CLI experience with both traditional command execution and modern interactive tool support, meeting all requirements for real-time CLI interaction.
Fixes #4.
Recent Updates
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.