Skip to content

Commit dcdad1e

Browse files
committed
fixed 2 validateDOMNesting console errors
1 parent 251e46f commit dcdad1e

File tree

2 files changed

+34
-5
lines changed

2 files changed

+34
-5
lines changed

apps/webapp/CLAUDE.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,36 @@ pnpm run typecheck --filter webapp # ~1-2 minutes
1212

1313
Only run typecheck after major changes (new files, significant refactors, schema changes). For small edits, trust the types and let CI catch issues.
1414

15+
## Testing Dashboard Changes with Chrome DevTools MCP
16+
17+
Use the `chrome-devtools` MCP server to visually verify local dashboard changes. The webapp must be running (`pnpm run dev --filter webapp` from repo root).
18+
19+
### Login
20+
21+
```
22+
1. mcp__chrome-devtools__new_page(url: "http://localhost:3030")
23+
→ Redirects to /login
24+
2. mcp__chrome-devtools__click the "Continue with Email" link
25+
3. mcp__chrome-devtools__fill the email field with "local@trigger.dev"
26+
4. mcp__chrome-devtools__click "Send a magic link"
27+
→ Auto-logs in and redirects to the dashboard (no email verification needed locally)
28+
```
29+
30+
### Navigating and Verifying
31+
32+
- **take_snapshot**: Get an a11y tree of the page (text content, element UIDs for interaction). Prefer this over screenshots for understanding page structure.
33+
- **take_screenshot**: Capture what the page looks like visually. Use to verify styling, layout, and visual changes.
34+
- **navigate_page**: Go to specific URLs, e.g. `http://localhost:3030/orgs/references-bc08/projects/hello-world-SiWs/env/dev/runs`
35+
- **click / fill**: Interact with elements using UIDs from `take_snapshot`.
36+
- **evaluate_script**: Run JS in the browser console for debugging.
37+
- **list_console_messages**: Check for console errors after navigating.
38+
39+
### Tips
40+
41+
- Snapshots can be very large on complex pages (200K+ chars). Use `take_screenshot` first to orient, then `take_snapshot` only when you need element UIDs to interact.
42+
- The local seeded user email is `local@trigger.dev`.
43+
- Dashboard URL pattern: `http://localhost:3030/orgs/{orgSlug}/projects/{projectSlug}/env/{envSlug}/{section}`
44+
1545
## Key File Locations
1646

1747
- **Trigger API**: `app/routes/api.v1.tasks.$taskId.trigger.ts`

apps/webapp/app/components/runs/v3/ai/AIChatMessages.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import { lazy, Suspense, useState } from "react";
99
import { CodeBlock } from "~/components/code/CodeBlock";
1010
import { Button, LinkButton } from "~/components/primitives/Buttons";
1111
import { Header3 } from "~/components/primitives/Headers";
12-
import { Paragraph } from "~/components/primitives/Paragraph";
1312
import tablerSpritePath from "~/components/primitives/tabler-sprite.svg";
1413
import type { DisplayItem, ToolUse } from "./types";
1514

@@ -120,11 +119,11 @@ function SystemSection({
120119
)}
121120
</div>
122121
<ChatBubble>
123-
<Paragraph variant="small/dimmed" className="streamdown-container">
122+
<div className="font-sans text-sm font-normal text-text-dimmed streamdown-container">
124123
<Suspense fallback={<span className="whitespace-pre-wrap">{displayText}</span>}>
125124
<StreamdownRenderer>{displayText}</StreamdownRenderer>
126125
</Suspense>
127-
</Paragraph>
126+
</div>
128127
</ChatBubble>
129128
</div>
130129
);
@@ -139,11 +138,11 @@ function UserSection({ text }: { text: string }) {
139138
<div className="flex flex-col gap-1.5 py-2.5">
140139
<SectionHeader label="User" />
141140
<ChatBubble>
142-
<Paragraph variant="small/dimmed" className="streamdown-container">
141+
<div className="font-sans text-sm font-normal text-text-dimmed streamdown-container">
143142
<Suspense fallback={<span className="whitespace-pre-wrap">{text}</span>}>
144143
<StreamdownRenderer>{text}</StreamdownRenderer>
145144
</Suspense>
146-
</Paragraph>
145+
</div>
147146
</ChatBubble>
148147
</div>
149148
);

0 commit comments

Comments
 (0)