Skip to content
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

Usability improvements #1191

Merged
merged 9 commits into from
Aug 8, 2024
Merged

Usability improvements #1191

merged 9 commits into from
Aug 8, 2024

Conversation

jtoberling
Copy link
Contributor

  • Improvement mode toml filelist have to be in full-path sorted mode.
    By using large project the current listing is "mixed" and very hard to use.

  • Increasing timeout value in chat_to_files finditer.
    By using DeepSeek API with "deepseek-coder" model without this timeout increment the resolution of completion is timing out quite frequently.

  • Adding "--skip-file-selection" / "-s" command line option to skip toml file selection editor in improvement mode.
    By using it in complex projects and repetitive tasks the file selector popup is especially disturbing and against usabilty.

Please consider to merge the above points as they are leading to a more smooth usability experiment.

@viborc viborc requested review from ATheorell and similato87 July 25, 2024 17:44
Copy link
Collaborator

@similato87 similato87 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job overall! The implementation looks solid, and the functionality is well thought out. The main thing needed now is to add tests. You can find the test cases test_main.py. Since there isn't a specific test case for the file selector, please write some tests for the main process to ensure everything passes.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The increased timeout from 1 to 10 seconds improves robustness but may excessively prolong execution. Consider a shorter timeout (e.g., 3-5 seconds) to balance reliability and performance.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Defaulted to 3 secs.
Added a new command line parameter "--diff_timeout INTEGER" to override.
Also created some test in tests/application/cli/test_main.py:test_improve_existing_project_diff_timeout for the new command line option.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great work on defaulting time and adding the new command line parameter for overriding. The test you created for this is a nice addition.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great idea! We're implementing this to save user time by skipping file selection. This will be included in a uniform config file where users can set all configurations, including the model. Sorting files is a good suggestion. Please add tests for these features.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added tests:

  • tests/core/test_file_selector_enhancements.py: test_file_selector_enhancement_skip_file_selector
  • tests/core/test_file_selector_enhancements.py: test_file_selector_enhancement_sort

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for adding the tests for the file selector enhancements. I appreciate your thoroughness in testing both skipping and sorting.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good location for user interface functions. We plan to move most functions into the config file. Please add tests for these features.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added test:

  • tests/application/cli/test_main.py:test_improve_existing_project_skip_file_selection

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Valuable enhancement. Thanks for covering this aspect.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good suggestion to support multiple languages. We will keep this feature as suggested.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also added Arduino *.ino files. They are basically C++ with some extra functions like "setup()" and "loop()" - works well with ChatGPT & DeepSeek.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Including the Arduino *.ino files was a smart move. It's good to know they integrate well with ChatGPT & DeepSeek.

@similato87
Copy link
Collaborator

  • Improvement mode toml filelist have to be in full-path sorted mode.
    By using large project the current listing is "mixed" and very hard to use.
  • Increasing timeout value in chat_to_files finditer.
    By using DeepSeek API with "deepseek-coder" model without this timeout increment the resolution of completion is timing out quite frequently.
  • Adding "--skip-file-selection" / "-s" command line option to skip toml file selection editor in improvement mode.
    By using it in complex projects and repetitive tasks the file selector popup is especially disturbing and against usabilty.

Please consider to merge the above points as they are leading to a more smooth usability experiment.

@jtoberling Thank you for your meaningful contributions! Your efforts have significantly impacted us, and we truly appreciate your dedication. We love having talented and passionate contributors like you on the team. Keep up the great work!

@similato87 similato87 added the enhancement New feature or request label Jul 28, 2024
@similato87
Copy link
Collaborator

@jtoberling I fully agree with the changes you’ve made and approve this PR. We'll discuss this further in our next group meeting. Great job!

Copy link
Collaborator

@similato87 similato87 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fully agree with the meaningful enhancements for skipping file selection and adding buffer time for large codebases. The extended support for more languages, including Arduino files, is a great addition. Everything is well-designed and clearly tested.

@viborc viborc merged commit 9faae97 into AntonOsika:main Aug 8, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants