show error details of failed requests in v2 UI (#279959)

re https://github.com/microsoft/vscode/issues/278065
This commit is contained in:
Johannes Rieken
2025-11-28 12:46:20 +01:00
committed by GitHub
parent a1fc464b8e
commit b299fed13c
2 changed files with 19 additions and 12 deletions

View File

@@ -1443,21 +1443,29 @@ export class InlineChatController2 implements IEditorContribution {
this._store.add(autorun(r => {
const response = lastResponseObs.read(r);
this._zone.value.widget.updateInfo('');
if (!response?.isInProgress.read(r)) {
if (response?.result?.errorDetails) {
// ERROR case
this._zone.value.widget.updateInfo(`$(error) ${response.result.errorDetails.message}`);
alert(response.result.errorDetails.message);
}
// no response or not in progress
this._zone.value.widget.domNode.classList.toggle('request-in-progress', false);
this._zone.value.widget.chatWidget.setInputPlaceholder(localize('placeholder', "Edit, refactor, and generate code"));
return;
}
this._zone.value.widget.domNode.classList.toggle('request-in-progress', true);
let placeholder = response.request?.message.text;
const lastProgress = lastResponseProgressObs.read(r);
if (lastProgress) {
placeholder = renderAsPlaintext(lastProgress.content);
} else {
this._zone.value.widget.domNode.classList.toggle('request-in-progress', true);
let placeholder = response.request?.message.text;
const lastProgress = lastResponseProgressObs.read(r);
if (lastProgress) {
placeholder = renderAsPlaintext(lastProgress.content);
}
this._zone.value.widget.chatWidget.setInputPlaceholder(placeholder || localize('loading', "Working..."));
}
this._zone.value.widget.chatWidget.setInputPlaceholder(placeholder || localize('loading', "Working..."));
}));