Files
AgenticCode/openspec/changes/archive/2026-04-04-basic-chat-interface/specs/mudblazor-setup/spec.md
local 1614a61617 feat: add basic chat interface with MudBlazor and propose responses API integration
Install MudBlazor 9.2.0, replace Bootstrap layout with MudLayout/MudAppBar,
create Chat.razor with message list, text input, auto-scroll, and hardcoded
responses. Add ChatMessage shared model. Remove template pages (Counter,
Weather), move health check to /health. Include OpenSpec change artifacts
for the upcoming wire-responses-api work.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 01:24:40 +01:00

1.6 KiB

ADDED Requirements

Requirement: MudBlazor package installed

The Client project SHALL have MudBlazor 9.2.0 installed as a NuGet dependency.

Scenario: Package reference present

  • WHEN the Client project is built
  • THEN MudBlazor 9.2.0 is resolved as a dependency

Requirement: MudBlazor services registered

MudBlazor services SHALL be registered in the Client's DI container via AddMudServices().

Scenario: Services available

  • WHEN the application starts
  • THEN MudBlazor services (snackbar, dialog, etc.) are available for injection

Requirement: MudBlazor assets loaded

The Client's index.html SHALL include MudBlazor CSS, JS, and font references.

Scenario: Styles and scripts present

  • WHEN the application loads in the browser
  • THEN MudBlazor CSS (_content/MudBlazor/MudBlazor.min.css), JS (_content/MudBlazor/MudBlazor.min.js), and Material Design Icons font are loaded

Requirement: MudBlazor layout providers

The app root SHALL include MudThemeProvider, MudPopoverProvider, and MudDialogProvider so MudBlazor components function correctly.

Scenario: Providers present

  • WHEN any MudBlazor component is rendered
  • THEN it functions correctly because the required providers are in the component tree

Requirement: MudBlazor layout replaces Bootstrap

The application layout SHALL use MudBlazor layout components (MudLayout, MudAppBar, MudMainContent) instead of the current Bootstrap navbar.

Scenario: Layout renders with MudBlazor

  • WHEN any page is displayed
  • THEN the page is wrapped in a MudBlazor layout with an app bar showing the application name