Initial commit: Nexus Mission Control Platform

- ASP.NET Core 10 Backend (JWT Auth, Agent config API)
- Vue 3 Frontend (Dashboard, Team, Agents, Config Editor)
- PostgreSQL Database
- Docker Compose setup
- Mission Control Dashboard redesign
This commit is contained in:
Bao
2026-06-09 16:31:42 +02:00
commit eeb6174de0
248 changed files with 19706 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
# Changelog
> Letzte Aktualisierung: 2026-06-09
- 2026-06-09: Phase 2 Backend + Frontend implementiert: Memory-Browser (Liste, Detail, Volltextsuche), Docs-Browser (Kategorien, Filter), Team-Org-Map (Karten + Kommunikationsmatrix), Security-Center (Auth, Tokens, Rate-Limit, Cookies). Backend-Build 0 Errors, Frontend-Build (vue-tsc + vite) 0 Errors.
- 2026-06-09: Researcher-Agent zum Team hinzugefügt (DeepSeek V4 Pro, Nur-Lese-Rechte, YouTube-Vision-Skill). Kommunikationsmatrix erweitert (Researcher↔Iris only).
- 2026-06-09: Phase 1 komplettiert: Live-Agentinventar, Dashboard-Metriken, Approval-Workflow, Healthchecks (PostgreSQL + Runtime), Tests (Backend 3/3 + Frontend 2/2).
- 2026-06-09: Nexus produktiv auf VPS deployed: Docker-Stack laeuft, Nginx mit Let's Encrypt SSL fuer nexus.noveria.net konfiguriert.
- 2026-06-09: Nexus-Owner-Passwort lokal in `.env` gesetzt; Backend synchronisiert das konfigurierte Passwort nun auch fuer bestehende Owner-Konten.
- 2026-06-08: `nexus.md` in schlanke Indexdatei und Phase-Dateien aufgeteilt.
- 2026-06-08: Review-Workflows werden auf kurze, tokenarme Ausgabe ausgerichtet.
- 2026-06-08: Programmer hat Phase-1-Reste implementiert:
- ProjectDetailView (CRUD, Archiv, Tasks)
- SettingsView (Profil-Edit, Passwort-Änderung)
- Task-Edit (Inline-Titel, Priorität, Projekt-Zuweisung)
- Activity-Feed (Filter, Sort, Paginierung)
- Router auf echte Komponenten umgestellt
- Backend: Ollama/NVIDIA entfernt, nur OpenClaw aktiv
- Compose bereinigt
- 2026-06-08: Iris zum Chief of Staff mit Approval-Matrix aufgewertet
- 2026-06-08: Programmer hat volle Dateirechte (workspaceOnly: false, ask: off)
- 2026-06-08: Phase-1-Reste abgeschlossen:
- shadcn-vue bewusst aus dem Zielstack entfernt (reines CSS) und im Roadmap markiert
- `.env.template` erstellt (PostgreSQL, JWT, Owner, OpenClaw)
- `DELETE /api/v1/tasks/{id}` implementiert (nur Done/Backlog erlaubt, 403 bei anderen States)
- Task-Delete-Button mit Trash2-Icon und Confirmation-Dialog in ModuleView.vue (Teleport-Modal)
- `deleteTask`-Action im Operations-Store (mit Metrik-Neuberechnung)
- Phase-1-MVP-Status aktualisiert (Tasklöschung, Produktionswerte, Deployment-Entry)
- Deployment-Dokumentation überarbeitet (Build-Anleitung, Deployment-Plan, Offene-Arbeit-Liste)
- Changelog aktualisiert
+71
View File
@@ -0,0 +1,71 @@
# Deployment
> Letzte Aktualisierung: 2026-06-09
> Status: ✅ Deployment abgeschlossen
> Live-URL: https://nexus.noveria.net
## Ziel
Nach Phase 1 soll das Mission-Control-Board deployt und die Infrastruktur so gesetzt sein, dass Bao direkt draufkommen kann.
## Secrets und Konfiguration
- [x] `.env.template` mit allen erforderlichen Variablen erstellt
- [x] Produktions-`.env` mit starken, getrennten Secrets angelegt
- [x] Migration des Produktionsstacks getestet
## Build-Anleitung (lokal oder in CI)
Die folgenden Befehle sind auf dem Build-System auszuführen. Vor dem Build müssen die Secrets in `.env` gesetzt sein.
```bash
# 1. Backend veröffentlichen
cd backend
dotnet publish -c Release -o dist
# 2. Frontend bauen (pnpm preferred)
cd ../frontend
pnpm install
pnpm build
# └─ Output: frontend/dist/ (statisch auslieferbar)
# 3. Docker-Stack starten (wenn compose verwendet wird)
cd ..
docker compose up -d --build
```
Die Container holen sich ihre Umgebungsvariablen aus der `.env` im Projektstamm.
Stelle sicher, dass `.env` existiert und alle `***`-Platzhalter ersetzt sind.
## Deployment-Plan
1. `.env`-Datei auf dem VPS anlegen (alle Secrets generieren/setzen)
2. Backup vor produktiven Infrastrukturarbeiten
3. Docker-Stack auf dem VPS deployen
4. Datenbankmigration läuft automatisch beim Start (via `MigrateAsync`)
5. Nginx Proxy Manager und `nexus.noveria.net` verbinden
6. HTTPS, Header, Cookies und externe Erreichbarkeit validieren
## Abgeschlossene Deployment-Arbeit
- [x] Produktions-`.env` mit starken, getrennten Secrets angelegt (2026-06-08)
- [x] Datenbankmigration und kompletter Stack per Docker-Compose deployt
- [x] Nexus auf dem VPS deployt (Docker Compose)
- [x] Nginx mit Let's Encrypt SSL fuer `nexus.noveria.net` konfiguriert
- [x] HTTPS, Security-Header (HSTS, X-Content-Type-Options, X-Frame-Options), Cookies validiert
- [x] Externe Erreichbarkeit bestaetigt (2026-06-09)
## Verifizierung (2026-06-09)
- https://nexus.noveria.net → 200 OK, SPA geladen
- /health → Healthy
- /dashboard, /login → SPA-Routing korrekt
- /api/v1/operations/snapshot → 401 Unauthorized (Auth-Schutz aktiv)
- Let's Encrypt TLS-Zertifikat aktiv
- Nginx-Proxy → 127.0.0.1:18880
## Offene Arbeit
- [ ] Backup-Strategie fuer Produktionsdaten definieren
- [ ] Docker-Logs und Container-Health-Monitoring einrichten
- [ ] `.gitignore` final pruefen
+128
View File
@@ -0,0 +1,128 @@
# Phase 1 MVP
> Letzte Aktualisierung: 2026-06-09
> Fokus: Mission-Control-Board bereitstellen und Infrastruktur anschliessen
## Status
- Gesamtfortschritt: ca. 95 %
- Produktiv live: ja (https://nexus.noveria.net)
- Letzter Build: Backend + Frontend erfolgreich
## Prioritaet
1. ~~Mission-Control-Board mit Deployment und erreichbarer Infrastruktur live bringen.~~ ✅ Erledigt.
2. ~~Login mit gesetztem Owner-Passwort End-to-End pruefen und Dashboard-Zugang bestaetigen.~~ ✅ Erledigt.
3. Restliche Produktfunktionen sauber ausbauen.
4. Tests und Healthchecks implementieren.
## Fundament und Architektur
- [x] Projektstruktur fuer Frontend, Backend und Docker
- [x] Runtime-Abstraktion `IAgentRuntime`
- [x] EF-Core-Grundschema und PostgreSQL-Migrationen
- [x] Responsive Dark-Mode-Shell, Sidebar, Navigation und Mobile Layout
- [x] Frontend-Produktionsbuild erfolgreich
- [x] Backend-Release-Build erfolgreich
- [x] shadcn-vue bewusst aus dem Zielstack entfernen reines CSS reicht
- [ ] Automatisierte Backend- und Frontend-Tests
## Login und Authentifizierung
- [x] Login-Seite und Owner-Login-Endpunkt
- [x] JWT Access Tokens
- [x] Rotierende, gehashte Refresh Tokens
- [x] HttpOnly-, Secure- und SameSite-Refresh-Cookie
- [x] Session-Endpunkte fuer Refresh, Logout und `me`
- [x] Pinia Auth Store, Bearer-Header und Router Guards
- [x] PBKDF2-Passwort-Hashing und Login Rate Limiting
- [x] Identity-Migration
- [x] Initialer Owner-Login soll einen generierten Namen und ein temporäres Passwort bereitstellen
- [x] Produktionswerte fuer Owner, JWT und Datenbank sicher konfigurieren .env.template erstellt
- [x] Password-/Profil-Update in Settings bereitstellen
- [x] Display-Name-Update in Settings bereitstellen
## Dashboard
- [x] Dashboard-Grundansicht
- [x] Statuskarten, Kennzahlen, Projekte, Aktivitaet und Modellstack
- [x] Echte Runtime-Health (runtimeHealthy), Project-Health (Online/Offline/Degraded)
- [x] Last-Incident-Anzeige und Agent-Liste im Dashboard
## Projects
- [x] Projektliste und Projekt erstellen
- [x] Projektdetail
- [x] Projekt bearbeiten und archivieren
- [x] Projektloeschung nur mit bestaetigtem Sicherheitsablauf
## Task Board
- [x] Taskliste, Kanban, Erstellung und Statuswechsel
- [x] Dynamische Task-Kennzahlen
- [x] Task bearbeiten und zuweisen
- [x] Projektverknuepfung, Filter und Suche
- [x] Approve-/Reject-Workflow mit Activity-Tracking
- [x] Pending-Approval-Liste (Tasks >1h in progress)
- [x] Taskloeschung nur mit bestaetigtem Sicherheitsablauf
## Agents
- [x] Grundlegende Agents-Ansicht
- [x] Live-Agentinventar aus openclaw.json (alle 5 Agenten)
- [x] Agent-Detail mit SubAgents, Identity, Workspace
- [x] Agent-Status-Anzeige (Online/Degraded/Offline)
- [x] Agent-Kommandos via IAgentRuntime
- [x] Agent-Aktivitäts-Historie
## Models
- [x] Grundlegende Models- und Routing-Ansicht
- [x] OpenClaw-Modellrouting konfiguriert
- [-] Providerstatus teilweise echt
- [ ] Echte Modelltests und Fallback-End-to-End-Test aus Nexus
- [ ] Healthchecks ans Ende verschieben und nur bei Bedarf ausfuehren
## Activity Feed
- [x] Grundlegender Activity Feed
- [x] Aktivitaeten bei Projekt- und Taskaktionen
- [x] Filter, Sortierung, Pagination
## OpenClaw und Mobile Chat
- [x] OpenClaw-Adapter hinter `IAgentRuntime`
- [x] Mobile Chat UI und Nexus-API-Pfad
- [x] Stabile Conversation IDs und Iris-Routing vorbereitet
- [-] Chat ist Preview und nicht produktiv End-to-End validiert
- [ ] Sicheren OpenClaw-Chat-Endpunkt festlegen und Deployment testen
- [ ] Statusabfragen, Task-Erstellung und Freigaben im mobilen Chat
## WhatsApp
- [x] OpenClaw-WhatsApp-Kanal ist konfiguriert, verbunden und gesund.
- [ ] Nexus-spezifische Iris-Aktionen, Freigaben und Sicherheitswarnungen
- [ ] Benachrichtigungs- und Auditfluss durch Nexus
## Settings
- [x] Grundlegende Settings-Ansicht mit Runtime- und Providerinformationen
- [x] Sichere editierbare Profil-Einstellungen (Name, Passwort)
- [ ] System-, Session- und Benachrichtigungseinstellungen
- [ ] Konfigurationsaenderungen auditieren
## Spate Phase-1-Arbeit
- [x] Front- und Backend-Tests (3 backend xUnit + 2 frontend vitest, alle grün)
- [ ] Runtime- und Provider-Healthchecks
- [ ] Restliche Modell-/Fallback-Checks aus Nexus
## Abschlussprotokoll
- 2026-06-08: Login- und Auth-System sicher ueberarbeitet. Backend-Release-Build und Frontend-Produktionsbuild erfolgreich.
- 2026-06-08: Phase 1 auf Mission-Control-Board, Infrastruktur und initialen Login fokussiert; Tests und Healthchecks ans Ende verschoben.
- 2026-06-08: `nexus.md` in schlanke Phase-Dateien aufgeteilt.
- 2026-06-08: Programmer hat ProjectDetailView, SettingsView, Task-Edit, Activity-Feed, Router, Backend-Cleanup und Compose implementiert (14 Dateien).
- 2026-06-08: Iris zum Chief of Staff mit Approval-Matrix aufgewertet.
- 2026-06-08: Task-Deletion (Backend + Frontend mit Confirmation-Dialog), .env.template, Deployment-Doku und Changelog erstellt.
- 2026-06-09: Festes Owner-Passwort in `.env` gesetzt und Backend-Startup so erweitert, dass es das konfigurierte Passwort fuer den bestehenden Owner synchronisiert und alte Refresh-Sessions widerruft.
+132
View File
@@ -0,0 +1,132 @@
# Phase 2 Intelligence & Governance
> Letzte Aktualisierung: 2026-06-09
> Inspiration: "OpenClaw is 100x better with Mission Control" (Alex Finn)
## Status
- Gesamtfortschritt: ~60 %
- Backend: ✅ (Build 0 Errors)
- Frontend: ✅ (Build 0 Errors, Tests 2/2)
- Deployment: 🚧 Bereit
## Vision
Phase 2 erweitert Nexus von einem Operations-Dashboard zu einer vollständigen
Mission-Control-Plattform. Der Fokus liegt auf Transparenz, Auditierbarkeit
und proaktiver Steuerung genau die Punkte, die im YouTube-Video als
Game-Changer beschrieben werden.
## 1. Calendar & Scheduler (🆕 inspiriert vom Video)
**Problem:** "My agent is not proactive enough." Ohne sichtbaren Kalender
weiß der Nutzer nicht, was der Agent geplant hat.
**Lösung:**
- [ ] GET /api/v1/calendar Cron-Jobs und geplante Tasks des OpenClaw-Gateways abrufen
- [ ] GET /api/v1/calendar/upcoming Nächste 5 geplante Ausführungen
- [ ] Kalender-UI-Komponente (Monats-/Wochenansicht) im Frontend
- [ ] Anzeige: Job-Name, Schedule, letzte Ausführung, nächste Ausführung, Status
- [ ] Heartbeat-getriebene Aktualisierung (Polling via Dashboard)
**Backend:**
- OpenClaw-Gateway-API für Cron-Jobs anzapfen (falls verfügbar)
- Fallback: Jobs aus der Gateway-Konfiguration parsen
## 2. Memory Browser (🆕 inspiriert vom Video)
**Problem:** Agent-Memories sind nur als rohe Markdown-Dateien sichtbar.
Kein einfacher Zugriff, keine Suche, keine Übersicht.
**Lösung:**
- [x] GET /api/v1/memory Liste aller Memory-Dateien
- [x] GET /api/v1/memory/{name} Einzel-Memory mit Content
- [x] GET /api/v1/memory/search?q= Volltextsuche mit Excerpts
- [x] Memory-Browser-UI: Suchleiste, Dateiliste, Markdown-Rendering
**Backend:**
- Memory-Pfad: /home/node/.openclaw/workspace-iris/memory/
- Dateien einlesen, parsen, cachen (nicht live parsen bei jedem Request)
## 3. Docs Browser (🆕 inspiriert vom Video)
**Problem:** Agent-generierte Dokumente (PRDs, Specs, Reports) sind
verstreut und nicht durchsuchbar.
**Lösung:**
- [x] GET /api/v1/docs Liste aller Dokumente mit Kategorien
- [x] GET /api/v1/docs/{**path} Einzelnes Dokument
- [x] Docs-Browser-UI: Kategorien, Suche, Markdown-Vorschau
**Backend:**
- Dokumente aus Workspace lesen (.md, .json, .txt)
- .learnings/ Ordner einbeziehen
- Projekt-Dokumente aus nexus/ einbeziehen
## 4. Team Org Map (🆕 inspiriert vom Video)
**Problem:** Agenten und ihre Rollen sind nicht übersichtlich dargestellt.
Keine kanonische Übersicht wer was macht.
**Lösung:**
- [x] GET /api/v1/team Team-Übersicht mit IDENTITY.md-Daten
- [x] Team-UI: Karten-Grid, Rollen, Status, Kommunikationsmatrix
**Backend:**
- Agent-Konfiguration aus openclaw.json parsen
- IDENTITY.md + SOUL.md pro Agent einlesen für Mission/Rolle
- Kommunikationsmatrix aus allowAgents ableiten
## 5. Security Center
**Problem:** Kein zentraler Ort für Sicherheitsstatus und -Audit.
**Lösung:**
- [x] GET /api/v1/security/status Security-Übersicht
- [x] Security-Center-UI: Status-Karten (Auth, Tokens, Rate-Limit, Cookies)
**Backend:**
- Login-Versuche tracken (erfolgreich/fehlgeschlagen)
- Session-Info aus Refresh-Token-Tabelle
- Rate-Limit-Status (falls abrufbar)
## 6. TOTP 2FA & Passkeys
- [ ] TOTP-Setup und -Verifikation
- [ ] WebAuthn/Passkey-Registrierung
- [ ] 2FA-UI in Settings
- [ ] Recovery-Codes
## 7. Incident Diary (🆕)
**Problem:** Incidents, Debugging-Sessions und Systemausfälle sind nirgends
festgehalten. Kein historisches Wissen über gelöste Probleme.
**Lösung:**
- [ ] GET /api/v1/incidents Liste aller Incident Reports aus `memory/incidents/`
- [ ] GET /api/v1/incidents/{name} Einzelner Incident mit Markdown-Content
- [ ] Incident-Liste-UI: Tabelle mit Datum, Titel, Schweregrad
- [ ] Incident-Detail-UI: Markdown-Rendering, Chronologie, betroffene Systeme
**Backend:**
- Incident-Pfad: `/home/node/.openclaw/workspace-iris/memory/incidents/`
- Dateinamen-Pattern: `YYYY-MM-DD-<titel>.md`
- Metadaten aus Frontmatter/Dokumentstruktur extrahieren
## Abhängigkeiten
- Calendar & Scheduler: Benötigt OpenClaw-Gateway-Cron-API (prüfen)
- Memory & Docs Browser: Read-only auf Workspace-Dateien
- Team Org Map: Baut auf Agent-Inventar aus Phase 1 auf
- Security Center: Baut auf Auth-System aus Phase 1 auf
## Nächste Schritte
1. ✅ Phase 1 abgeschlossen (Agent-Inventar, Dashboard-Metriken, Approval-Workflow)
2. ✅ Memory Browser
3. ✅ Docs Browser
4. ✅ Team Org Map
5. ✅ Security Center
6. 🚧 Calendar & Scheduler
7. 🚧 Incident Diary (🆕)
8. TOTP 2FA & Passkeys
+12
View File
@@ -0,0 +1,12 @@
# Phase 3
> Letzte Aktualisierung: 2026-06-08
- [ ] Office View
- [ ] Kalender
- [ ] Agent Collaboration Visualisierung
- [ ] Advanced Reporting
## Fokus
Phase 3 bleibt bewusst knapp und wird erst beim Start der Arbeit ausgebaut.
+23
View File
@@ -0,0 +1,23 @@
# Runtime und Routing
> Letzte Aktualisierung: 2026-06-08
## Aktive Modelle
| Priorität | Modell | Zweck | Provider |
|-----------|--------|-------|----------|
| 1 | deepseek/deepseek-v4-flash | Programmer Agent | DeepSeek (über OpenClaw) |
| 2 | deepseek/deepseek-v4-pro | Reviewer Agent, Iris Fallback | DeepSeek (über OpenClaw) |
| 3 | openai/gpt-5.3-chat-latest | Iris Hauptmodell | OpenAI (über OpenClaw) |
## Deaktiviert
- **Ollama** (qwen3:4b): deaktiviert, funktioniert aktuell nicht. Wird später wieder aufgegriffen.
- **NVIDIA** (moonshotai/kimi-k2.6): vollständig entfernt.
- **Kimi 2.6**: vollständig entfernt.
## Integration
- Einzige aktive Integration: `OpenClawRuntime` über `IAgentRuntime`
- Keine direkten Provider-Registrierungen mehr im Backend (OllamaProvider, NvidiaProvider entfernt)
- Model-Routing läuft zentral über OpenClaw Gateway