fix: enhance interactive mode for compatibility checks and prompts #79
+62
−35
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.
Improve Hyvä Compatibility Check UX and Code Quality
Problem
The Hyvä compatibility checker had several UX and code quality issues:
MultiSelectPromptwith mutually exclusive options (e.g., "show-all" vs "incompatible-only")[ERROR]box when finding compatibility issues, suggesting MageForge was broken rather than modules having issuesSolution
Refactored interactive mode to use logical prompt flow and improved messaging:
1. Replace MultiSelect with Sequential Prompts
SelectPromptfor display mode (issues | incompatible-only | show-all)SelectPromptfor module scope (third-party | all)ConfirmPromptfor detailed view (yes | no)2. Improved Result Messaging
$io->error()to informativewriteln()with icons3. Code Quality Improvements
DISPLAY_MODE_*,SCOPE_*)\Exceptionto\Throwablefor comprehensive error catchingfinallyblock for guaranteed executionChanges
MultiSelectPromptwithSelectPromptandConfirmPromptDISPLAY_MODE_ISSUES,DISPLAY_MODE_INCOMPATIBLE_ONLY,DISPLAY_MODE_SHOW_ALL,SCOPE_THIRD_PARTY,SCOPE_ALLrestoreTty()andresetPromptEnvironment()tofinallyblocknewLine()before exit for spacingTesting