Tool recovery required
-
- Execution outcome is unknown
-
+ Execution outcome is unknown
These operations may already have produced external effects. Retrying
keeps the same call ID, but the MCP server may not deduplicate it.
diff --git a/web/packages/superagent-ui/styles.css b/web/packages/superagent-ui/styles.css
index 2b07dc0..e8f7aa1 100644
--- a/web/packages/superagent-ui/styles.css
+++ b/web/packages/superagent-ui/styles.css
@@ -443,6 +443,10 @@
font-size: 17px;
}
+.sa-tool-recovery:focus {
+ outline: none;
+}
+
.sa-tool-recovery-eyebrow {
margin: 0;
color: var(--sa-subtle-color, #667085);
diff --git a/web/src/App.test.tsx b/web/src/App.test.tsx
index 9416dbb..51216c2 100644
--- a/web/src/App.test.tsx
+++ b/web/src/App.test.tsx
@@ -329,10 +329,10 @@ describe("App", () => {
render();
- const heading = await screen.findByRole("heading", {
+ const recoveryPanel = await screen.findByRole("region", {
name: "Execution outcome is unknown",
});
- expect(heading).toHaveFocus();
+ expect(recoveryPanel).toHaveFocus();
fireEvent.click(
screen.getByRole("radio", { name: "Continue with unknown result" }),
);
diff --git a/web/tests/full-stack.spec.ts b/web/tests/full-stack.spec.ts
index 6af37e1..714d7fb 100644
--- a/web/tests/full-stack.spec.ts
+++ b/web/tests/full-stack.spec.ts
@@ -1634,7 +1634,7 @@ test("persists manual tool recovery and resumes only after a user decision", asy
name: "Execution outcome is unknown",
});
await expect(recoveryHeading).toBeVisible();
- await expect(recoveryHeading).toBeFocused();
+ await expect(recovery).toBeFocused();
await expect(
recovery.getByText("Error type:", { exact: false }),
).toBeVisible();