Migrate from deprecated Survey to Bubbletea/Huh for interactive prompts #96
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Migrates the AppPack CLI from the deprecated AlecAivazis/survey library to the modern charmbracelet/huh library for all interactive terminal prompts. This ensures the CLI continues to work with a supported, actively maintained TUI framework.
Key Changes
github.com/AlecAivazis/survey/v2withgithub.com/charmbracelet/huh v0.6.0ui/questions.goto use Huh API while maintaining backwards compatibilityhuh.NewSelect[string]()huh.NewInput()huh.NewText()Files Changed
go.mod,go.sum- Dependency updatesui/questions.go- New Huh-based abstraction layercmd/scheduledTasks.go,cmd/shell.go- Command promptsstacks/*.go(6 files) - Stack configuration promptsBenefits
Test Plan
go build .)./apppack version)Additional Notes
This migration was necessary because Survey has been deprecated and is no longer maintained. Huh is built on the solid Bubbletea foundation and is actively maintained by Charm, making it the recommended replacement for modern Go CLI applications.
The migration maintains full backwards compatibility - users will see the same prompts and behavior, just with improved rendering and responsiveness.