-
Notifications
You must be signed in to change notification settings - Fork 263
UX changes for concurX extension to be TUI #6368
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
base: main
Are you sure you want to change the base?
Conversation
- Integrated GetResolvedServices RPC (from main) with ParseGitHubUrl RPC (from branch) - Both importManager and ghCli dependencies now coexist in projectService - All tests passing for both features - Regenerated protobuf files with protoc-gen-go-grpc v1.5.1
…support-interactive
|
would like to have the log files showing in the output as an option or only displayed when the user passes |
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 adds Terminal User Interface (TUI) capabilities to the Azure Developer CLI extensions system and refactors the concurX extension to use Bubble Tea for an interactive deployment experience. The changes enable extensions to opt into interactive mode where stdin/stdout/stderr are directly connected to the terminal, which is required for TUI libraries.
Key changes:
- Added
interactiveboolean field to extension metadata that enables direct terminal access for TUI applications - Refactored concurX extension from console logging to a full Bubble Tea TUI with real-time deployment status, progress indicators, and visual styling
- Added an animated "about" command to the concurX extension featuring scrolling ASCII art with Italian flag colors
Reviewed changes
Copilot reviewed 7 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| cli/azd/pkg/extensions/runner.go | Added logic to enable interactive mode when extension.Interactive is true, ensuring stdin/stdout/stderr connect directly to terminal |
| cli/azd/pkg/extensions/registry.go | Added Interactive field to ExtensionVersion struct for registry metadata |
| cli/azd/pkg/extensions/manager.go | Propagated Interactive field during extension installation |
| cli/azd/pkg/extensions/extension.go | Added Interactive field to Extension struct |
| cli/azd/extensions/microsoft.azd.extensions/internal/models/extension_schema.go | Added Interactive field to extension schema model with YAML marshaling |
| cli/azd/extensions/microsoft.azd.extensions/internal/cmd/publish.go | Included Interactive field when publishing extensions |
| cli/azd/extensions/microsoft.azd.concurx/internal/cmd/up.go | Refactored from console-based to TUI-based deployment using Bubble Tea, extracted logic into separate functions |
| cli/azd/extensions/microsoft.azd.concurx/internal/cmd/deployment_model.go | New file implementing Bubble Tea model for deployment visualization with service status tracking, spinner animations, and styled output |
| cli/azd/extensions/microsoft.azd.concurx/internal/cmd/concurrent_deployer.go | New file containing deployment orchestration logic with provision workflow, concurrent service deployment, build gate synchronization, and error handling |
| cli/azd/extensions/microsoft.azd.concurx/internal/cmd/about_model.go | New file implementing animated about screen with scrolling ASCII art |
| cli/azd/extensions/microsoft.azd.concurx/internal/cmd/about.go | New command definition for about screen |
| cli/azd/extensions/microsoft.azd.concurx/internal/cmd/root.go | Registered new about command |
| cli/azd/extensions/microsoft.azd.concurx/go.mod | Added Bubble Tea, Bubbles, and Lipgloss dependencies |
| cli/azd/extensions/microsoft.azd.concurx/go.sum | Updated dependency checksums |
| cli/azd/extensions/microsoft.azd.concurx/extension.yaml | Set interactive: true to enable TUI mode |
| cli/azd/extensions/extension.schema.json | Added interactive boolean property to extension schema with description |
| cli/azd/.vscode/cspell.yaml | Added bubbletea, lipgloss, and gopxl to spelling dictionary |
| .gitignore | Corrected binary names from concurx to microsoft.azd.concurx |
Required #6367 first.
preview for Aspire-shop deployment
concurX-preview-aspire-shop.mp4
Example for looking at logs (showing a non-Aspire App)
concurX-logs.mp4
fix: #304