## Summary
This PR is the standalone [AERIE-1957 — Simplify Search Site Documents tool from card to inline trace](https://linear.app/builder-team/issue/AERIE-1957/simplify-search-site-documents-tool-from-card-to-inline-trace) slice; there is no separate parent or child Linear issue for this ticket.
It replaces the oversized Search Site Documents Rhodes card with a compact, accessible inline trace. The trace shows the canonical site name, keeps match evidence collapsed until requested, and preserves source links and safe loading/error behavior.
This phase is tracked by [AERIE-1957 — Simplify Search Site Documents tool from card to inline trace](https://linear.app/builder-team/issue/AERIE-1957/simplify-search-site-documents-tool-from-card-to-inline-trace).
Production effect: cleanup or removal — the card shell is removed from this live tool rendering, while the underlying search behavior and evidence remain intact.
### Before / after
Before — oversized Search Site Documents card
<img width="698" height="291" alt="before-search-site-documents-card" src="https://github.com/user-attachments/assets/6d8a6c90-b4ce-4ec7-a5cb-edc5cae83f56" />
After — compact inline trace with collapsed evidence that can be expanded on click
<img width="733" height="696" alt="image" src="https://github.com/user-attachments/assets/277be309-7d1d-42ac-9a09-c9b718d11f7a" />
## Why
The previous card consumed disproportionate transcript space and made a simple read-only search look like a large dashboard surface. The new trace keeps the action and result count scannable while making document-level evidence available on demand. Resolving the canonical site name at the authorized search boundary also prevents the UI from presenting opaque site IDs as user-facing names.
## Business Value
- Makes search activity readable at a glance with the actual site name.
- Reduces transcript noise while retaining all match details and source links.
- Provides keyboard- and screen-reader-accessible evidence disclosure.
- Preserves safe source URL handling, redacted errors, and narrow-layout wrapping.
## How does it work
1. The authorized Convex search resolver obtains the canonical site name and returns it as an optional public-safe field through the site-document-search contract and Rhodes MCP path.
2. ToolCall routes searchSiteDocuments to RhodesSearchTrace, which renders the compact search action with the smaller magnifying-glass marker.
3. Positive results render Found 1 match or Found N matches as a collapsed accessible accordion; activation reveals all matching documents with titles, page numbers, and protocol-filtered Open source links.
4. Loading, empty, error, redaction, and wrapping behavior remain explicit; accordion state is reset when a reused tool-call row receives a new tool-call ID.
5. Other Rhodes tool renderers, migrations, upstream writebacks, and deployment surfaces remain deliberately unchanged.
## Scope
### Included in this phase
- Replace the Search Site Documents card shell with the compact inline trace.
- Include canonical authorized site names in search results.
- Add collapsed, accessible match evidence disclosure and per-match source links.
- Preserve loading, empty, error, safe-link, redaction, wrapping, and tool-row reuse behavior.
- Exact final diff paths:
chat/components/__tests__/tool-call.test.tsxchat/components/rhodes-cards/rhodes-read-card.tsx
chat/components/tool-call.tsx
chat/convex/documentKnowledge/search.test.ts
chat/convex/documentKnowledge/search.ts
chat/rhodes-worker/mcp-server/tools/documents.test.ts
packages/contracts/src/site-document-search.test.ts
packages/contracts/src/site-document-search.ts
## Test plan
### Automated validation
- Tool-call and Rhodes trace tests — 103 passed (timeout 60s pnpm --dir chat exec vitest run components/__tests__/tool-call.test.tsx components/rhodes-cards/__tests__/rhodes-read-card.test.tsx)
- Convex document-search tests — 16 passed (timeout 60s pnpm --dir chat exec vitest run convex/documentKnowledge/search.test.ts)
- Site-document-search contract tests — 3 passed (timeout 60s pnpm --dir packages/contracts exec vitest run src/site-document-search.test.ts)
- Rhodes MCP document-tool tests — 6 passed (timeout 60s pnpm --dir chat/rhodes-worker exec tsx --test mcp-server/tools/documents.test.ts)
- Biome on all 8 changed files — passed (timeout 60s pnpm --dir chat exec biome check components/rhodes-cards/rhodes-read-card.tsx components/tool-call.tsx components/__tests__/tool-call.test.tsx convex/documentKnowledge/search.ts convex/documentKnowledge/search.test.ts rhodes-worker/mcp-server/tools/documents.test.ts ../packages/contracts/src/site-document-search.ts ../packages/contracts/src/site-document-search.test.ts)
- git diff --check — passed
- Exact-head diff scope — only the 8 paths listed above