Merge: Knowledge version history - API and UI (closes #75, #76)

This commit is contained in:
Jason Woltje
2026-01-29 23:39:49 -06:00
14 changed files with 1222 additions and 140 deletions

124
docs/JARVIS_FE_MIGRATION.md Normal file
View File

@@ -0,0 +1,124 @@
# Jarvis Frontend Migration Plan
## Overview
Cherry-pick high-value components from `mosaic/jarvis` into `mosaic/stack` to accelerate frontend development.
**Source:** `~/src/jarvis-fe/apps/web/src/`
**Target:** `~/src/mosaic-stack/apps/web/src/`
## Stack Compatibility ✅
| Aspect | Jarvis | Mosaic Stack | Compatible |
|--------|--------|--------------|------------|
| Next.js | 16.1.1 | 16.1.6 | ✅ |
| React | 19.2.0 | 19.0.0 | ✅ |
| TypeScript | ~5.x | 5.8.2 | ✅ |
| Tailwind | Yes | Yes | ✅ |
| Auth | better-auth | better-auth | ✅ |
## Migration Phases
### Phase 1: Dependencies (Pre-requisite)
Add missing packages to mosaic-stack:
```bash
pnpm add @xyflow/react elkjs mermaid @dnd-kit/core @dnd-kit/sortable @dnd-kit/utilities
```
### Phase 2: Core Infrastructure
| Component | Source | Target | Priority |
|-----------|--------|--------|----------|
| ThemeProvider.tsx | providers/ | providers/ | P0 |
| ThemeToggle.tsx | components/ | components/layout/ | P0 |
| globals.css (theme vars) | app/ | app/ | P0 |
### Phase 3: Chat/Jarvis Overlay (#42)
| Component | Source | Target | Notes |
|-----------|--------|--------|-------|
| Chat.tsx | components/ | components/chat/ | Main chat UI |
| ChatInput.tsx | components/ | components/chat/ | Input with attachments |
| MessageList.tsx | components/ | components/chat/ | Message rendering |
| ConversationSidebar.tsx | components/ | components/chat/ | History panel |
| BackendStatusBanner.tsx | components/ | components/chat/ | Connection status |
**Adaptation needed:**
- Update API endpoints to mosaic-stack backend
- Integrate with existing auth context
- Connect to Brain/Ideas API for semantic search
### Phase 4: Mindmap/Visual Editor
| Component | Source | Target | Notes |
|-----------|--------|--------|-------|
| mindmap/ReactFlowEditor.tsx | components/ | components/mindmap/ | Main editor |
| mindmap/MindmapViewer.tsx | components/ | components/mindmap/ | Read-only view |
| mindmap/MermaidViewer.tsx | components/ | components/mindmap/ | Mermaid diagrams |
| mindmap/nodes/*.tsx | components/ | components/mindmap/nodes/ | Custom node types |
| mindmap/controls/*.tsx | components/ | components/mindmap/controls/ | Toolbar/export |
**Adaptation needed:**
- Connect to Knowledge module for entries
- Map node types to Mosaic entities (Task, Idea, Project)
- Update save/load to use Mosaic API
### Phase 5: Admin/Settings Enhancement
| Component | Source | Target | Notes |
|-----------|--------|--------|-------|
| admin/Header.tsx | components/ | components/admin/ | Already exists, compare |
| admin/Sidebar.tsx | components/ | components/admin/ | Already exists, compare |
| HeaderMenu.tsx | components/ | components/layout/ | Navigation dropdown |
| HeaderActions.tsx | components/ | components/layout/ | Quick actions |
**Action:** Compare and merge best patterns from both.
### Phase 6: Integrations
| Component | Source | Target | Notes |
|-----------|--------|--------|-------|
| integrations/OAuthButton.tsx | components/ | components/integrations/ | OAuth flow UI |
| settings/integrations/page.tsx | app/ | app/ | Integration settings |
## Execution Plan
### Agent 1: Dependencies & Theme (15 min)
- Add missing npm packages
- Copy theme infrastructure
- Verify dark/light mode works
### Agent 2: Chat Components (30 min)
- Copy chat components
- Update imports and paths
- Adapt API calls to mosaic-stack endpoints
- Create placeholder chat route
### Agent 3: Mindmap Components (30 min)
- Copy mindmap components
- Update imports and paths
- Connect to Knowledge API
- Create mindmap route
### Agent 4: Polish & Integration (20 min)
- Code review all copied components
- Fix TypeScript errors
- Update component exports
- Test basic functionality
## Files to Skip (Already Better in Mosaic)
- kanban/* (already implemented with tests)
- Most app/ routes (different structure)
- Auth providers (already configured)
## Success Criteria
1. ✅ Theme toggle works (dark/light)
2. ✅ Chat UI renders (even if not connected)
3. ✅ Mindmap editor loads with ReactFlow
4. ✅ No TypeScript errors
5. ✅ Build passes
## Risks
- **API mismatch:** Jarvis uses different API structure — need adapter layer
- **State management:** May need to reconcile different patterns
- **Styling conflicts:** CSS variable names may differ
## Notes
- Keep jarvis-fe repo for reference, don't modify it
- All work in mosaic-stack on feature branch
- Create PR for review before merge