fix: show dyad-command buttons within assistant responses instead of hiding tags (#1421) (#1432)

### Problem
Users were confused because `<dyad-command>` tags were being hidden,
making it unclear what actions were available.

### Solution
Render dyad-command tags as visible buttons, so users can see and
interact with available commands (e.g., "restart").

Closes #1421
    
<!-- This is an auto-generated description by cubic. -->
---

## Summary by cubic
Show dyad-command tags as visible buttons in assistant responses so
users can see and trigger actions (e.g., restart). Closes #1421.

- **Bug Fixes**
  - Render dyad-command tags to buttons in DyadMarkdownParser.
  - Export mapActionToButton from ChatInput for reuse.
  - Support id/action/path attributes; safely no-op if parsing fails.

<!-- End of auto-generated description by cubic. -->
This commit is contained in:
Adeniji Adekunle James
2025-10-06 20:55:21 +01:00
committed by GitHub
parent 423a95ed81
commit d83f5fec83
2 changed files with 9 additions and 2 deletions

View File

@@ -22,6 +22,8 @@ import { DyadMcpToolResult } from "./DyadMcpToolResult";
import { DyadWebSearchResult } from "./DyadWebSearchResult";
import { DyadWebSearch } from "./DyadWebSearch";
import { DyadRead } from "./DyadRead";
import { mapActionToButton } from "./ChatInput";
import { SuggestedAction } from "@/lib/schemas";
interface DyadMarkdownParserProps {
content: string;
@@ -498,7 +500,12 @@ function renderCustomTag(
return null;
case "dyad-command":
// Don't render anything for dyad-command
if (attributes.type) {
const action = {
id: attributes.type,
} as SuggestedAction;
return <>{mapActionToButton(action)}</>;
}
return null;
default: