continuedev / continuedev/continue

Continue repeats identical tool calls instead of bounding the loop

Open
#12,702 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area:tools kind:bug os:linux
Dominant language
TypeScript
Stars
36k
Forks
5.4k
PR merge metrics
No merged PRs in 30d

Description

Continue repeats identical tool calls instead of bounding the loop

Before submitting your bug report

  • I checked for duplicate local reproduction drafts.
  • I reduced the reproducer to a single deterministic local-provider case.

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:

REPRODUCED

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by running the self-contained reproducer in continue-repeated-identical-tool-loop.reproduce.py, using the documented Docker and Python commands. Trace the CLI tool-call loop that handles tool results and identify where repeated identical state can continue. Done means the repeated call is bounded with an error and the reproducer no longer records multiple side effects.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, python, typescript
Domain
ai, cli, devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.