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>
This commit is contained in:
local
2026-04-04 01:24:40 +01:00
parent a462b7dbc7
commit 1614a61617
27 changed files with 819 additions and 375 deletions

View File

@@ -0,0 +1,46 @@
## 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