Zum Hauptinhalt springen

Änderungsprotokoll (Plattform)

Kurzindex größerer Produkt- und Systemlieferungen — zum Nachlesen für Team, Redaktion und Betrieb. Technische Details stehen in den verlinkten Seiten.

(Neue Einträge oben; Format siehe .cursor/rules/documentation-narrative-and-ops.mdc.)


Was: Bot-Analytics werden vor Speicherung anonymisiert; Session-IDs ohne IP; Website-Chat verlangt chatConsentAccepted; Rate-Limits für Kontakt/Feedback; Cookie-Kategorie external für Google Maps/externe Schriften; Cron privacy-retention (Default 365 Tage).

Warum: Lücken zwischen Doku und Code schließen; nachvollziehbare Aufbewahrung und Einwilligung für Besucher-Dienste.

Links: DSGVO und Datenschutz, Datenschutz & Einwilligung, Cron-Setup — Privacy Retention


Was: Content Planer: Filter Nur online / aktiv. Social-Editor: Emoji-Picker, Medienvorschau vergrößern. Community & Performance: Zeitraum wählen (7/30/90 Tage, Monat, eigenes Von–Bis). Performance: Als PDF (Druckdialog).

Warum: Rückfragen der Redaktion zu Planer-Logik, Emojis, Bildprüfung, Auswertungszeitraum und exportierbarem Reporting.

Links: Social Media Freigabe, Workflow & Freigaben


2026-05-21 — Social Engage: Facebook-Kommentare aus Outstand

Was: Parser für Outstand-Replies korrigiert (replies.comments[] statt nur flaches Array). Engage nutzt platformPostId für Facebook und lädt nur wirklich veröffentlichte Posts.

Warum: Unter /dashboard/social/engage blieben Kommentare leer, obwohl Facebook welche zeigte — Outstand liefert die Thread-Daten in einem verschachtelten JSON.

Links: Social Media Freigabe — Community & Antworten


2026-05-19 — MEC ShopBox & Goldbeck: optionale Inhaltsfarben

Was: Pro Center optional Fließtextfarbe und Seitentitel-Farbe im Webseiten-Tab (Goldbeck · Optionen, MEC ShopBox · Optionen). Marken-/Layout-Farben bleiben in Design bzw. Bento/Header.

Warum: Lesbarkeit auf Rechts- und Inhaltsseiten (z. B. Impressum) ohne die Markenfarbe der Navigation zu verändern.

Links: Goldbeck Webseiten-Tab, MEC Optionen


2026-06-21 — MCP Remote: COCKPIT_ALLOW_CONTENT_PUSH bleibt nach Deploy erhalten

Was: render.yamlCOCKPIT_ALLOW_CONTENT_PUSH von value: "" auf sync: false (wie Bearer/API-Key).

Warum: Jeder Blueprint-Deploy setzte die manuell auf true/1 gesetzte Variable wieder auf leer.

Links: Claude MCP — IT-Setup Render


2026-06-21 — Social-Freigaben: übersichtlicher, durchgehend Deutsch

Was: Freigabe-Karten mit deutscher Status- und Format-Anzeige (Feed-Post, Karussell, Story, Reel), strukturiertes Detail-Panel, Aktionsleiste wie Website-Workflow; Center- und Meta-Zeile.

Warum: Englische Post-Typen (feed, carousel) und gedrängtes Karten-Layout erschwerten die Prüfung.

Links: Social Media Freigabe


2026-06-21 — Workflow & Freigaben: übersichtlicher, durchgehend Deutsch

Was: Entwurfs-Felder im Detail-Panel mit deutschen Bezeichnungen (Name, Kategorie, Etage, Öffnungszeiten, Website …); logische Feldreihenfolge; klarere Aktionsleiste pro Karte; Herkunft/KI-Assistent statt englischer Labels.

Warum: Shop-Import-Entwürfe zeigten technische englische JSON-Keys; die Aktionsbuttons wirkten unübersichtlich.

Links: Workflow & Freigaben


2026-06-06 — Täglicher Redaktions-Digest (opt-in)

Was: Optional einmal täglich E-Mail-Zusammenfassung (Glocke + offene Freigaben/Workflow) — nur bei Inhalt, Standard aus. Einstellungen unter Einstellungen → Benachrichtigungen; Cron stündlich, Versand zur gewählten Berlin-Stunde. Ablehnungen und Publish-Fehler bleiben Sofort-Mails.

Warum: Redaktion soll informiert werden, ohne jede Glocke sofort per E-Mail zu bekommen; Sicherheits-Mails (Passwort, Lockout) unverändert sofort.

Links: Benutzer: Digest, Developer: Dashboard-E-Mails, Cron-Setup, Migration SAFE


Was: Reset-/Activate-/Unlock-Seiten lesen Token serverseitig (kein hängender Suspense-Spinner); diagnoseAccountToken() unterscheidet abgelaufen, bereits verwendet, falscher Link-Typ.

Warum: /auth/reset-password?token=… blieb auf dem Lade-Spinner; wiederverwendete Links hatten keine klare Meldung.

Links: Benutzer: Einmal-Links


2026-06-21 — Profil-Self-Service abgesichert & erweitert

Was: User-APIs mit fehlender Auth geschlossen; Mein Konto um Profilbild-URL und Organisation ergänzt; Center-Manager nutzt cm-auth statt offenem by-email-Lookup; optional CM_BRIDGE_SECRET für Server-zu-Server.

Warum: Jeder eingeloggte Nutzer konnte fremde Profile/Center-Zuweisungen per API lesen; CM-App-Name-Lookup war kaputt und unsicher.

Links: Benutzer: Mein Konto


Was: Self-Service-Reset auf der Anmeldeseite nutzt dieselbe E-Mail-Pipeline wie der Admin-Reset (nicht mehr nur status === 'Aktiv'); Auth-Footer mit automatischem Copyright-Jahr und Dashboard-Version aus apps/dashboard/VERSION.

Warum: Mails kamen von der Login-Seite nicht an, obwohl Admin-Reset funktionierte; veraltetes Copyright-Jahr und fehlende Versionsinfo im Footer.

Links: Benutzer: Passwort vergessen, Developer: Dashboard-E-Mails


2026-06-06 — Center Manager: Operational-Cockpit-UI (Hell/Dunkel)

Was: Neutrales Layout statt Vollbild-Gradient und Glassmorphism; Hell/Dunkel-Umschalter im Header; KI-Chat mit klaren Karten, statischen Beispiel-Chips und sachlichem Ton.

Warum: Professionelleres Arbeitswerkzeug für Center Manager unterwegs — bessere Lesbarkeit, weniger „Consumer-App“-Look.

Links: Center Manager App — Oberfläche


2026-06-06 — Account-Sicherheit: Lockout, Entsperren, Token-Purpose, Legacy-API

Was: Login-Lockout (5 Fehlversuche) mit E-Mail + /auth/unlock; Setup-Links auch für inaktive Accounts; Legacy PUT/DELETE /api/users sendet dieselben Benachrichtigungs-Mails wie [userId]. Additive DB-Spalten an User.

Warum: Alle in Mails versprochenen Flows funktionieren; keine toten API-Pfade mehr.

Links: Benutzer: E-Mails & Einrichtung, Developer: Dashboard-E-Mails, Migration SAFE


Was: Einheitliche Dashboard-Mails (Resend), Copyright SawatzkiMühlenbruch GmbH, keine Klartext-Passwörter mehr — Willkommen/Admin-Reset/Einladung per Einmal-Link (/auth/activate, /auth/reset-password).

Warum: Professioneller SaaS-Standard; sicherer Onboarding- und Reset-Flow.

Links: Benutzer: E-Mails & Einrichtung, Developer: Dashboard-E-Mails


2026-06-06 — Betrieb: render.yaml, Legacy-Cleanup, Cron-Health

Was: CRON_SECRET + PINECONE_HOST in Render-Blueprint; Legacy-Routen auf schlanke 410-Stubs; GitHub Vector-Sync prüft danach Health (needsSync === 0).

Warum: Cron-Auth und Pinecone-Host dokumentiert deploybar; toter Code weg; fehlgeschlagener Index fällt in CI auf.

Links: docs/CRON-SETUP.md, AI-Orchestrator


2026-06-06 — CM-KI Phase 2/3: Health, Social, Bestätigung, Thread-Memory

Was: Vector-Sync-Health in API-Einstellungen, Legacy action-handler aus Chat entfernt (410), CenterContacts in Pinecone, Social-Entwürfe, Human-in-the-loop, Redis Chat-Threads.

Warum: Betrieb sieht Index-Stand im UI; irreversible Aktionen bestätigen; ein Orchestrator-Pfad statt paralleler Legacy-Kette.

Links: Developer: AI-Orchestrator, GET /api/system/vector-sync/health


2026-06-06 — Pinecone Vector-Sync & Hybrid-Kontext (Manager-KI)

Was: Vollständigerer Pinecone-Index (Shops, Offices, Services/HotPicks Realtime), zentraler Host aus Config, nächtlicher Cron, Manager-Assistant lädt immer DB + Pinecone.

Warum: Nicht alle Center-Daten landeten in Pinecone; bei Treffern fehlte reicher DB-Kontext (Issues, Kontakte, …).

Links: Developer: AI-Orchestrator, docs/CRON-SETUP.md


2026-06-06 — Center Manager: AI-Orchestrator (intent-gesteuert)

Was: KI-Chat nutzt Dashboard-Intent + Kontext; Mehrfach-Aktionen über ai-orchestrator statt Regex-first.

Warum: Demo-Workflows waren nicht smart genug; Gehirn liegt im Dashboard (analyzeIntentWithAI).

Links: Center Manager App, Developer: AI-Orchestrator


2026-06-06 — Center Manager: Session-Sicherheit & Live-Daten

Was: HttpOnly-Cookie-Session mit Middleware, echte Mitarbeiter im Today-Dashboard, Legacy /ai-assistant/ai-chat, Subdomain-DNS-Doku.

Warum: App war nicht production-ready (localStorage-Session, Demo-Team, hardcodierte URLs).

Links: Center Manager App


Was: Doku markiert DB-Archiv (Phase 5) als zurückgestellt / keine Pflicht — Betrieb läuft mit Phasen 1–4.

Links: Legacy Page Builder — Abschaltung


2026-05-21 — NOW! Shop: Anzeigename (ehem. Reserve & Collect)

Was: Dashboard-Navigation, Seiten, Marketing-Übersicht, Shop-Katalog und Doku nutzen NOW! Shop als Produktname. URLs (/dashboard/reserve-campaigns) und DB-Modelle (ReserveCampaign) bleiben unverändert — kein Datenverlust.

Warum: Klarere Zuordnung zur NOW! App und Social-Commerce-Journey (Social → App → Abholung im Center).

Detail: Modul-Zuordnung NOW! Shop, Labels: apps/dashboard/src/lib/now-shop-labels.ts.


2026-06-04 — Digital Experience: Sidebar-Untergruppen NOW! Shop & QR

Was: Navigation gruppiert QR-Management sowie NOW! Shop-Kampagnen/Reservierungen/Store-Ansicht unter Untermenüs; URLs unverändert.

Links: Navigation & Module, Modul-Zuordnung


2026-06-04 — Legacy Page Builder: Phase-5a-SQL vorbereitet (nicht ausgeführt)

Was: 20260604_legacy_page_archive_tables_SAFE.sql — Archiv-Tabellen + idempotente Kopie aus Page/PageBlock.

Links: Legacy Page Builder — Abschaltung — SQL: packages/database/migrations/20260604_legacy_page_archive_tables_SAFE.sql


2026-06-04 — Legacy Page Builder: Phase-5-Archiv-Plan (Entwurf)

Was: Migrationsplan packages/database/docs/20260604_legacy_page_pageblock_archive_PHASE5_SAFE.md — Expand-Contract für Page/PageBlock, ohne Ausführung.

Warum: Team kann Backup, Archiv-Tabellen und DROP getrennt freigeben.

Links: Legacy Page Builder — Abschaltung


2026-06-04 — Reserve & Collect: Modul-Zuordnung dokumentiert

Was: Doku klärt, dass QR-Management, Reserve-Kampagnen und Reservierungen zum Modul digital-experience gehören; Marketing nur Querschnitt.

Links: Modul-Zuordnung, Navigation & Module


Was: Skript scripts/backup-legacy-page-builder-tables.mjs exportiert Page/PageBlock read-only nach backups/. Shop-Locations Neu nutzt ContentFormFooter wie Edit.

Warum: Sichere Vorbereitung für DB-Archivierung ohne DROP; einheitliche Formular-UX bei Filialen.

Links: Legacy Page Builder — Abschaltung, Mall-OS UI


2026-06-04 — Legacy Page Builder: prisma.page-Schreibzugriffe deaktiviert (Phase 4)

Was: Guard legacy-page-builder-guard.ts schaltet alle verbleibenden Page/PageBlock-Writes ab (Theme-Manager, Setup-Routen). API add-hbb-blocks entfernt. Theme-Setup-Status nutzt PageContent/websiteEnabled.

Warum: Kein aktiver Stack schreibt mehr Legacy-Pages — verhindert stilles Re-Seeding bei Theme-Setup.

Links: Legacy Page Builder — Abschaltung


2026-06-04 — Legacy Page Builder: Routen + APIs entfernt (Phase 2)

Was: Legacy-UI (/dashboard/content/pages), /api/pages*, Center-Pages-APIs und Migration/Maintenance-Routen gelöscht. Block-Editor-Bausteine für WordPress Content Areas bleiben. Audit-Skript prüft, dass entfernte Pfade nicht wieder auftauchen.

Warum: 0 Production-Traffic auf Legacy-APIs; Center-Website, WordPress und Signage nutzen andere Modelle — UI/API-Reste nur Wartungsrisiko.

Links: Legacy Page Builder — Abschaltung


2026-06-04 — Legacy Page Builder: Seeding aus + Einstiege bereinigt

Was: Kein neues Page/PageBlock-Seeding mehr bei Center-Anlage/Repair/Theme-Regenerate; versteckte Dashboard-Links (Webseiten-Tab, Theme-Settings, Technology-Badge, Menü-Editor) zeigen auf Webseiten-Reiter bzw. WordPress Content Areas. WordPress-Verifikation: Plugin nutzt nur ContentArea-APIs, nicht Legacy-Pages.

Warum: Production-Stack (center-website, signage, manager, WordPress) hängt nicht am Page Builder — sichere Abschaltung Phase 3+2.

Links: Legacy Page Builder — Abschaltung


2026-06-04 — Legacy Page Builder: Audit & Abschaltungsplan

Was: Skript scripts/audit-legacy-page-builder.mjs + Doku zur sicheren Entfernung des React-Page-Builders (Page/PageBlock); Abgrenzung zu WordPress, Templates und pagesConfig.

Warum: SPA-Page-Builder ist durch WordPress/v0/MCP ersetzt — Entfernung nur nach messbarer Nutzung, ohne Datenverlust.

Links: Legacy Page Builder — Abschaltung


2026-06-04 — Dashboard: UI-Token-Check & Farb-Migration

Was: check-dashboard-ui-tokens.mjs erkennt alle gängigen Tailwind-Palette-Utilities (text/bg/border/gradient/ring, Varianten); neues Codemod migrate-dashboard-color-classes.mjs; Dashboard-Baseline 0 unter --strict.

Warum: Hardcodierte blue-600/gray-50-Klassen umgehen cockpit-dashboard-theme.css — zentrale Theme-Anpassungen sollen global greifen.

Links: Mall-OS UI, .cursor/rules/dashboard-ui-tokens.mdc


2026-05-21 — Marketing Cockpit: Sidebar, Module & Rollen

Was: Sidebar Marketing Cockpit nach Social (Übersicht, Kampagnen, Content-Planung, Workflow, Events in Town); aktive Menüpunkte mit ?lens=marketing; marketing-cockpit in ROLE_MODULE_IDS und permissions für ORG_MARKETING_MANAGER / CENTER_ADMIN; Mall-Modul ohne Marketing-Pfade; Legacy-Kalender-Redirect.

Warum: Modul sichtbar und korrekt zugeordnet — vorher fehlte marketing-cockpit oft in Rollen-Defaults, Sidebar hing weit unten ohne Workflow-Link.

Links: Navigation & Module, Plattform-Überblick


2026-06-04 — MCP Batch Content-Performance + EN-Doku Analytics

Was: Neues MCP-Tool cockpit_analytics_content_performance_batch (bis 40 Inhalte, ein Umami-Call); englische analytics-integration.md an DE-Stand angeglichen.

Warum: Agents können Listen-Performance ohne N Einzelrequests auswerten; i18n-Doku war veraltet.

Links: Analytics-Integration


2026-06-04 — Analytics: Verifikations-Checkliste + MCP-Discover

Was: Doku-Abschnitt „Verifikation“ in analytics-integration.md; MCP tool-catalog Kategorie analytics (5 Tools); cockpit_center_project_init und V0_CUSTOM_INSTRUCTIONS um Analytics-Lese-Tools ergänzt.

Warum: Nach Umami/Content-Performance-Release klare Prüfschritte für Website, v0 und MCP/Agents.

Links: Analytics-Integration


2026-06-04 — Umami: Shops, Jobs, News vereinheitlicht

Was: ContentPerformanceCard auf Shop-Detail (Tab Analytics), Job-Detail und News (ersetzt alte News-Karte); KI für alle Inhaltstypen wenn OpenAI aktiv; News behält dedizierte SEO-POST-Route.

Warum: Ein Modul, maximale Umami+KI-Abdeckung auf allen relevanten Detailseiten.

Links: Analytics-Integration


2026-06-04 — Umami Content-Performance: Detailseiten & MCP

Was: Performance-Karte auf Angebots- und Event-Detailseiten (ContentPerformanceCard); MCP-Tools cockpit_analytics_content_performance und cockpit_analytics_content_performance_insights; cockpit_analytics_content_metrics an Umami-Aggregation angepasst.

Warum: Einheitliche Umami+KI-Nutzung nicht nur auf der Content-Übersicht und bei News, sondern auch für Claude/MCP-Integrationen.

Links: Analytics-Integration · Content Management


2026-06-04 — Content-Übersicht: echte Performance-Daten

Was: /dashboard/content — KPI-Karten und Performance-Tabelle nutzen DB-Metriken (News, Hot Picks, Jobs); News-Views mit Umami-Fallback; keine Zufalls-SEO-Scores mehr; Spalte „Qualität“ statt irreführendem „KI-Score“.

Warum: Die Box wirkte wie Live-Analytics, lieferte aber teils Mock-Werte und kaputte Prisma-Selects.

Links: Analytics-Integration


2026-06-04 — Dashboard-UI: Social Hub & Content-Status erweitert

Was: SocialHubView auf Surface/Design-Tokens; content-status-badges.ts um Jobs, Hot-Picks, Offices und Angebots-Lifecycle ergänzt; Listen- und Detailseiten darauf umgestellt.

Warum: Modulweise UI-Patterns nach abgeschlossener Farb-Migration — weniger duplizierte Status-Mapper.

Links: Mall-OS UI


2026-06-04 — Dashboard-UI: Hub-Patterns & Content-Status

Was: CockpitSectionHub nutzt Surface/surfaceVariant statt Tailwind-color-Strings; gemeinsame Status-Mapper in content-status-badges.ts für News/Events/Pages; CI-Workflow dashboard-quality.yml für schnelle Token-/Route-Checks.

Warum: Wartbare UI-Patterns nach abgeschlossener Farb-Migration — nächste Schritte modulweise statt Big-Bang.

Links: Mall-OS UI


2026-06-04 — Dashboard-UI: Strict-Check im prebuild

Was: check-dashboard-ui-tokens.mjs --strict in apps/dashboard prebuild und pnpm check:dashboard-ui (Root); Baseline 0 — Build bricht bei neuen Hardcode-Farben ab.

Warum: Regressionen verhindern nach abgeschlossener Token-Migration.

Links: Mall-OS UI


2026-06-04 — Dashboard-UI: Migration Runde 16 — Baseline 0

Was: Letzte 37 Ein-Treffer-Dateien (Auth, CM-App, Wayfinding, Shop-Mapping, Content-Forms, Legal-Pages u. a.) auf Design-Tokens; Check-Skript meldet 0 Treffer.

Warum: Farb-Migration abgeschlossen — Grundlage für --strict im Dashboard-Build.

Links: Mall-OS UI


2026-06-04 — Dashboard-UI: Migration Runde 15 (2-Treffer-Dateien abgeschlossen)

Was: Alle verbleibenden Dateien mit je 2 Hardcode-Treffern: Content-Detail, Hub-Seiten, Marketing, QR, RSS, WordPress-Templates, Plugin-UI-Generator u. a.

Warum: Baseline von 85 auf 37 Treffer — nur noch Einzelfälle offen.

Links: Mall-OS UI


2026-06-04 — Dashboard-UI: Migration Runde 14 (Listen, WordPress, Property)

Was: Digital Signage, Finance, Parking, Property, Marketing, MEC-Import, Settings-Notifications, WordPress-Übersicht, Center-Profil, Editorial-Flow, Touchscreen, Wayfinding u. a. auf Token-Badges/Surface.

Warum: Alle verbleibenden Drei-Treffer-Dateien der Baseline bereinigen.

Links: Mall-OS UI


2026-06-04 — Dashboard-UI: Migration Runde 13 (WordPress, Komponenten, Issues)

Was: Theme-Generator, Center-Profil, Schema-Check, External Events, News-AI, WP-Performance, Shop-Mapping, Issues/new, CM-Content, Notfall-Override auf Token-Badges/Surface.

Warum: Vier-Treffer-Dateien und gemeinsame Hilfskomponenten vereinheitlichen.

Links: Mall-OS UI


2026-06-04 — Dashboard-UI: Migration Runde 12 (CM-App, Community, Module)

Was: Capture-Status, Issue-Detail, CM-Benachrichtigungen, Community-Übersicht, Team-Management, Quick-Links, Module-Kategorien, Drafts, QR-Detail, Integration-Suites auf Token-Badges/Surface.

Warum: Verbleibende Center-Manager- und Community-Views ohne verstreute bg-*-100-Klassen.

Links: Mall-OS UI


2026-06-04 — Social Caption KI: Plattform-Regeln & Center-Kontext

Was: Caption-Generator nutzt plattformspezifische Hashtag-Regeln (Facebook ohne Tags; Instagram 3–5; bei FB+IG optional Erstkommentar). Prompts in social-caption-prompts.ts; API lädt Shops, Events, Angebote, News aus der DB passend zum Brief.

Warum: Hashtags nur wo sie wirken; bessere Texte durch echte Center-Daten statt generischer Floskeln.

Links: Social Media Freigabe


2026-06-04 — Dashboard-UI: Migration Runde 11 (Permissions, Dispatch, Content-Detail)

Was: ROLE_BADGE_VARIANT/ROLE_DOT_CLASS in permissions.ts; Dispatch-Karten, Issues, Hot-Picks/Jobs-Detail, Reviews, Backup, Social-Freigabe-Link auf Token-Badges.

Warum: Zentrale Rollen-Farben und verbleibende Listen/Detailseiten vereinheitlichen.

Links: Mall-OS UI


2026-06-04 — Dashboard-UI: Check-Skript gehärtet + Migration Runde 10

Was: check-dashboard-ui-tokens.mjs scannt jetzt alle Dashboard-Quellen mit (?!\d)-Abgrenzung (keine False-Positives durch bg-blue-500). Migration: System-Übersicht, Center-Manager-Dashboard, Shops/Services, Google Places, Support-Seite.

Warum: Verlässliche Baseline für CI; weitere Listen und Cockpit-Widgets auf Token-Badges.

Links: Mall-OS UI


2026-06-04 — Dashboard-UI: Migration Runde 9 (Content, WordPress, Themes)

Was: WordPress Content-Areas, Dynamic Hero, Content-Übersicht/Offers/Offices, Page-Cards (STATUS_INFO), Theme-Family-Selector, Settings-Rollen auf @mall-os/ui-Badges und Tokens.

Warum: Weitere Hardcodes in Listen, Scope-Badges und Theme-Auswahl vereinheitlichen.

Links: Mall-OS UI


2026-06-04 — Dashboard-UI: Migration Runde 8 (Workflow, Property, Planner)

Was: Weitere Seiten auf @mall-os/ui-Tokens: Website-Freigaben (workflow), Social-Freigabe-Board, Property-Bereich (Badges), Personal, Content-Planner (Typ-Chips), Dispatch-Detail, Events-Liste, Settings-Nutzer (Modul-Matrix).

Warum: Hardcoded Tailwind-Farben schrittweise abbauen — Baseline Check von ~332 auf ~260 Treffer.

Links: Mall-OS UI


2026-06-04 — Dashboard-UI: globale Primitives & Token-Badges

Was: Neue Bausteine in @mall-os/ui: Surface, StatTile, SelectableCard, KanbanColumn. Badge/StatusBadge auf Design-Tokens. Migration Dispatch-Kanban, Social-Kanal-Chips, AI-Auswahl, Block-Renderer. Check-Skript pnpm check:dashboard-ui.

Warum: Ein zentraler, wartbarer UI-Layer — Optik über cockpit-dashboard-theme.css steuerbar statt verstreute Tailwind-Farben.

Links: Mall-OS UI — Semantische Flächen


2026-06-04 — Alert-Varianten (Dashboard, Runde 7)

Was: Wayfinding SVG-Upload, Shop-Mapping-Liste, Center-Profil (Team & Workflows), Offers-KI, Header/Footer-Farben, Property Automation, Integration Suites, Benachrichtigungen, File-Upload, Theme-Upload.

Warum: Weitere Vereinheitlichung der Hinweis-UI im Dashboard.

Links: Mall-OS UI — Hinweise


2026-06-04 — Alert-Varianten (Dashboard, Runde 6)

Was: Admin Setup, Center-Page-Sync, App-Settings-Modal, Homepage-Tiles, Emergency-Manager, Wayfinding, Embed-Chat, Reservierungen, Plugin-Migration. PageContainer für Services Quick Setup und Organisations-Detail.

Warum: Fortführung einheitlicher Hinweis-UI und Seiten-Shell.

Links: Mall-OS UI — Hinweise


2026-06-04 — Alert-Varianten (Dashboard, Runde 5)

Was: Dispatch-Detail, MEC-Import (Medien-Hinweis), Shop-Mapping-Karte, Domains, WordPress Connect/Import, Centerplan Google-Maps-Hinweis, Chatbot-Analytics, Reviews-Sentiment. Digital-Experience Theme-Seiten auf PageContainer.

Warum: Weitere UI-Vereinheitlichung ohne manuelle Farb-Overrides.

Links: Mall-OS UI — Hinweise


2026-06-04 — Alert-Varianten statt Farb-Overrides (Dashboard, Runde 4)

Was: Weitere ~20 Stellen: Social-Editor/Freigabe-Board, QR-Verwaltung, Google Places, CM-Apps-Settings, Workflow-Ablehnung, Website-Einstellungen (Digital Experience) inkl. PageContainer + DNS-Hinweis als Alert.

Warum: Fortführung der UI-Vereinheitlichung; weniger manuelle Farb-Klassen.

Links: Mall-OS UI — Hinweise


2026-06-04 — Alert-Varianten statt Farb-Overrides (Dashboard)

Was: ~50 Stellen mit manuellem border-*-200 bg-*-50 auf Alert/Card auf Alert-Varianten (default, warning, destructive, success) umgestellt. Hub-Karten (Settings, System) nutzen normale Card + --shadow-card-hover. Neue Variante success in @mall-os/ui.

Warum: Einheitliches Hinweis-Design ohne duplizierte Tailwind-Farben.

Links: Mall-OS UI — Hinweise


2026-06-04 — News Performance (Umami/DB/OpenAI) & Card-Schatten

Was: News-Detail zeigt echte Aufrufe (Umami pro News-URL, Fallback DB), Shares aus DB, SEO-/Lesbarkeits-Scores (regelbasiert, optional OpenAI). Zentraler --shadow-card-Token für alle Card-Komponenten.

Warum: Keine Platzhalter-Metriken mehr; Karten heben sich klar vom Seitenhintergrund ab.

Links: Mall-OS UI · API: GET/POST /api/content/news/{id}/performance


2026-06-04 — Dashboard: Settings & WP Content-Bereiche (PageContainer)

Was: Benutzer (Neu/Bearbeiten), Rollen, Feedback-Detail, Kommunikations-Redirect, WP Content-Bereiche Detail/Edit auf PageContainer. Design-Tokens in Community- und WordPress-Hub.

Warum: Einheitliche Dashboard-Shell in Admin- und WordPress-Bereichen.


2026-06-04 — Dashboard: Edit-Routen & PageContainer (Fortsetzung)

Was: Content-Bearbeiten unter kanonischem Pfad /content/{typ}/{id}/edit (Offers, Shops, Services, Jobs, Hot Picks, Shop-Chains, Shop-Locations, Centers); alte edit/[id]-URLs leiten um. Integration, WordPress Content-Bereiche auf PageContainer; Scheduling/Broadcast/Content-Areas: gray-*/blue-* → Design-Tokens.

Warum: Einheitliche URLs und visuelle Shell wie bei Events/News; weniger Hardcode-Farben.


2026-06-04 — Dead-Code-Aufräumung (Dashboard)

Was: Entfernt: API-.backup-Dateien, api/_disabled/**, WordPress-*.old-Seiten, ungenutzter Unified Website Builder, Dev-Route test-bunny, tote Nav-Configs. Demo-Stubs /dashboard/events|shops|jobs → Redirects auf /dashboard/content/*. Marketing/Community-Links korrigiert.

Warum: Weniger Verwirrung, keine doppelten/veralteten UIs mehr im Repo. Verbleibende React-Page-Builder-Pfade sind in deprecated-navigation.ts dokumentiert.


2026-06-04 — Content-Formulare & Dashboard-Seitenlayout

Was: News, Events und Angebote (Neu und Bearbeiten) nutzen dasselbe 3-Schritte-Muster (Inhalt → Veröffentlichen → Optional). Weitere Dashboard-Seiten auf PageContainer: Centerpläne (Übersicht + Neu), Team Management, Scheduling, Video-Scheduling, Broadcast Messages, WordPress-Hub.

Warum: Einheitlicher Redaktions-Workflow; weniger abgesetzte Sonder-Layouts und Hardcode-Farben.

Links: Content Creator Handbuch


2026-06-04 — Dashboard-UI: Tabs, Webseiten-Navigation, News-Formular

Was: Einheitliche Tab-Stile über Design-Tokens (@mall-os/ui, keine Hex-Overrides mehr). Webseiten-Tab: einklappbare Hauptgruppen + Suche in der Sidebar. Neue News: Formular in drei Schritte (Inhalt → Veröffentlichen → Optional).

Warum: Weniger visuelle Inkonsistenz und kognitive Last für Redakteur:innen im Tagesbetrieb.

Wer: Redaktion, Center-Betrieb (Dashboard).

Links: Webseiten-Tab Navigation · Content Creator Handbuch → News

So testen: Beliebige Seite mit Tabs (z. B. Social) → aktiver Tab nutzt Primary-Farbe. Center → Webseite → Gruppen auf-/zuklappen, Suche. Content → News → Neu → drei Reiter durchklicken, speichern.


2026-06 — Doku-Zielgruppen (Leitplan) & Dev-Start

Was: Verbindliche Einordnung Redaktion / Entscheider / Entwickler; Start Entwicklung für Cursor/MCP; Startseite docs nach Zielgruppe getrennt.

Warum: Eine Doku für drei völlig verschiedene Nutzungen — ohne Leitplan vermischen sich v0-Onboarding und API-Verträge.

Links: Doku-Zielgruppen · Start Redaktion · Start Entwicklung


2026-06 — Doku: schlanke Navbar

Was: Horizontale Navbar von 9 auf 5 Einträge reduziert: Start, Redaktion, Plattform, Entwickler, Dropdown Weitere (Dashboard, Center-Website, Signage, Templates, Themen A–Z).

Warum: Weniger visuelles Chaos auf Desktop und Mobil.

Links: Doku-Zielgruppen · docusaurus.config.ts


2026-06 — Doku: Optik, Startseite, EN-Workflow

Was: Startseite mit drei Zielgruppen-Karten; schlankeres CSS (Navbar, Tabellen, Sidebar); Anleitung Mehrsprachige Doku mit docusaurus-i18n + npm run docs:translate.

Warum: Übersichtlicher Einstieg; EN für internationale Partner — OpenAI wie im Cockpit, Übersetzungen versioniert in i18n/en/.

Links: Doku i18n · Doku-Zielgruppen


2026-06 — Investoren & Partner (Plattform-Nachweis)

Was: Eigener Bereich für Führungsebene (Eigentümer, Betreiber, Partner, VC): Entscheider-Seite, Reife & Betrieb, Due-Diligence-Checkliste. Navbar/Footer Plattform führt dorthin.

Warum: Redaktions-Doku allein vermittelt nicht „finanzierbare Plattform“ — Investoren brauchen Architektur-, Reife- und Marktargumente ohne Technik-Overload.

Links: Investoren & Partner · Due Diligence


2026-06 — Redaktion: Start hier & Onboarding-Kurzpfade

Was: Seite Start hier (Neu im Team) plus Kurzpfade für Center-Website (v0), Social (Outstand) und Claude/MCP (später). Redaktions-Sidebar: zuerst Checklisten, Detail eingeklappt. Verweise von Intro, Themenfinder und Langform-Seiten.

Warum: Hauptnutzer sind Quereinsteiger — v0, MCP und Outstand nicht in einem Atemzug; klare Reihenfolge statt 80-Link-Baum.

Wer: Neue Redakteurinnen, Teamleitung Onboarding.

Links: Start hier · Website v0 Kurzpfad · Social Einstieg


2026-06 — Doku-Navigation (Sidebar nach Rolle)

Was: Docusaurus-Navbar mit Bereichen Redaktion, Dashboard, Center-Website, Signage & Apps, Entwickler, Templates, Plattform — je eigene, kurze Sidebar. Start-Hub nur noch Intro, Themenfinder und Plattform-Kurzüberblick.

Warum: Die frühere mainSidebar mit 80+ Einträgen war für Redaktion unübersichtlich (Dev/MEC-Checklisten im gleichen Baum).

Wer: Alle Nutzer der Doku auf docs.cockpit-os.de.

Links: Start · Pflege: cockpit-docs/sidebars.ts, docusaurus.config.ts


2026-06 — Dashboard-Steuerzentrale & Social Cockpit (Modul)

Was: Startseite /dashboard als operative Steuerzentrale (Aufgaben-Inbox, Planner, Center-Status, API GET /api/dashboard/home). Social Cockpit als eigenes Sidebar-Modul mit Hub, Freigaben (/dashboard/social/approvals), Engage und Reporting — getrennt vom Website-Workflow. Trennung Center-Website (CockpitOS) vs. WordPress (Plugin) in der Navigation.

Warum: Schnellerer Tagesbetrieb pro Center; Social nicht mehr mit Website-Entwürfen in einer Liste vermischen.

Wer: Redaktion, Center Manager, Org-Marketing (Dashboard); Betrieb unverändert zu Outstand/Env.

Links:

So testen: Center im Switcher wählen → /dashboard (Zähler klickbar) → Social Cockpit → Freigaben; Website-Entwurf nur unter Workflow.


2026-05-21 — Google Business Profile: Antworten direkt aus dem Cockpit

Was: OAuth-Integration (Google Business Profile API) pro Center; Reviews aus GBP wenn verbunden; Dialog Bei Google senden; Admin-Tab unter Integration → Google Places.

Warum: Google bietet eine offizielle Reply-API — mit OAuth können Center Antworten ohne Copy-Paste veröffentlichen.

Wer: Admin (OAuth-Client), Center Manager / Redaktion (Verbindung + Antworten).

Links: Social Media Freigabe


2026-05-21 — Reviews: KI-Caption, Sammel-Post, Google-Antwort-Hilfe

Was: Social-Posts aus Reviews mit KI-Caption; Social Sammel-Post aus KI-Empfehlungs-Karten; Antworten-Dialog mit KI-Vorschlag, Kopieren und Link zu Google (kein Auto-Post).

Warum: Feinerer Ton pro Thema, wiederkehrende Kritik gebündelt adressieren, Google-Antworten benutzerfreundlich ohne nicht vorhandene API.

Wer: Redaktion, Marketing, Center Manager.

Links: Social Media Freigabe


2026-05-21 — Social: Kommentar-Benachrichtigungen (Phase B3)

Was: Hub-Kachel Kommentare offen; Dashboard-Glocke bei neuen Social-Kommentaren; Engage öffnet mit ?filter=comments; Cron ergänzt Kommentar-Check.

Warum: Community-Antworten werden nicht vergessen — gleicher „Heute für dich“-Ansatz wie bei Freigaben.

Wer: Redaktion, Center Manager, Marketing.

Links: Social Media Freigabe


2026-05-21 — Social-Post aus Google-Bewertung

Was: Auf Analytics → Bewertungen Button Social-Post pro Review; API POST /api/social/from-content mit type: review und Review-Snapshot; Hub-Link zu Bewertungen.

Warum: Reputation (Analytics) und Öffentlichkeitsarbeit (Social Cockpit) verbinden — Kritik/Lob in einem bearbeitbaren Entwurf adressieren, ohne Doppelpflege der Review-Daten.

Wer: Redaktion, Marketing, Center Manager.

Links: Social Media Freigabe


2026-05-22 — Social aus News/Event/Angebot

Was: Button Als Social-Post auf Inhalts-Detailseiten; API POST /api/social/from-content; Hub-Hinweis zu News/Events/Angebote.

Warum: Ein Datenkern — Website-Inhalt wird ohne Doppelpflege zum Social-Entwurf (CockpitOS-Verzahnung).

Wer: Redaktion, Marketing.

Links: Social Media Freigabe


2026-05-22 — Social Cockpit Shell & Hub „Heute“

Was: Einheitliche SocialPageShell mit Subnav auf allen Kernseiten; Hub zeigt Heute für dich (KPIs + Schnellaktionen) statt nur Kacheln. API GET /api/social/hub.

Warum: Social wirkt wie ein zusammenhängendes Cockpit-Modul im CockpitOS-Universum — Orientierung ohne Feature-Flut.

Wer: Redaktion, Center Manager, Marketing.

Links: Social Media Freigabe, Navigation


2026-05-21 — Social / Outstand (Webhooks, Metriken, Publish)

Was: Outstand-Anbindung erweitert: Kanal-Status in Freigaben, Webhooks (post.published, post.error, account.token_expired), First Comment nach Live-Gang, Reels/Karussell-Publish, täglicher Metrik-Sync per Cron.

Warum: Zuverlässigeres Publishing (u. a. Bilder über containers[].media), schnellere Fehlererkennung und Reporting ohne manuelles Nachziehen in Outstand.

Wer: Redaktion/Social (Freigabe-UI), Betrieb/IT (Env, Webhook, Cron).

Links:

Betrieb: OUTSTAND_API_KEY, optional OUTSTAND_WEBHOOK_SECRET, CRON_SECRET; Webhook-URL POST …/api/webhooks/outstand.


2026-05 — Plattform-Überblick & Doku-Regeln

Was: Plattform-Seite (DE/EN-Kontext im Überblick), verbindliche Cursor-Regeln für System-Doku und dieses Änderungsprotokoll.

Warum: Ein gemeinsames „Nachlesen“, was CockpitOS ist und was sich wann geändert hat — nicht nur Developer-API-Listen.

Links: Plattform-Überblick


Ältere Lieferungen nach und nach ergänzen, wenn beim Arbeiten eine Seite ohnehin angefasst wird — kein Big-Bang-Backfill nötig.

Nutzungsstatistik: Seitenaufrufe werden anonymisiert erfasst. Im Umami-Dashboard nach diesem Pfad filtern: /plattform/changelog