Fix duplicate Ctrl-C interrupt messages#97
Merged
Zongwei9888 merged 4 commits intoHKUDS:mainfrom Feb 3, 2026
Merged
Conversation
…subcommands - Restructure CLI entry point using Click framework - Rename main() to run_interactive_cli() for clarity - Create @click.group() decorator for cli() as main entry point - Add 'run' subcommand for interactive session (default behavior) - Add 'config' subcommand placeholder for future configuration management - Add 'clean' subcommand with --cache, --logs, --all options - Update cli/__init__.py exports to use new cli and run_interactive_cli - Update cli_launcher.py to use Click CLI structure - Add click>=8.0.0 to requirements.txt - Create CLI_COMMANDS.md documentation with usage examples Benefits: - Extensible architecture for adding new subcommands without touching main logic - Professional CLI using industry-standard Click framework - Built-in --help and --version support - Backward compatible with existing workflows - Self-documenting commands
…t strings - Add _truncate_result() helper method in CLIWorkflowAdapter - Truncate repo_result at source (max 1000 chars) before returning - Remove redundant slicing in cli_app.py display_results() - Improves memory efficiency by avoiding building large strings only to discard them - Single source of truth via MAX_RESULT_LENGTH constant
- Added _interrupt_handled flag to track if KeyboardInterrupt was already handled - Updated run_interactive_session() to set flag when handling interrupt - Updated main() to check flag before printing duplicate message - Ensures only one clean interrupt message is displayed regardless of how many times Ctrl-C is pressed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Problem
When a user presses Ctrl-C twice in a row, the application currently prints two different interrupt messages:
run_interactive_session()main()This creates a confusing user experience with duplicate messages.
Solution
This PR implements a clean fix using an interrupt tracking flag:
_interrupt_handledflag to theCLIAppclass to track whether aKeyboardInterrupthas already been handledrun_interactive_session()to set the flag when it handles aKeyboardInterruptmain()to check the flag before printing its own interrupt messageResult
Now only one clean interrupt message is displayed, regardless of how many times Ctrl-C is pressed. The fix maintains existing behavior while eliminating the duplicate message issue.
Changes
cli/cli_app.py:_interrupt_handledinstance variableKeyboardInterrupthandlers in bothrun_interactive_session()andmain()Testing
The fix can be tested by:
Pull Request opened by Augment Code with guidance from the PR author