Skip to content

sandcastle: Cesium Copilot UI and app integration (2/2)#13414

Closed
Guillar1 wants to merge 1 commit intocesium-copilot-enginefrom
cesium-copilot-ui
Closed

sandcastle: Cesium Copilot UI and app integration (2/2)#13414
Guillar1 wants to merge 1 commit intocesium-copilot-enginefrom
cesium-copilot-ui

Conversation

@Guillar1
Copy link
Copy Markdown

Description

Part 2 of 2. Builds the Cesium Copilot UI on top of the engine from #13413 and wires it into the Sandcastle application.

  • Chat UI: ChatPanel, ChatMessage (markdown rendering via react-markdown + remark-gfm), ThinkingBlock, ThinkingAccordion, ToolCallDisplay, PromptInput.
  • Diff review UI: DiffPreview, SimpleDiffPreview, StreamingDiffPreview, DiffReviewPanel, InlineChangeWidget.
  • Settings and model selection: ApiKeyDialog, ModelPicker, AdvancedSettings, FeatureSettings, SettingsPanel, SettingsContext, SettingsProvider.
  • State: ModelContext, useModel, plus hooks (useAutoFix, useChatMessages, useToolChainExecution).
  • App integration: App.tsx mounts the Copilot pane, SandcastleEditor exposes code context, Bucket / ConsoleMirror / util adjustments for console streaming and iframe bridging, plus ErrorBoundary, icon additions, and a chat logo.

New runtime dependencies: react-markdown, remark-gfm, react-virtuoso.

Base branch

This PR targets cesium-copilot-engine (not main), so GitHub shows only the UI/integration diff. Once part 1 merges to main, this PR auto-retargets to main.

Issue number and link

N/A (feature branch).

Testing plan

  • tsc -b passes inside packages/sandcastle/ standalone (with part 1's changes present).
  • Chat panel opens, messages render with markdown, thinking blocks expand, tool calls display.
  • Diff preview and review flow works end-to-end.
  • API key entry and model switching persist across reload.
  • Full validation via the cesium-copilot integration branch deploying to the sandbox.

Author checklist

  • I have submitted a Contributor License Agreement
  • I have added my name to CONTRIBUTORS.md (added in part 1)
  • I have updated CHANGES.md with a short summary of my change
  • I have added or updated unit tests to ensure consistent code coverage
  • I have updated the inline documentation, and included code examples where relevant
  • I have performed a self-review of my code

AI acknowledgment

  • I used AI to generate content in this PR
  • If yes, I have reviewed the AI-generated content before submitting

Builds the Copilot UI on top of the AI engine from the previous commit:

- Chat interface: ChatPanel, ChatMessage (markdown rendering via
  react-markdown), ThinkingBlock, ThinkingAccordion, ToolCallDisplay,
  PromptInput.
- Diff review UI: DiffPreview, SimpleDiffPreview, StreamingDiffPreview,
  DiffReviewPanel, InlineChangeWidget.
- Settings: ApiKeyDialog, ModelPicker, AdvancedSettings,
  FeatureSettings, SettingsPanel, plus SettingsContext/Provider.
- State: ModelContext / useModel, hooks (useAutoFix, useChatMessages,
  useToolChainExecution).
- Integration: App.tsx wires the Copilot panel, SandcastleEditor
  exposes code context, Bucket / ConsoleMirror / util adjustments for
  console streaming and iframe bridging, icons.ts additions,
  main.tsx update, ErrorBoundary.
- Adds Justin Dehorty to CONTRIBUTORS.md.

Adds react-markdown, remark-gfm, and react-virtuoso as runtime deps.
@github-actions
Copy link
Copy Markdown
Contributor

Thank you for the pull request, @Guillar1!

✅ We can confirm we have a CLA on file for you.

@Guillar1 Guillar1 marked this pull request as ready for review April 16, 2026 22:23
@Guillar1 Guillar1 closed this Apr 17, 2026
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