Skip to content

fix(agent): skip invalid JSON candidates - #2683

Open
alectimison-maker wants to merge 1 commit into
webbrain-one:mainfrom
alectimison-maker:fix/skip-invalid-json-candidates
Open

fix(agent): skip invalid JSON candidates#2683
alectimison-maker wants to merge 1 commit into
webbrain-one:mainfrom
alectimison-maker:fix/skip-invalid-json-candidates

Conversation

@alectimison-maker

Copy link
Copy Markdown
Contributor

Summary

  • keep scanning model output after a balanced object-shaped candidate fails JSON.parse
  • preserve fenced-output priority, string escaping, and first-valid-object behavior
  • mirror the parser change across Chrome and Firefox and cover both planners with a regression test

Problem

Planner and classifier responses sometimes include an illustrative object before the final JSON result. When that first balanced candidate was not valid JSON, extractFirstJsonObject stopped scanning the candidate entirely, so a later valid plan was discarded.

Testing

  • node test/run.js: 1450 passed, 1 pre-existing repository failure (package.json is 26.0.10, newest CHANGELOG.md entry is 26.0.0)
  • node test/security/injection-corpus.mjs: 60/60 checks passed
  • Chrome/Firefox parser files are byte-identical

Scope

This does not relax plan validation or choose a later object when an earlier candidate is valid. It only advances after the earlier balanced candidate cannot be parsed as JSON.

@vercel

vercel Bot commented Aug 4, 2026

Copy link
Copy Markdown

@alectimison-maker is attempting to deploy a commit to the esokullu's projects Team on Vercel.

A member of the Team first needs to authorize it.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Updates shared planner/classifier JSON extraction to skip malformed balanced objects and continue to the first valid object.

Changes:

  • Continues scanning after JSON.parse failures.
  • Mirrors behavior across Chrome and Firefox.
  • Adds regression coverage for both planners.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.

File Description
src/chrome/src/agent/json-extract.js Adds resilient candidate scanning.
src/firefox/src/agent/json-extract.js Mirrors Chrome parser behavior.
test/run.js Tests malformed-candidate recovery.

馃挕 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants