continuedev / continuedev/continue

Continue returns an unbounded huge stdout tool result

Open
#12,700 4 comments 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 returns an unbounded huge stdout tool result

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 single shell tool call can return more than 8 KiB of output to the provider loop, increasing memory, context, and retry pressure instead of being truncated or rejected.

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/c4f31a3dec4788713d5f184054db17cf

The Gist contains continue-huge-stdout-resource-bound.reproduce.py. Download and run:

gh gist clone c4f31a3dec4788713d5f184054db17cf continue-huge-stdout-resource-bound-reproducer
cd continue-huge-stdout-resource-bound-reproducer
python3 continue-huge-stdout-resource-bound.reproduce.py

To reuse an already-built local image:

python3 continue-huge-stdout-resource-bound.reproduce.py --skip-build

Expected successful reproduction output includes:

REPRODUCED

Log output

Expected successful reproduction output includes REPRODUCED.

Observed behavior: The reproducer asks Continue to run a command that prints 100000 bytes and checks that a large tool result is sent back to the local provider.

Expected behavior

Continue should cap, summarize, or reject oversized tool output before sending it back into the model/provider loop.

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 continue-huge-stdout-resource-bound.reproduce.py from the linked gist against @continuedev/cli 1.5.46, then trace the CLI shell-tool result path into the provider loop. Done means oversized stdout is capped, summarized, or rejected before it is sent to the provider, with the reproducer no longer reporting an unbounded result.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, python, typescript
Domain
ai, cli, devtools, performance
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
62/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.