feat(coderd/x/chatd): add structured error fields to wait_agent error payload - #27478
Conversation
|
@codex review |
|
Codex Review: Didn't find any major issues. Chef's kiss. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
4e8294b to
de969b6
Compare
cfb6d18 to
b46a779
Compare
|
@codex review |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
de969b6 to
5a743ff
Compare
b46a779 to
ed49709
Compare
|
@codex review |
|
Codex Review: Didn't find any major issues. More of your lovely PRs please. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
5a743ff to
f50e4ab
Compare
ed49709 to
b3885ed
Compare
|
@codex review |
|
Codex Review: Didn't find any major issues. Chef's kiss. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
f50e4ab to
f221d4d
Compare
b3885ed to
8581cd8
Compare
|
@codex review |
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
f221d4d to
87f065b
Compare
8581cd8 to
f9d37ea
Compare
|
@codex review |
|
Codex Review: Didn't find any major issues. Chef's kiss. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
f9d37ea to
bfd2e8e
Compare
|
@codex review |
|
Codex Review: Didn't find any major issues. Already looking forward to the next diff. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Stacked on #27477 (now merged into main); this branch was rebased onto main accordingly. That PR puts the actionable provider detail into the
wait_agentlast_errorstring; this PR additionally exposes the decodedChatErrorfields as structured siblings so the parent model does not have to parse prose to decide whether respawning makes sense.Changes
wait_agenterror payloads gain, when the persistedlast_errordecodes as aChatError:last_error_kind(defaults togenericwhen empty)last_error_retryable(explicit bool)last_error_detail(only when non-empty, verbatim as stored and as the chat UI renders it)last_errorstays a string with the semantics from fix(coderd/x/chatd): surface child error detail in wait_agent last_error #27477. Unrecognized payloads fall back to the status reason and get none of the structured fields.subagentLastErrorMessagebecomessubagentLastError, returning the decoded payload alongside the display string so decoding happens once for both the poll and timeout-recheck paths.No other tool payloads change, and no repository consumer parses the
wait_agentresponse shape, so the fields are additive.Validation
go test ./coderd/x/chatd/...,make lint/gogreen.wait_agentresults carriedlast_error_kind/last_error_retryable/last_error_detailfor a detail fixture, and correctly omittedlast_error_detailfor a message-only fixture.