Skip to content

fix(coderd/taskname): parse task name JSON with trailing text (#25005)#25300

Merged
f0ssel merged 1 commit into
release/2.32from
cj/r232/pr-25005
May 18, 2026
Merged

fix(coderd/taskname): parse task name JSON with trailing text (#25005)#25300
f0ssel merged 1 commit into
release/2.32from
cj/r232/pr-25005

Conversation

@johnstcn
Copy link
Copy Markdown
Member

Anthropic task name responses can include valid JSON followed by a closing fence or extra text, which made json.Unmarshal fail with trailing-character errors and forced fallback naming.

This updates task name JSON extraction to accept the first JSON value after optional fences and adds regression coverage for fenced and bare JSON with trailing content.

(cherry picked from commit 87d580d)

Anthropic task name responses can include valid JSON followed by a
closing fence or extra text, which made `json.Unmarshal` fail with
trailing-character errors and forced fallback naming.

This updates task name JSON extraction to accept the first JSON value
after optional fences and adds regression coverage for fenced and bare
JSON with trailing content.

(cherry picked from commit 87d580d)
@johnstcn johnstcn self-assigned this May 13, 2026
Copilot AI review requested due to automatic review settings May 13, 2026 16:12
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Fix task name JSON parsing to handle Anthropic responses where valid JSON is followed by trailing text (e.g., closing fence or commentary), which previously broke json.Unmarshal and forced fallback naming.

Changes:

  • Replace ad-hoc fence-stripping with a regex that tolerates trailing content after the closing fence.
  • After fence stripping, decode the first JSON value via json.Decoder and return its raw form, ignoring trailing text.
  • Add regression tests covering fenced/bare JSON with trailing fences or commentary.

Reviewed changes

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

File Description
coderd/taskname/taskname.go Adds regex for markdown fence handling and uses a JSON decoder to extract the first JSON value.
coderd/taskname/taskname_internal_test.go Adds test cases for fenced/bare JSON with trailing text or trailing fence.

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

@johnstcn johnstcn requested a review from matifali May 13, 2026 16:14
@f0ssel f0ssel merged commit f6beb9d into release/2.32 May 18, 2026
35 checks passed
@f0ssel f0ssel deleted the cj/r232/pr-25005 branch May 18, 2026 17:02
@github-actions github-actions Bot locked and limited conversation to collaborators May 18, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants