---
id: TASK-56
title: Consistent headers across all rApps + mi AI assistant
status: Done
assignee:
  - '@claude'
created_date: '2026-02-25 23:10'
labels:
  - ux
  - shared-header
  - ai
  - mi
dependencies: []
references:
  - shared/components/rstack-mi.ts
  - server/index.ts
  - server/shell.ts
  - website/public/shell.css
priority: high
---

## Description

<!-- SECTION:DESCRIPTION:BEGIN -->
Make all rApp headers identical (fix height mismatches, remove custom overrides) and add the mi AI assistant search bar to every page header.
<!-- SECTION:DESCRIPTION:END -->

## Acceptance Criteria
<!-- AC:BEGIN -->
- [ ] #1 All 7 module CSS files use 56px header height (not 52px)
- [ ] #2 No module CSS overrides the shared header background
- [ ] #3 All headers have 3-section layout: left (switchers) / center (mi) / right (identity)
- [ ] #4 rstack-mi component registered in shell.ts and present in all 4 HTML pages + both shell renderers
- [ ] #5 POST /api/mi/ask streams from Ollama with rApp-aware system prompt
- [ ] #6 Fallback responses when Ollama unavailable
<!-- AC:END -->

## Final Summary

<!-- SECTION:FINAL_SUMMARY:BEGIN -->
Implemented in commit 0813eed. Fixed 52px→56px in 7 module CSS files (pubs, funds, providers, books, swag, choices, cart). Removed header background overrides from books.css and pubs.css. Created rstack-mi web component with streaming chat UI and added to all pages. Server endpoint /api/mi/ask proxies to Ollama with dynamic system prompt built from all 22 registered modules. Keyword-based fallback when AI service is offline. Configurable via MI_MODEL and OLLAMA_URL env vars.
<!-- SECTION:FINAL_SUMMARY:END -->
