diff --git a/docs/docs/tools/improve.md b/docs/docs/tools/improve.md index aa0c051f..2777a6d5 100644 --- a/docs/docs/tools/improve.md +++ b/docs/docs/tools/improve.md @@ -20,6 +20,7 @@ ___ !!! note "The following features are available only for Qodo Merge 💎 users:" - The `Apply / Chat` checkbox, which interactively converts a suggestion into a committable code comment - The `More` checkbox to generate additional suggestions + - On Bitbucket (Cloud & Data Center) and GitLab Server (v16 and earlier), you can invoke [More Suggestions manually](#manual-more-suggestions) ## Example usage @@ -44,6 +45,13 @@ For example, you can choose to present all the suggestions as committable code c As can be seen, a single table comment has a significantly smaller PR footprint. We recommend this mode for most cases. Also note that collapsible are not supported in _Bitbucket_. Hence, the suggestions can only be presented in Bitbucket as code comments. +#### Manual more suggestions +To generate more suggestions (distinct from the ones already generated), for git-providers that don't support interactive checkbox option, you can manually run: + +``` +/improve --more_suggestions=true +``` + ### Automatic triggering To run the `improve` automatically when a PR is opened, define in a [configuration file](https://qodo-merge-docs.qodo.ai/usage-guide/configuration_options/#wiki-configuration-file): diff --git a/pr_agent/cli.py b/pr_agent/cli.py index ef161437..a741a0b8 100644 --- a/pr_agent/cli.py +++ b/pr_agent/cli.py @@ -86,7 +86,13 @@ def run(inargs=None, args=None): if get_settings().litellm.get("enable_callbacks", False): # There may be additional events on the event queue from the run above. If there are give them time to complete. get_logger().debug("Waiting for event queue to complete") - await asyncio.wait([task for task in asyncio.all_tasks() if task is not asyncio.current_task()]) + tasks = [task for task in asyncio.all_tasks() if task is not asyncio.current_task()] + if tasks: + _, pending = await asyncio.wait(tasks, timeout=30) + if pending: + get_logger().warning( + f"{len(pending)} callback tasks({[task.get_coro() for task in pending]}) did not complete within timeout" + ) return result