Skip to content

feat(ask-ai): host-mountable Ask AI chat panel - #429

Draft
haileyok wants to merge 3 commits into
hailey/ask-ai-4-frontendfrom
hailey/ask-ai-5-panel
Draft

feat(ask-ai): host-mountable Ask AI chat panel#429
haileyok wants to merge 3 commits into
hailey/ask-ai-4-frontendfrom
hailey/ask-ai-5-panel

Conversation

@haileyok

Copy link
Copy Markdown
Member

Description

Part 5/5 of the Ask AI stack (stacked on hailey/ask-ai-4-frontend). Adds AskAiPanel + subcomponents and a safe Markdown renderer (react-markdown, no raw HTML) with host adapter props (endpoint, models, getContextSnapshot, renderEvidence/evidenceActions), streaming output, tool/query evidence display, retry/new-chat, and accessible controls. Adds a Rstest DOM harness (happy-dom + @rsbuild/plugin-react) and a host-integration doc (docs/ask-ai.md). Also includes a small docstring cleanup to drop product names from the generic layers (AC6.4). Implements AC5.2, AC5.4 (render), AC5.5.

Note: planning docs under docs/implementation-plans/ are intentionally untracked and not part of this diff.

Checklist

  • Tests pass locally (pnpm typecheck + eslint + prettier + rstest, 31 UI tests)
  • uv run ruff check . passes
  • uv tool run fawltydeps --check-unused --pyenv .venv passes
  • Updated CHANGELOG.md (deferred — happy to add)

@coderabbitai

coderabbitai Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: e53ac46a-464a-416f-acae-af70d0507460

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch hailey/ask-ai-5-panel

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

haileyok added 3 commits July 14, 2026 22:13
Add AskAiPanel + MessageList/MessageBubble/EvidenceList and a safe Markdown renderer
(react-markdown, no raw HTML) under osprey_ui/components/ask_ai. The panel takes host
adapter props (endpoint, models, getContextSnapshot, renderEvidence/evidenceActions),
streams assistant output, shows tool/query evidence (custom or default read-only card),
supports retry/new-chat, and is accessible (labelled controls, aria-live log). One
isolated Zustand store per panel via an injectable createStore seam.

Add a Rstest DOM harness (rstest.config.ts: happy-dom + @rsbuild/plugin-react;
rstest.setup.ts: matchMedia/ResizeObserver polyfills for Ant Design) and dev-deps
@testing-library/react, @testing-library/dom, happy-dom; react-markdown as a runtime dep.

Tests (component suite passing under happy-dom) cover host config + context_ref + model,
streaming render, evidence default card vs custom renderer, retry, safe error display,
safe markdown (no HTML injection), and new-chat reset. No Smite/SML/Druid/Discord imports.

Implements osprey-ask-ai AC5.2, AC5.4 (render), AC5.5.
@haileyok
haileyok force-pushed the hailey/ask-ai-4-frontend branch from cad34a7 to ea6844e Compare July 14, 2026 22:13
@haileyok
haileyok force-pushed the hailey/ask-ai-5-panel branch from eff1163 to 05457b8 Compare July 14, 2026 22:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant