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
@@ -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..."));
}));
@@ -191,7 +191,7 @@
.monaco-workbench .inline-chat > .status {
.label,
.actions {
padding-top: 8px;
padding: 4px 0;
}
}
@@ -202,14 +202,13 @@
.monaco-workbench .inline-chat .status .label {
overflow: hidden;
color: var(--vscode-descriptionForeground);
font-size: 11px;
font-size: 12px;
display: flex;
white-space: nowrap;
}
.monaco-workbench .inline-chat .status .label.info {
margin-right: auto;
padding-left: 2px;
}
.monaco-workbench .inline-chat .status .label.status {