Continue repeats identical tool calls instead of bounding the loop
Before submitting your bug report
Relevant environment info
- OS: Linux x86_64 Docker
- Continue version:
@continuedev/cli 1.5.46
- IDE version: CLI (
cn), no IDE
- Model: OpenAI-compatible local mock provider,
gpt-4
Description
Severity / performance impact: High. A repeated tool-use response can cause multiple committed tool side effects and repeated provider turns.
To reproduce
Prerequisites: Docker, Python 3, and the GitHub CLI (gh) for the clone command below. The linked reproducer is self-contained and uses only Python standard-library modules plus Docker. It builds the affected CLI version from the public package registry, starts a local mock provider, and runs the CLI in an isolated workspace. The Docker run is limited to 2 CPUs and 4 GiB RAM by default.
Complete self-contained reproducer: https://gist.github.com/N0zoM1z0/c166065dd2a35dfdbd634ee447460579
The Gist contains continue-repeated-identical-tool-loop.reproduce.py. Download and run:
gh gist clone c166065dd2a35dfdbd634ee447460579 continue-repeated-identical-tool-loop-reproducer
cd continue-repeated-identical-tool-loop-reproducer
python3 continue-repeated-identical-tool-loop.reproduce.py
To reuse an already-built local image:
python3 continue-repeated-identical-tool-loop.reproduce.py --skip-build
Expected successful reproduction output includes:
Log output
Expected successful reproduction output includes REPRODUCED.
Observed behavior: The local provider repeats a shell tool call after tool results arrive. The script checks for at least two side-effect log entries.
Expected behavior
Continue should detect repeated identical tool-use state and stop with a bounded error rather than executing the same work repeatedly.
Public-upstream status
This reproduces against stock public @continuedev/cli@1.5.46 built from npm.
Continue repeats identical tool calls instead of bounding the loop
Before submitting your bug report
Relevant environment info
@continuedev/cli 1.5.46cn), no IDEgpt-4Description
Severity / performance impact: High. A repeated tool-use response can cause multiple committed tool side effects and repeated provider turns.
To reproduce
Prerequisites: Docker, Python 3, and the GitHub CLI (
gh) for the clone command below. The linked reproducer is self-contained and uses only Python standard-library modules plus Docker. It builds the affected CLI version from the public package registry, starts a local mock provider, and runs the CLI in an isolated workspace. The Docker run is limited to 2 CPUs and 4 GiB RAM by default.Complete self-contained reproducer: https://gist.github.com/N0zoM1z0/c166065dd2a35dfdbd634ee447460579
The Gist contains
continue-repeated-identical-tool-loop.reproduce.py. Download and run:gh gist clone c166065dd2a35dfdbd634ee447460579 continue-repeated-identical-tool-loop-reproducer cd continue-repeated-identical-tool-loop-reproducer python3 continue-repeated-identical-tool-loop.reproduce.pyTo reuse an already-built local image:
Expected successful reproduction output includes:
Log output
Expected successful reproduction output includes
REPRODUCED.Observed behavior: The local provider repeats a shell tool call after tool results arrive. The script checks for at least two side-effect log entries.
Expected behavior
Continue should detect repeated identical tool-use state and stop with a bounded error rather than executing the same work repeatedly.
Public-upstream status
This reproduces against stock public @continuedev/cli@1.5.46 built from npm.