Skip to content

Conversation

@michaelos443
Copy link

Summary

This PR fixes the behavior where pressing Ctrl-C twice in rapid succession would print two different interruption messages.

Problem

Previously, when the user pressed Ctrl-C:

  1. First interrupt: run_interactive_session() caught the KeyboardInterrupt and printed "⚠️ Process interrupted by user"
  2. Second interrupt: main() caught another KeyboardInterrupt and printed "⚠️ Application interrupted by user"

This resulted in duplicate, inconsistent messages being displayed to the user.

Solution

Modified run_interactive_session() to re-raise the KeyboardInterrupt instead of handling it directly. This allows main() to handle all keyboard interrupts uniformly with a single message, ensuring consistent user experience regardless of how many times Ctrl-C is pressed.


Pull Request opened by Augment Code with guidance from the PR author

- Convert free-standing main() coroutine into a proper Click group
- Add 'run' sub-command for starting interactive session
- Maintain backwards compatibility (invoking without sub-command starts session)
- Replace shell-based pycache cleanup with secure shutil.rmtree approach
- Add click>=8.0.0 to requirements.txt

This enables adding sub-commands like 'deepcode config' or 'deepcode clean'
without touching the main logic.
Instead of building 3 giant strings and then slicing each to 1000 chars at display time in cli_app.py, this change truncates once at the source inside workflow_adapter and passes already-truncated snippets.

Changes:

- Add truncate_for_display() helper function with configurable limit

- Add CLI_DISPLAY_TRUNCATE_LIMIT constant (1000) for centralized configuration

- Apply truncation in process_input_with_orchestration() before returning results

- Simplify display_results() in cli_app.py by removing redundant truncation logic
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant