Skip to main content

Change Log (Platform)

Index of larger product and system deliveries — for review by the team, editorial, and operations. Technical details are on the linked pages.

Audiences (Affects)

TagMeaning
DashboardCockpit UI, tabs, editorial, approvals, users/org
Website & v0Center website, templates, visitors, v0 projects, public API
MCP & AgentsMCP tools, AgencyOS, automation
Chatbot & AIVisitor chatbot, AI labeling, EU transparency
SocialSocial cockpit, Engage, approvals, Outstand
Reporting & AnalyticsClient reporting, Meta, reviews, bridge insights
EmailSystem emails, form delivery
MEC ImportLegacy MEC import, media migration
Signage & QRSignage, companion, QR, center plan embed
Operations & DeployRender, cron, schema, DNS, go-live

(New entries at the top, grouped by month; format see .cursor/rules/documentation-narrative-and-ops.mdc.)


Month July 2026

2026-07-31 — MEC Small Assets: Directions (0.1.134)

Affects: Dashboard · Website & v0 · MCP & Agents

What: In the Directions (Contact Page) tab, there is a separate field Directions Text (customContent.anfahrtDescription) next to the number of parking spaces — separated from parking/public transport fields in the global parkingConfig.

Why: General directions (train, bus, highway) were not semantically separated from the parking information; editorial and v0 needed a clear storage location in the contact block.

Links: MEC Small Assets Webseiten-Tab


2026-07-31 — ILG Opening Hours: Doctors & Practices in Extended List (0.1.134)

Affects: Website & v0

What: On /oeffnungszeiten, under the block 'extended opening hours', all doctors & practices with specified consultation times appear (own section under extended businesses).

Why: Consultation times differ from center core hours and were previously missing from the overview — visitors only saw shops with longer opening hours.

Links: Website-Templates (ILG)


2026-07-31 — Contact/Rental Emails with Center Branding 0.1.133

Affects: Dashboard · Website & v0 · Email

What: Standard email template for send-contact-inquiry / send-rental-inquiry uses center name, baseColor, accentColor, and optional logo — instead of fixed red.

Why: v0 Multi-/Single-Center forms should match the center in emails without a separate template or resending in the frontend.

Links: Dashboard-E-Mails


2026-07-31 — Opening Hours: Central Serialization (0.1.132)

Affects: Dashboard · Website & v0 · MCP & Agents

What: serializeOpeningHoursForDb cleans up faulty top-level weekdays in regularHours everywhere (Dashboard, AgencyOS, Bulk, Drafts); all shop/service/location write paths aligned.

Why: The dashboard bug primarily affected locations — without central normalization, other APIs could save the same pattern again.

Links: Dispatch & Workflow


2026-07-31 — Shop Locations: Opening Hours Storage Bug (Dashboard) 0.1.131

Affects: Dashboard · Website & v0

What: PUT/POST /api/shop-locations no longer saves faulty top-level mondaysunday fields when regularHours is set. Center website evaluates regularHours before legacy top-level days. Cleanup script scripts/fix-shop-opening-hours-legacy-top-level.mjs.

Why: Dashboard session (e.g., Giesler Galerie, 29.07.) wrote correct regularHours plus additionally set all days to "closed" — website showed 'Opening hours on request'.

Links: Dispatch & Workflow


2026-07-31 — Center Geo Coordinates via AgencyOS/MCP 0.1.130

Affects: Dashboard · Website & v0 · MCP & Agents

What: latitude/longitude in GET/PUT /api/agencyos/v1/centers/{centerId} and POST …/centers; MCP cockpit_get_center, cockpit_update_center, cockpit_create_center.

Why: v0 GEO/JSON-LD and agents need center coordinates without manual dashboard — previously only DB + session API.

Links: AgencyOS-Integration


2026-07-31 — MEC Small Assets: CTA Box on Homepage 0.1.129

Affects: Dashboard · Website & v0

What: New tab Homepage: CTA Box (ctaBox.*) with title, rich text, button (link and/or email) and optional image; visibility via pageVisibility.homepage_cta_box.

Why: Small MEC centers need a configurable call-to-action on the homepage — without hardcoding in the v0 repo.

Links: MEC Small Assets Webseiten-Tab


2026-07-30 — MEC Small Assets: Image-Text Blocks & Homepage Visibility 0.1.128

Affects: Dashboard · Website & v0 · MCP & Agents

What: New tab Homepage: Image-Text Blocks (homepageSections[]), extended Pages on/off with homepage_* keys, templateContentSchema for MCP and v0 Multi-Center.

Why: v0 Multi-Site needs different homepage compositions per center — without JSON hacks, with editorial UI established like Forum/MSA.

Links: MEC Small Assets Webseiten-Tab


2026-07-29 — AI Badge on Content Detail Pages (0.1.127)

Affects: Dashboard · Website & v0 · Chatbot & AI

What: On detail pages of news, events, offers, and jobs, the dashboard shows the Visitor Preview of the AI badge (next to title and in the info) — similar to the website.

Why: Editorial should see before publication how the AI labeling appears to visitors — without opening the live page.

Links: KI-Kennzeichnung (Authorship)


2026-07-29 — Chatbot AI Transparency (EU AI Act Art. 50) 0.1.126

Affects: Dashboard · Website & v0 · Chatbot & AI

What: Visitor chatbot shows mandatory AI notice in consent and as a permanent banner in chat (EU symbol + text). Center additional text in consent no longer replaces the AI notice.

Why: Transparency in direct AI interaction from August 2, 2026 — separate from editorial content labeling.

Links: Chatbot KI-Transparenz


2026-07-29 — EU AI Labeling Symbols 0.1.125

Affects: Dashboard · Website & v0 · Chatbot & AI

What: Visitor badge and dashboard preview use the official EU symbols (SVG) along with the German texts.

Why: In line with the EU Code of Conduct for transparency of AI content — symbol plus understandable labeling.

Links: KI-Kennzeichnung (Authorship)


2026-07-29 — Manual AI Labeling (authorship) 0.1.124

Affects: Dashboard · Chatbot & AI

What: Editorial selects AI labeling for news, events, offers, and jobs in the dashboard (Optional tab). Automatic setting by AI assistant or editing is omitted; badge on the website only with explicit ai / ai_reviewed.

Why: Labeling should be conscious and editorially controlled — not silently by AI or saving.

Links: KI-Kennzeichnung (Authorship)


2026-07-28 — MEC Small Assets: Directions Tab (Contact Page) (0.1.115)

Affects: Dashboard · Website & v0

What: New tab Directions (Contact Page) (pageType=anfahrt) — directions text (rich text), heading h2, optional number of parking spaces. Contact tab and navigation: Contact & Directions. Added in 0.1.134 by dedicated field anfahrtDescription (plaintext instead of only rich text in pageDescription).

Why: v0 shows directions as a block under /kontakt; previously the cockpit field for this was missing.

Links: MEC Small Assets Webseiten-Tab


2026-07-28 — Form Emails: Center Context & ILG Subject (0.1.123)

Affects: Dashboard · Website & v0 · Email

What: Contact and rental emails now show Center, Form Type, and Website URL. ILG contact takes the visitor subject into the email subject; promotion area sends formKey for clear assignment.

Why: Center managers should be able to quickly identify which center and which form a request comes from.

Links: dashboard-emails, website-templates


2026-07-28 — ILG: Center Manager Emails for Contact & Promotion Forms (0.1.122)

Affects: Dashboard · Website & v0 · Email

What: Cockpit tab Page: Contact with form recipient; sync script sets ilg.kontakt.contactFormRecipient and ilg.promotionFlaeche.contactFormRecipient to the center manager addresses per ILG center.

Why: Contact and area inquiries should reach the responsible center manager, not generic addresses.

Links: website-templates


2026-07-28 — public-visitor-surface: accentColor for v0 (0.1.121)

Affects: Website & v0

What: data.center.accentColor added to GET …/public-visitor-surface and GET …/by-slug/{slug} — third design color alongside baseColor/secondaryColor.

Why: v0/Claude did not read orange (#F36D25) from the API; CTAs and accents reverted to template defaults.

Links: public-center-website-api-vertrag


2026-07-28 — Shop Opening Hours: Editor Parity & MCP Format (0.1.120)

Affects: Dashboard · Website & v0 · MCP & Agents

What: Shop/branch editor recognizes free text, [object Object], and v0-flat-keys without silent default times; notice banner in the form; free text remains when saving other fields. MCP tool descriptions for shop opening hours with JSON schema. Read-only audit script.

Why: MCP shops showed incorrect default times when editing and overwrote real values — final solution without data loss.

Links: dispatch-und-workflow (Abschnitt Shop-Öffnungszeiten)


2026-07-28 — Shop Opening Hours: MCP Format & Editor Overwrite (0.1.119)

Affects: Dashboard · Website & v0 · MCP & Agents

What: MCP/AgencyOS now saves openingHours objects via JSON.stringify instead of String() (no more [object Object]). Shop GET retains free text on parse error. Shop edit only sends opening hours when the opening hours block has been changed.

Why: In MCP shops, silent default times (Mon–Sat 09:00–20:00) replaced real values on first save — format incompatibility between write and read path.

Links: dispatch-und-workflow


2026-07-28 — Forum Schwanthalerhöhe: Website Tabs (0.1.118)

Affects: Dashboard · Website & v0 · MCP & Agents

What: New config-only template forum-schwanthalerhoehe with 28 dedicated website tabs: homepage following social lounge pattern (hero slider, thematic worlds, AI assistant, …), 15 subpages in templateContent.*Page, footer/social/SEO/pages on/off. MCP hints and documentation for v0/AgencyOS.

Why: Forum Schwanthalerhöhe needs SL homepage plus forum subpages — a single data source for editorial, v0, and agents without page-content mix.

Links: Forum Schwanthalerhöhe Webseiten-Tab


2026-07-28 — Forum Gummersbach: Website Tabs v2 (0.1.117)

Affects: Dashboard · Website & v0 · MCP & Agents

What: Template forum-gummersbach expanded from 17 to 23 dedicated tabs: homepage sections (news, shop logos, shop finder), all subpage content in templateContent.*Page instead of page-content, MCP hints fully transitioned to templateContent.

Why: v0 spec requires tabs = sections in page order; a data source for agents and v0, without page-content mix on subpages.

Links: Forum Gummersbach Webseiten-Tab


2026-07-28 — Base Template: House Rules Page (0.1.116)

Affects: Dashboard · Website & v0 · MCP & Agents

What: New tab Page: House Rules for base center (e.g., Palais Vest): rich text in page-content, CMS subpage layout with hero, footer link next to imprint/data protection. Switch 'Page active' without data loss.

Why: House rules should be editable in the cockpit without having to upload a new PDF with every change.

Links: Hausordnung (Base-Template), Basis-Template-Optionen


2026-07-28 — MEC Small Assets: 14 Website Tabs (0.1.115)

Affects: Dashboard · Website & v0 · MCP & Agents

What: Config-only template mec-template-small-assets with 14 dedicated dashboard tabs (hero/welcome, footer, social, SEO, pages on/off, nine subpages including imprint/data protection). MCP hints analogous to Forum Gummersbach; publicly via templatePublicContent.content.

Why: v0 repo smg-mec-small-assets-websites should replace hardcoded texts with cockpit fields — multi-center, stored per center.

Links: MEC Small Assets Webseiten-Tab


2026-07-28 — MEC Small Assets: Hero Slider & v0-only Preview (Dashboard)

Affects: Dashboard · Website & v0

What: Hero tab supplemented with backgroundImageUrl (single image fallback) and hero.slides[] (slider with image, headline, subline, CTA). Frontend channels hide cockpit preview for v0-only templates and show the staging URL. Tab Directions (Contact Page) for MSA.

Why: v0 HeroSlider is live — cockpit must deliver the same fields as the cursor spec; avoid misleading preview.cockpit-os.de links for config-only templates.

Links: MEC Small Assets Webseiten-Tab


2026-07-28 — Org Hosting: MEC Small Assets (Vercel projectId)

Affects: Dashboard · Website & v0 · Operations & Deploy

What: Organization → Tab Hosting — new field MEC Small Assets (mec-template-small-assets) in vercelProjectsByTemplate; display name also in center activation.

Why:

Links: Go-Live – MEC-Template ↔ Repo


2026-07-27 — Forum Gummersbach: v0 Website Tabs (0.1.114)

Affects: Dashboard · Website & v0 · MCP & Agents

What: New config-only template forum-gummersbach with 17 dedicated website tabs (hero, key facts, GummersBOT, footer, social, SEO, pages on/off, ten subpages with customContent). MCP hints and documentation for v0/AgencyOS.

Why: External editorial team should maintain forum content in the cockpit without MEC/RGW tabs; v0 reads public-visitor-surface and page-content.

Links: Forum Gummersbach Webseiten-Tab


2026-07-27 — Hero: multi-line title & subtitle (D + Grooß, 0.1.113)

Affects: Dashboard · Website & v0

What: Template D/Hybrid: Title and subtitle as Textarea (Enter for line breaks); font weight combo permanently visible. Grooß: Note for subtitle breaks.

Why: Single-line field blocked Enter; Grooß already had title breaks, D did not yet.


2026-07-27 — Template D/Hybrid: Subtitle background box in the editor (0.1.112)

Affects: Dashboard · Website & v0

What: In the Hero tab Subtitle (Template D / Hybrid): Checkbox Background Box and color field – like in Grooß and on the live website.

Why: Option was already present in the data but was missing in the Subtitle tab of the v3 editor.


Affects: Dashboard · Website & v0 · MEC Import

What: Tab More in the Hero Slider (PagePicker) no longer crashes when MEC-imported slides have a link as an object instead of a string.

Why: TypeError: e.trim is not a function when opening More (Link, Badge, Date are normalized during loading).

Links: MEC-Import


2026-07-27 — Template Grooss: Hero title & subtitle (0.1.110)

Affects: Dashboard · Website & v0

What: In the Hero Slider tab (Template Grooss): multi-line title via Enter, font weight (thin/bold combo or uniform), background color for subtitle – preview and live website like Template D.

Why: Editorial could not maintain second title line and subtitle box; live slides deviated from the dashboard.

Links: Template Grooss – Legacy-CSS-Checklist


2026-07-27 — Template Grooss: Hero fine-tuning (0.1.109)

Affects: Dashboard · Website & v0

What: In the Hero Slider tab (Template Grooss) there is now fine-tuning like in Template D: text width, pixel offset, and scaling for title, subtitle, and motif; preview with desktop/tablet/mobile.

Why: Centers could not adjust spacing and motif size without CSS classes – live slides like Förde Park used legacy pro-slide styles.

Links: Template Grooss – Legacy-CSS-Checkliste


2026-07-27 — MEC Import: Hero slides runtime & repeater mapping (0.1.108)

Affects: Dashboard · Website & v0 · MEC Import

What: MEC-Hero-Slides now import start/end date, MEC style (background color/CSS class), description as v3 object, and image URLs for dashboard repeater. Import preview/result: active / expired / upcoming.

Why: Re-import showed all slides without runtime; repeater in the Hero Slider tab was content-wise incomplete.

Links: MEC-Import – Merge beim Re-Import


2026-07-27 — MEC Import: Hero slides on re-import (0.1.107)

Affects: Dashboard · MEC Import

What: On re-import, MEC-Hero-Slides (/slider) overwrite the locally stored slides again; dashboard settings like transition interval remain intact. Import result shows the actual number of stored slides.

Why: Re-import incorrectly retained old dashboard slides (e.g., Oro Schwabach: 1 instead of 17 from MEC).

Links: MEC-Import – Merge beim Re-Import


2026-07-27 — MEC Classic: Website tab completed

Affects: Dashboard · Website & v0

What: Missing Page: ... tab (Shopping World/Rental Grooß/Green, Shops + Shopping World Template A), API fix geschaefte-a-z, hotspot default off, Template C Coupon/Impressions with Hero/SEO (Bunny Upload).

Why:

Links: MEC Classic – Webseiten-Reiter


2026-07-27 — Website contacts: v0/MCP/API parity

Affects: Dashboard · Website & v0 · MCP & Agents

What: Center website contacts (tab Contacts) are readable and writable via AgencyOS v1, public GET route (contacts/public), MCP tools, and public-visitor-surface.apiHints.contactsPublicGet.

Why: v0/Claude could not connect center managers and imprint contacts before — only the live website read them server-side.

Links: AgencyOS — Website-Ansprechpartner


2026-07-27 — MEC Import: Complete media migration to Bunny

Affects: Dashboard · Website & v0 · MEC Import

What: The MEC import now loads all center-specific remote assets from mec.mall-cockpit.de to Bunny (images, SVG, PDF, icons) — including center plan layers, center newspaper PDFs, job PDFs, directions icons, shop gallery (images[]), legal text HTML, and hero slides without MEC URL fallback. Mode Fetch missing data also migrates already imported MEC CDN URLs again.

Why: After shutting down the legacy MEC host, no productive center data should reference external MEC URLs anymore.

Links: MEC-Import – Medien


2026-07-27 — Org tab 'Branding': Block themes removed, Bunny upload

Affects: Dashboard · Website & v0

What: Tab Branding under Organizations replaces the historical theme tab: colors (primary/secondary/accent), logo, favicon, and house font as defaults for centers without their own values; upload via Bunny like in the center form. Block theme selection and 'Create theme' removed (legacy, not for MEC/Center websites). URL ?tab=branding (?tab=theme redirects).

Why:

Links: Organisations-Branding


Affects: Dashboard

What: {slug}.dashboard.cockpit-os.de — branded login, dynamic pages /privacy, /terms, /support with SMG operator default and org-specific support/SLA overrides (dashboardLegalConfig). Tab Legal & Support under Organizations.

Why:

Links: Benutzer und Organisation


2026-07-27 — Documentation: MEC DNS on Recast (Docker/GHCR)

Affects: Dashboard · Website & v0 · Operations & Deploy

What: Go-live documentation supplemented with section MEC on Recast — one repo per template, DNS A-Record on Recast-IP, by-domain, distinction from Vercel go-live/UD automation.

Why:

Links: Go-Live


2026-07-27 — by-slug: websiteTemplate in the response

Affects: Website & v0

What: GET /api/centers/by-slug/{slug} now returns websiteTemplate (e.g., mec-template-a) in the same flat object as id and slug — v0 does not require an extra hop over public-visitor-surface for template guards.

Why:

Links: Public API Vertrag


2026-07-27 — MCP Bulk Hosting: Vercel + Multi-Center per Template

Affects: Dashboard · Website & v0 · MCP & Agents · Operations & Deploy

What: cockpit_bulk_center_hosting — all centers of an org with the same websiteTemplate set to e.g., Vercel + shared and store prj_… in the org map. Individual center: cockpit_update_center_hosting.

Why:

Links: AgencyOS-Integration, MCP-Tool-Referenz


2026-07-27 — MCP: Org Hosting, by-domain, pageVisibility

Affects: Dashboard · Website & v0 · MCP & Agents · Operations & Deploy

What: New MCP tool cockpit_organization_hosting; updated descriptions for go-live/shared Vercel; by-domain delivers websiteTemplate; AgencyOS GET/PATCH …/organizations/{slugOrId}/hosting.

Why:

Links: MCP-Tool-Referenz, Go-Live


2026-07-27 — by-domain: websiteTemplate in the response

Affects: Website & v0

What: GET /api/centers/by-domain now returns center.websiteTemplate (e.g., mec-template-green) — v0/multi-center can set template guards without a second by-slug request.

Why:

Links: Public API Vertrag


2026-07-27 — Org Hosting: Vercel Projects per Website Template

Affects: Dashboard · Website & v0 · Operations & Deploy

What: New tab Hosting on the organization detail page (/dashboard/organizations/{slug}?tab=hosting). IT maintains vercelProjectsByTemplate (e.g., mec-template-greenprj_…). Centers in shared mode automatically resolve the projectId from the websiteTemplate — no manual entry in each center.

Why: MEC multi-center (~60 centers): one Vercel project per template family, not per center.

Links: Go-Live DNS/Vercel/UD


2026-07-26 — Embed Center Plan: 3D Click postMessage for v0 (fixed)

Affects: Dashboard · Website & v0 · Signage & QR

What: Clicking on a 3D surface in the iframe with detailMode=parent now sends the same postMessage as sidebar/list: cockpit:centerplan:open-detail with poi payload.

Why: v0 did not receive an event on 3D clicks — SVG IDs (shop-56) were not resolved to MapLocation UUIDs; orbit drag could swallow taps.

Links: Öffentliche Center-Website API — Centerplan-Embed, v0 Teil F


2026-07-26 — Embed Center Plan: v0 Theme URL Parameters

Affects: Dashboard · Website & v0 · Signage & QR

What: /embed/centerplan accepts branding parameters for controls in the iframe: accent, accentFg, chromeBg, chromeFg, chromeBorder, chromeMuted, chromeRadius, hoverColor/hoverColorSvg, hoverColor3d (only safe CSS colors).

Why: v0 cannot style iframe content via external CSS — colors for floor switcher, 2D/3D toggle, and plan hover must be controllable via the embed URL.

Links: Öffentliche Center-Website API — Centerplan-Embed, v0 Teil F


2026-07-24 — Content: Bulk Status and Edit History Names (0.1.92)

Affects: Dashboard

What: Lists for news, events, offers, and jobs: Bulk Status (e.g., publish/archive) and in the edit history names instead of just user IDs.

Why: Editorial team edits many contents in parallel — status changes and history should be traceable without detours.

Links: Content-Management


2026-07-23 — MCP: Category per Branch (categoryId)

Affects: Dashboard · MCP & Agents

What: cockpit_update_shop_location and AgencyOS PUT …/shop-locations/{id} now accept categoryId — overwrite category only for one branch, chain remains unchanged.

Why: Editorial team (e.g., Forum Wolfenbüttel) should be able to locally clean up duplicate category names without affecting other centers of the same chain.

Links: AgencyOS-Integration — Filialen, MCP-Referenz cockpit_update_shop_location


2026-07-23 — Render: Conditional DB Push & WP Plugin Build

Affects: Dashboard · Operations & Deploy

What: scripts/render-dashboard-build-steps.sh — DB push and WordPress ZIP only on relevant Git changes in the render buildCommand.

Why: Typical dashboard deploys save ~1–4 minutes when only app code has changed.

Links: Build-Optimierung · Abschnitt Checkliste: Schema live bringen

Testing: Push without schema/plugin change → Render log shows 'skipped'; with schema.prisma change → DB push runs.


2026-07-23 — Runbook: Schema live without data loss

Affects: Operations & Deploy

What: Checklist in docs/BUILD-OPTIMIZATION.md — SAFE.sql → schema.prisma → deploy log → smoke.

Why: Clear order for live DB; no accidental data loss during schema deploys.

Links: Checkliste Schema live bringen


2026-07-23 — v0 Centerplan: Hover Instruction (SVG mousemove)

Affects: Website & v0

What: Part F + API contract + v0Integration.centerplan.clickPipeline: Hover via svg mousemove/mouseleave, not mouseover on child paths. Reference InteractiveFloorPlan adjusted.

Why: Hover got stuck — mouseout incorrectly fires between SVG child elements.

Links: v0 Teil F

Testing: v0 Plan: Hover over shop, move mouse away → Highlight disappears; hovering over another shop works.


2026-07-23 — Render Build: OOM fixed during Static Generation

Affects: Dashboard · Operations & Deploy

What: Next.js memory optimizations (webpackBuildWorker, webpackMemoryOptimizations, SSG a worker); Render build with NODE_OPTIONS=6144; Bunny debug logs only with BUNNY_DEBUG=1.

Why: Deploy failed with 'Ran out of memory (used over 8GB)' during Generating static pages.

Links: Build-Optimierung

Testing: Render deploy mallos-dashboard after push — let build run.


2026-07-23 — MCP: Offices & Practices — full write parity

Affects: Dashboard · MCP & Agents

What: AgencyOS POST/PUT /api/agencyos/v1/offices and MCP cockpit_create_office / cockpit_update_office now support all dashboard fields (logo, images, qualifications, parking, publication times, …). New MCP tool cockpit_get_office.

Why: Agents could previously only maintain a part of the office fields — gap to the dashboard model.

Links: AgencyOS Büros & Praxen · MCP-Tool-Referenz

Testing: MCP cockpit_create_office with logo, qualifications, featured → check with cockpit_get_office.


2026-07-22 — MCP: External Contacts (AgencyOS + Team Tab)

Affects: Dashboard · MCP & Agents

What: CRUD for external contacts via AgencyOS v1 and four MCP tools; Dashboard Team Tab saves persistently. CenterContact.metadata for type/emergency fields.

Why: External contacts were only locally in the state in the UI — not agent-capable.

Links: AgencyOS externe Kontakte

Testing: Center → Team → Create contact → cockpit_center_external_contacts.


2026-07-22 — MCP: KAM read and write

Affects: Dashboard · MCP & Agents

What: AgencyOS PUT for center and organization KAMs; MCP tools cockpit_set_center_key_account_managers, cockpit_organization_key_account_managers, cockpit_set_organization_key_account_managers.

Why: KAM was only readable via MCP — agents could not maintain assignments.

Links: AgencyOS KAM

Testing: MCP cockpit_set_center_key_account_managers with centerId + userIds → read again with cockpit_center_key_account_managers.


2026-07-22 — v0 Chatbot: Offer Cards via contentBlocks

Affects: Website & v0 · Chatbot & AI

What: POST /api/ai/visitor-chatbot returns contentBlocks with kind:"offers" for offer questions (even if the AI only lists text). v0 documentation: Chatbot wiring + fallback via currentBundleGet.

Why: Questions like 'Are there any current offers?' only showed Markdown bullets without cards.

Links: v0 Chatbot-Verdrahtung · API-Vertrag Chatbot

Testing: v0 chat → Offer question → Carousel under the answer; reference: VisitorStructuredChatBlocks + structured-chat-offers.ts.


2026-07-22 — Center: WhatsApp in Branding & Social Media

Affects: Dashboard

What: Field WhatsApp added in Center Edit (Branding), Website Basics, and Overview. Optional, default empty; Saving merges existing socialMedia JSON.

Why: Editorial maintains WhatsApp contact like other social links; a text field suffices (number, wa.me or channel URL).

Testing: Edit center → Branding → Leave WhatsApp empty or enter number/URL → Check overview.


Affects: Operations & Deploy

What: Tab Overview of a center shows social media links (Facebook, Instagram, …) again under Contact Information. API delivers socialMedia with; display reads the JSON field instead of non-existent top-level properties.

Why: Links were maintained in edit but not displayed in the overview.

Testing: Open center → Overview → Contact Information → Social media rows with URLs or 'Not specified'.


2026-07-22 — Content Lists: Unified Filters (Shops, Events, Offers, Services, Jobs)

Affects: Dashboard

What: In the content overviews under /dashboard/content/*, filters are unified: Center, Search, Status, Category (or type for shops/jobs). Shops previously had only Center + Search; offers used hardcoded categories.

Why: Editorial needs the same filter logic in all lists — without duplicate code on each page.

Links: Dashboard → Inhalte → Shops / Events / Angebote / Services / Jobs

Testing: Shops → Filter by Status/Category/Type; Events/Offers/Services/Jobs → Status + Category; Check counter 'X of Y (filtered)'.


2026-07-22 — v0 Instructions: Single Shop vs. Chain

Affects: Dashboard · Website & v0 · MCP & Agents

What: Part D (Instruction + Documentation) and MCP notes clarify: local tenants → single shop via content_push without chain fields; real brands → create_chain + create_shop_location. Incorrect reference cockpit_create_shop removed.

Why: AI assistants incorrectly created new shops as 'chain with 1 branch', although editorial meant local shops.

Links: v0 Instructions Teil D · packages/mcp-cockpit-os/V0_CUSTOM_INSTRUCTIONS.md


2026-07-20 — cockpitOS Branding: Navy instead of Blue, Favicon more readable

Affects: Dashboard

What: Dashboard primary from signal blue to deep navy (#2a4060); Tab favicon C, Apple icon cOS; cOS badge in sidebar and header; Cockpit emails on navy links/buttons.

Why: cOS in 32px unreadable; agency red (#cd1619) as UI primary would look like an error. Center themes unchanged.

Links: mall-os-ui — Theme


2026-07-20 — Scheduling in Editorial Flow + Loyalty Signage live

Affects: Dashboard · Reporting & Analytics · Signage & QR

What: /dashboard/scheduling in sidebar (editorial flow) with submenu video scheduling; Hub tile on /dashboard/editorial flow. Loyalty page loads signage interactions from /api/analytics/signage (Live/Simulator depending on center).

Why: Scheduling was only accessible via direct URL; Loyalty KPIs partly from real signage data instead of pure demo.

Links: Navigation & Module


2026-07-20 — Jobs Form: 3 Tabs (New + Edit)

Affects: Dashboard

What: Job postings (New + Edit) use the same tab pattern as News/Events/Offers — ContentFormStepsHint, Tabs Content / Publish / Optional.

Why: Consistent editorial UX in the Content Hub; less scrolling, clear separation of mandatory vs. optional.

Links: mall-os-ui — Hub & Formulare


2026-07-20 — Loyalty under Marketing Cockpit

Affects: Dashboard

What: /dashboard/loyalty in Sidebar (Marketing → Bonus & Loyalty), Hub tile on Marketing Overview, Navigation documentation.

Why: Loyalty preview accessible without direct URL; remains demo until live connection.

Links: Navigation & Module


2026-07-20 — Content Forms: Unified 3-Step Hint

Affects: Dashboard

What: ContentFormStepsHint for News, Events, and Offers (New + Edit). Hub cards: same button/KPI height in all rows.

Why: Editorial sees the same tab pattern everywhere; Hub grids no longer jump with short descriptions.

Links: mall-os-ui — Hub & Formulare


2026-07-20 — Hub Phase 3: Community, Analytics, News Edit, Impeccable

Affects: Dashboard · Social · Reporting & Analytics

What: Community and Analytics overview with HubNavTile; hint banner in News Edit form; Impeccable hits cleaned up (Bounce, Purple Placeholder, Inter-examples). Social documentation: StatTile/Hub API updated.

Why: Consistent Hub navigation; editorial sees the same 3-step pattern in New and Edit; UI quality check without open hits.

Links: Social Media Freigabe, mall-os-ui — Social Hub


2026-07-20 — Documentation Prose Check + v0 Quality Section Streamlined

Affects: Dashboard · Website & v0 · Operations & Deploy

What: New script check-docs-prose.mjs (meta-phrases in the editorial manual); integrated into pnpm docs:check. Section 'Quality before Go-Live' in v0 + Cockpit without reassuring info box.

Why: Impeccable checks UI code, not documentation tone — analogous check for typical AI documentation patterns (e.g., 'you don't need to know', background phrases).

Links: Doku-Workflow


2026-07-20 — UI Batch 11: CM Apps, Signage, Sales & Reports

Affects: Reporting & Analytics · Signage & QR

What: KPI areas on CM Apps, Digital Signage (Overview + Analytics), Companion Overview, Emergency Override, Center Manager Sales and Reports on StatTile.

Why: Signage/CM modules and report overviews with consistent KPI layout (~55% + canonical).

Links: mall-os-ui — UI-Audit


2026-07-20 — UI Batch 10: Center Manager, Digital Experience, Spinner

Affects: Reporting & Analytics · Signage & QR

What: KPI areas on Center Manager (Drafts, Notifications, Issues, Capture), Digital Experience (Overview, Signage Analytics, Hardware) on StatTile; Notification and Issue KPIs from live data instead of mock values; Loader2Spinner on Issue Detail and WordPress Website Detail.

Why: Center Manager and Digital Experience modules unified; KPI numbers reflect real API data.

Links: mall-os-ui — UI-Audit


2026-07-20 — UI Batch 9: Staff, Issues, QR, Finance KPIs, CM Spinner

Affects: Dashboard

What: Staff (16 KPI grids), Issues, QR Detail, Finance Analysis KPI tab on StatTile; Center Manager Capture, AI Assistant, Drafts on Spinner.

Why: Canonical adoption ~45% +; Staff and Operations modules unified.

Links: mall-os-ui — UI-Audit


2026-07-20 — UI Batch 8: Planner, Workflow, Parking, Integration

Affects: Dashboard · Website & v0

What: KPI areas on Content Planner, Workflow, Parking, WP Template Detail and Integration Suites on StatTile; Spinner on Integration Suites and Center Manager Apps.

Why: Further editorial, operational, and integration pages with consistent KPI layout (~40% + canonical).

Links: mall-os-ui — UI-Audit


2026-07-20 — UI Batch 7: Chatbot, Community, Facility, Content Center

Affects: Dashboard · Chatbot & AI · Signage & QR

What: KPI areas on Chatbot, Community Overview, Facility Maintenance, Content Center Detail and Digital Signage Touchscreens on StatTile; Spinner on Touchscreens loading state.

Why: Core modules for editorial, community, and signage with consistent KPI layout.

Links: mall-os-ui — UI-Audit


2026-07-20 — UI Batch 6: Reviews, RSS, Property, WordPress KPIs

Affects: Reporting & Analytics

What: Analytics Reviews, RSS Feeds, Building Automation and WordPress Overview on StatTile; Spinner on Privacy, Scheduling/Videos, Property Maintenance and User Edit.

Why: Further settings/analytics/property modules with canonical KPIs and loading indicators.

Links: mall-os-ui — UI-Audit


2026-07-20 — UI Batch 5: Companion, Settings, Community, WordPress

Affects: Dashboard · Website & v0 · Signage & QR

What: KPI areas on Companion App, User/API Settings, Community Management, WordPress Templates and Marketing Campaigns on StatTile; Loader2Spinner on Companion, WordPress Overview and Account.

Why: Further sidebar modules with consistent KPI layout and loading indicators.

Links: mall-os-ui — UI-Audit


2026-07-20 — UI Batch 4: Feedback, Property, Energy, AI-Settings

Affects: Dashboard

What: KPI areas for Feedback, Property (areas/tenants), Energy, and AI management migrated to StatTile.

Why: More sidebar pages with a uniform KPI layout and higher canonical adoption.

Links: mall-os-ui — UI-Audit


2026-07-20 — UI Batch 3: Cockpits, ESG, Security, Analytics-Streams

Affects: Dashboard · Reporting & Analytics · MEC Import

What: HQ, Executive, Personnel, and Cockpit overview on StatTile; ESG and Property/Security KPIs; Analytics data stream components and Dispatch detail on Spinner; violet/purple hardcodes in Dispatch, Feedback, MEC Import, and Google Business Connect replaced with design tokens.

Why: Further canonical adoption on cockpit and security pages; consistent loading indicators and color tokens.

Links: mall-os-ui — UI-Audit


2026-07-20 — UI Batch 2: Finance, Data Cockpit, Social-Spinner

Affects: Dashboard

What: Finance overviews (main page, analysis, budget, sales, operating costs) and Data Business Cockpit on StatTile; entire social module switched from Loader2 to Spinner.

Why: Higher canonical usage of KPI components; uniform loading indicators.

Links: mall-os-ui — UI-Audit


2026-07-20 — UI Audit: Impeccable + StatTile Migration (Batch 1)

Affects: Dashboard · Chatbot & AI

What: Audit script audit-dashboard-ui-components.mjs; KPI areas Marketing, Property, Center Manager, Chatbot on StatTile; legacy page-container re-exported @mall-os/ui.

Why: Uniform KPI design and measurable adoption of canonical components.

Links: mall-os-ui — UI-Audit


2026-07-20 — Dashboard KPI Cards & Geist Font

Affects: Dashboard · Operations & Deploy

What: StatTile and new MetricCard in @mall-os/ui — modern layout (label, value, status line, accent bar). Geist is active dashboard-wide as font-sans.

Why: Uniform, calmer KPI design instead of colorful surface tiles; typography aligned with Vercel/Geist standard.

Links: mall-os-ui — StatTile


2026-07-20 — Dashboard Homepage: Impeccable Layout

Affects: Dashboard

What: /dashboard restructured: PageHeader, quick start at the top, KPI tiles (StatTile) for content and social, clearer sections without uppercase eyebrows, role-dependent subtitles. Agency role sees only content-relevant areas.

Why: Less visual noise, faster access to daily tasks, consistent with the Impeccable/mall-os-ui pattern of other dashboard pages.

Links: Navigation → Startseite


2026-07-20 — v0 Instructions: Impeccable Anti-Slop Check

Affects: Dashboard · Website & v0 · Operations & Deploy

What: Instruction Part C and Go-Live Part J supplemented with npx impeccable detect (impeccable.style); own documentation section + chat prompt. V0_CUSTOM_INSTRUCTIONS.md and developer guide reference this.

Why: Deterministic slop/quality check complements the manual design DNA list — fits with v0 workflow and the dashboard check-dashboard-ui-slop.

Links: v0 Instructions (Teil C/J), mall-os-ui — Slop-Check


2026-07-20 — Role 'Agency (Content)' for External Editing

Affects: Dashboard · Website & v0

What: New user role AGENCY_CONTENT_EDITOR — content of assigned centers (Mall + Social), without editorial flow, channel linking, and technical website configuration. Navigation, middleware, and center detail tabs are restricted.

Why: External agencies need editorial access but should not see or change infrastructure (frontend channels, center website, dispatch/workflow).

Links: Benutzer und Organisation


2026-07-17 — Kiosk Floor via API (Touchscreens + floorNumber)

Affects: Dashboard · Website & v0 · MCP & Agents · Signage & QR

What: GET …/signage-config and GET …/public-visitor-surface provide real TouchscreenLocation data including floorNumber. GET /api/touchscreens supplemented. MCP: data.v0Integration.kiosk, Topic kiosk in cockpit_public_integration_docs.

Why: v0 kiosks should read the starting floor from the cockpit — without NEXT_PUBLIC_KIOSK_FLOOR; per kiosk only touchscreenId.

Links: API-Vertrag Signage, v0 Teil H


2026-07-16 — Embed Background: embedBg + chromeGhost for v0

Affects: Dashboard · Website & v0 · Signage & QR

What: /embed/centerplan accepts embedBg=transparent|#hex|rgb(), transparent=1 (alias) and chromeGhost=1 (UI without card background). data.v0Integration.centerplan.embedOption and API contract updated.

Why: v0 should seamlessly embed the plan into its own page — without a white/gray cockpit frame around the map and controls.

Links: API Centerplan v0, v0 Teil F


2026-07-16 — Chatbot Wiring for v0 (Response → Centerplan)

Affects: Dashboard · Website & v0 · MCP & Agents · Chatbot & AI

What: data.v0Integration.chatbot supplemented with responseFields, centerplanWiring, and optionalContext. Part C + chat prompt 'Chatbot Wiring', MCP cockpit_public_integration_docs (actions/suggestedActions), API contract section #visitor-chatbot-v0-wiring.

Why: The visitor chatbot API delivers items, actions, and suggestedActions — v0 needed a clear recipe for how chips are connected with center plan embed or shop routes.

Links: v0 Teil C, API Chatbot-Verdrahtung


2026-07-16 — Embed /embed/centerplan for v0 (own modals)

Affects: Dashboard · Website & v0 · MCP & Agents · Signage & QR

What: New center website route /embed/centerplan with detailMode=parent (postMessage → v0 own modal) or detailMode=cockpit (cockpit modal + shopDetailPath templates). data.v0Integration.centerplan.embedOption and MCP hints updated.

Why: v0 should be able to embed the cockpit plan without porting @mall-os/wayfinding — and still control its own shop detail pages/modals.

Links: v0 Teil F, API Centerplan v0


2026-07-16 — v0 Centerplan: Clicks + Custom Shop Navigation

Affects: Dashboard · Website & v0 · MCP & Agents

What: Part F (v0 Instructions) supplemented with 2D click pipeline and v0 custom detail navigation (/shops/{slug|id} — not Cockpit website). data.v0Integration.centerplan in public-visitor-surface; MCP cockpit_public_integration_docs expanded; chat prompt for plan reconstruction in the v0 documentation.

Why: @mall-os/wayfinding is private — v0 needs to port click logic; shop modals should lead to the own v0 detail pages, not to the Cockpit center website.

Links: v0 Teil F + Chat-Prompt, API Centerplan v0


2026-07-16 — QR Codes: Stable Entry URL + v0 Resolver

Affects: Dashboard · Website & v0 · MCP & Agents · Signage & QR · Operations & Deploy

What: Location QR codes use hosting-aware entry URLs (/companion/qr/{id} or /qr/{id}) instead of hardcoded *.signage.cockpit-os.de. New fields targetType, redirectMode, targetPath, externalUrl on QRCodeLocation; public resolve API; target type 'External URL' in QR management; POST /api/public/qr-codes/{id}/scan (Track+Resolve); QR_API_HINTS in public-visitor-surface, signage-config, frontend channels.

Why: v0 Companion and Cockpit Signage should use the same printed QRs; targets (internal, website, partner link) are resolved and tracked from the DB upon scanning — without redirect switch in the v0 project.

Links: API-Vertrag Standort-QR, MCP cockpit_qr_codes, v0 Hosting & Statistik, v0 Instructions Teil I, db_structure.md (QRCodeLocation)


2026-07-12 — Vector-Sync Cron: Batch + Repair

Affects: Operations & Deploy

What: Nightly Pinecone sync runs in batches (8 centers/request), checks success in JSON, repairs unhealthy centers individually. API: offset/batchSize and centerId on /api/cron/vector-sync.

Why: Full sync of all 109 centers ran into request timeout (~5 min) — 14 centers remained permanently below 85% coverage.

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


2026-07-10 — AI Recommendations: Draft, Edit, and Approval

Affects: Dashboard · Reporting & Analytics

What: Block Online ↔ Center Visit in customer reporting is editable in the Cockpit (introduction, texts, measures). In the customer link and PDF, it appears only after approval; existing AI data was adopted as approved once.

Why: AI suggestions should be reviewed and formulated by the editorial team before the center management sees them.

Links: Kunden-Reporting — KI-Auswertung


2026-07-10 — Organization Detail Page Instead of Edit Modal

Affects: Dashboard

What: List under Organizations & Clients links to /dashboard/organizations/{slug} with tabs Overview, Master Data, KAM, and Theme (including extended branding: colors, logo, theme templates). New organizations can still be added via modal on the list.

Why: More fields (KAM, Theme, Center) no longer fit into a modal; branding dialog was only on the list and is now fully on the detail page.

Links: Navigation & Module


Affects: Dashboard · Chatbot & AI · Reporting & Analytics

What: Public customer reporting link and PDF show Online ↔ Center Visit in a customer-friendly manner — without 'formulation for conversation', copy buttons, and internal AI badges. Editorial view with conversation formulation remains in the Cockpit.

Why: Center management saw the same internal agency interface as the editorial team.

Links: Kunden-Reporting


2026-07-10 — Organization KAM with Center Inheritance

Affects: Dashboard · Website & v0 · MCP & Agents

What: KAM assignment at the organization level; centers inherit by default, deviation per center possible. APIs and UI (Organization Dashboard + Center Team Tab).

Why: ILG/HBB with many centers — maintain once instead of 30× the same people.

Links: AgencyOS-Integration


2026-07-10 — Organization Accountability API + Teams User Sync

Affects: Dashboard · Website & v0 · MCP & Agents

What: New API organizations/{slug}/accountability for KAM responsibilities (ILG/HBB); AgencyOS users des@, jh@, sl@ aligned with Cockpit emails.

Why: Teams bot 'Who is responsible for ILG?' needs a data source; missing AgencyOS users blocked social DMs.

Links: AgencyOS-Integration


2026-07-10 — Teams Bot Social: Outcome, Digest, In-Chat Approval

Affects: Dashboard · MCP & Agents · Social

What: Cockpit reports approval results to AgencyOS (social-review-outcome), provides digest API for open Cockpit approvals and Agency proxy POST …/social/drafts/{id}/review for approval from Teams.

Why: Requesters should receive feedback in the Teams bot; digest and card actions close the gap to native AgencyOS posts.

Links: AgencyOS-Integration


2026-07-10 — Content Quality Watch API (AgencyOS Teams Bot)

Affects: Website & v0 · MCP & Agents · Reporting & Analytics

What: New AgencyOS-v1 APIs content-quality-watch and kam-quality-watch-index — structured quality hints per center (missing logos, cover images, opening hours, inactivity, content gaps) for proactive Teams DMs.

Why: The AgencyOS bot should reach out to KAMs as an 'extended arm' — separate from daily operational briefing (Social/Reviews/Reporting).

Links: AgencyOS-Integration


2026-07-10 — Customer Reporting: Term Center Management

Affects: Dashboard · Reporting & Analytics

What: User-visible texts changed from 'Client' to Center Management (Customer Reporting, Analytics AI Insights, Email Dispatch, Navigation, Documentation).

Why: In the team, we talk about the conversation with the center management — not with the client.

Links: Kunden-Reporting


2026-07-10 — Social Approval: Floating Responsibilities

Affects: Dashboard · Social

What: In the approval dialog, all active Cockpit users are selectable (search, role badge, sorting Center → Org → Team). Approval/rejection per post through selected reviewers; My Approvals and Self-Approve for every logged-in user with center access.

Why: Small team with changing tasks — responsibility should be flexible per post, not tied to fixed roles.

Links: Social Media Freigabe


2026-07-09 — MCP Tool Reference (Docusaurus)

Affects: Dashboard · MCP & Agents · Reporting & Analytics

What: New page MCP Tool Reference — all 109 tools with parameters and example prompts; generator pnpm mcp:export-tools.

Why: Teams and agents need a searchable reference instead of just JSON export and scattered hints.

Links: Claude & Cockpit, Analytics-Integration


2026-07-09 — MCP: Customer Reporting & KAM Briefing

Affects: Dashboard · MCP & Agents · Reporting & Analytics · Operations & Deploy

What: New MCP tools cockpit_analytics_client_report, cockpit_analytics_client_report_bridge_insights, cockpit_operational_briefing, cockpit_kam_briefing_index, cockpit_center_key_account_managers.

Why: Agents and AgencyOS automation should use the same reporting and KAM data as the dashboard and cron.

Links: Analytics-Integration, AgencyOS-Integration


2026-07-09 — Center Detail: Team Tab Visible, AI Separated

Affects: Dashboard

What: Tab 'AI Profile' split into Team & Contacts (second tab, KAM + Team + Contacts) and AI Assistant (context preview). Old URL ?tab=profile redirects to Team.

Why: KAM and Team were hidden in the AI tab and hard to find.

Links: Benutzer & Organisation


2026-07-09 — User Assignments: Organization, KAM, Representation

Affects: Dashboard · MCP & Agents

What: Multiple organization assignments per user, KAM responsibilities in the user form, KAM role Primary/Representation; Auth considers all org assignments.

Why: An employee can be responsible for multiple centers/organizations; KAM and representation should be centrally manageable at the user and center level.

Links: Benutzer & Organisation, AgencyOS KAM


2026-07-08 — KAM Assignment in Cockpit (Multiple People per Center)

Affects: Dashboard · MCP & Agents

What: New data model center_key_account_managers, dashboard management under Center Profile → Team, AgencyOS APIs key-account-managers and kam-briefing-index; operational-briefing includes kams[].

Why: KAM was previously only in AgencyOS (one user per center); briefings and representations should be centrally managed in the Cockpit.

Links: AgencyOS-Integration → KAM & Briefing-Index


2026-07-08 — Customer Reporting: Strict Filtering of Meta-Ads per Center

Affects: Dashboard · Social · Reporting & Analytics

What: Campaign filter (e.g., BPJ) is always applied in reporting — also on DB snapshots and reporting imports; without filter, no foreign campaigns anymore.

Why: Portfolio advertising account in Zernio contains all centers; Burgau Park Jena saw ads from other locations.

Links: Client-Reporting


2026-07-08 — Social Engage: Faster Loading (Package 1)

Affects: Dashboard · Social · Reporting & Analytics

What: Engage first loads only the post list; comments and metrics come when clicking on a post. Zernio sync only via 'Refresh', channels in parallel, no analytics calls in the list.

Why: A page view triggered hundreds of sequential Outstand/Zernio requests — loading times of 30–60+ seconds.

Links: Social Cockpit (Engage unter Social)


2026-07-08 — My Notifications (Push for All Roles)

Affects: Dashboard

What: New page /dashboard/account/notifications with desktop push and email digest — accessible via avatar menu, bell dropdown, and My Account.

Why: Push opt-in was only findable through the admin settings hub; approval checkers without hub rights could not activate desktop notifications.

Links: Desktop-Push, Benutzer & Organisation


2026-07-08 — AgencyOS Operational Briefing API (KAM Daily)

Affects: Dashboard · MCP & Agents · Reporting & Analytics · Operations & Deploy

What: New AgencyOS-v1 API operational-briefing — open social postings per center, Google reviews, reporting flags, and website workflow drafts including hints[] for Teams messages.

Why: KAM Daily update in the Teams bot needs Cockpit data; AgencyOS cron consumes this API.

Links: AgencyOS-Integration → Operational Briefing


2026-07-08 — AgencyOS Teams Hook for Social Approvals (Phase 2 Prepared)

Affects: Dashboard · MCP & Agents

What: Cockpit optionally sends an HTTP hook to AgencyOS on Request Approval (agencyos-teams-notify.ts). Dashboard bell, push, and email remain unchanged; Teams DMs come via the AgencyOS bot.

Why: Notification hub is in AgencyOS; Cockpit only reports events — no own Teams bot in the monorepo.

Links: AgencyOS-Integration → Teams, Social-Freigabe


2026-07-08 — Desktop Notifications (Web Push)

Affects: Dashboard

What: Real browser push for bell events (approvals, comments, …) — service worker, VAPID, opt-in under settings → notifications.

Why: Checkers should see approval requests immediately on the desktop without polling email or the bell.

Links: Desktop-Push, Social-Freigabe


Affects: Dashboard · Social · Reporting & Analytics

What: Super admin can trigger Zernio linking (Ads + Social Inbox) in the UI — in Community & Responses (warning banner) and Customer Reporting → Data Sources.

Why: Auto-link was only accessible via API/CLI; editorial/IT needed a clear place in the dashboard.

Links: Social unter Cockpit, Kunden-Reporting


Affects: Dashboard · Social

What: Zernio now loads external posts via sync + live API (/accounts/{id}/posts); auto-link also matches center names (e.g., Burgau Park Jena). Engage warns when inbox is not linked.

Why: Only outstanding posts are visible when zernioAccountId is missing — Karma/Facebook native posts were not included.

Links: Social unter Cockpit


2026-07-08 — Social sharing: targeted reviewer selection (Fanpage Karma parity)

Affects: Dashboard

What: Dialog Request Approval with reviewer list, rule one person / all must, optional guest link, Self-approve. Notification only to selected; board shows 'Waiting for ...' and filter My Approvals.

Why: Editorial workflow from Fanpage Karma — format, spelling, and center to be checked by specific people before publishing.

Links: Social-Media-Freigabe


2026-07-08 — Social Engage: channel inbox (Fanpage Karma replacement)

Affects: Dashboard · Social

What: Community & replies now loads all posts from linked channels — cockpit posts (badge 'Cockpit') and external/native posts (badge 'Channel', e.g., Facebook directly, Karma). Filter cockpit/channel, KPI tiles separated.

Why: Replacing Fanpage Karma — editorial team must also see and comment on foreign posts without confusing them with cockpit posts.

Links: Social unter Cockpit, Social-Media-Freigabe


2026-07-08 — Social: target image under cockpit roof + Zernio Engage (pilot)

Affects: Dashboard · Social

What: Provider layer (social-provider), optional zernioAccountId on social channels, Zernio inbox client (read, reply, like/hide), capability-based Engage UI, auto-link also connects organic Zernio channels. Comments: outstanding primarily, Zernio inbox as a second source (dedupe). New documentation Social under Cockpit.

Why: An editorial interface without vendor names; Zernio for moderation/ads, Outstand for posting and replies — finally replacing Fanpage Karma.

Links: Social unter Cockpit, Social-Media-Freigabe


Affects: Dashboard · Website & v0 · Social · Reporting & Analytics

What: Ad account mapping supports campaignFilter (campaign abbreviation/name) for shared meta accounts. Auto-link pulls Zernio campaigns and automatically links all cockpit centers (API + script).

Why: ILG and other center organizations use a portfolio ad account — without a filter, the total spend appears in every center report.

Links: Kunden-Reporting


2026-07-08 — Customer reporting: AI online ↔ center visit

Affects: Dashboard · Website & v0 · Reporting & Analytics

What: New block Online ↔ Center Visit with AI recommendations and concrete actions — how website visitors become mall visitors (social, ads, events, footfall).

Why: Center management discussions need more than KPIs: a clear connection between online marketing and on-site visitors.

Links: Kunden-Reporting


2026-07-08 — Customer reporting: Google reviews (cockpit parity)

Affects: Dashboard · Reporting & Analytics

What: Tile Google Reviews shows average, sentiment, and quotes from the current Google reviews (like Analytics → Reviews) for empty reporting months; new KPI Response Needed.

Why: Cockpit had more data than the customer report because it was only strictly filtered by time period.

Links: Kunden-Reporting


2026-07-08 — Customer reporting: Google reviews

Affects: Dashboard · Reporting & Analytics

What: New tile Google Reviews with overall rating, new reviews in the period, sentiment, and quote highlights — data from Analytics → Reviews (GBP or Places).

Why: Center management discussions need reputation alongside website, social, and ads — previously only on a separate analytics page.

Links: Kunden-Reporting


2026-07-08 — Social Engage: thread replies & emoji

Affects: Dashboard · Social

What: Community & replies now sends replies as a thread under the comment (no longer as a top-level comment). Emoji quick selection and smiley picker in reply fields; note on Outstand limits (like/hide).

Why: Replies were incorrectly landing as a new comment; editorial needs emojis and clarity on what Outstand can do.

Links: Social Media Freigabe


2026-07-08 — Customer reporting: advertising budget per month

Affects: Dashboard · Reporting & Analytics

What: Per calendar month, meta and Google advertising budgets can be entered in the editorial area. Meta/Google tiles then show monthly budget, spent, remaining, and utilization — also in the customer view and summary.

Why: Center management should see at a glance how the advertising budget was used — not just the absolute costs.

Links: Kunden-Reporting


2026-07-08 — Customer reporting: multiple center management emails

Affects: Dashboard · Reporting & Analytics

What: Under customer reporting, multiple email addresses can be entered for manual monthly report sending (one per line or comma-separated).

Why: Center management and marketing often receive the report in parallel — previously only one address.

Links: Kunden-Reporting


2026-07-08 — Customer reporting: only data tiles & uniform layout

Affects: Dashboard · Reporting & Analytics

What: Intern (/dashboard/analytics/client-report) and customer view (/report/{token}) show only channels with real data in the period. Both layouts use the same components, brand logos (Facebook, Instagram, Google, Meta, Umami), and a consistent KPI grid.

Why: Empty or only configured channels confuse in center management discussions — the overview should only show what is actually substantiated.

Links: Kunden-Reporting


2026-07-08 — Reporting: a place for Live Sync & Outstand Migration

Affects: Dashboard · Social · Reporting & Analytics

What: Customer reporting consolidates data sources (Umami, Outstand, Zernio, Import). Social Performance refers there instead of its own Outstand sync. Super Admin: Link Outstand migration list under channels.

Why: Fewer scattered buttons — a live sync, clear migration Fanpage Karma → Outstand.

Links: Kunden-Reporting, Social Einstieg


2026-07-08 — Zernio Ads live in customer reporting

Affects: Dashboard · Social · Reporting & Analytics · Operations & Deploy

What: Meta/Google Ads can appear live in customer reporting after Zernio integration (Cron sync, Center mapping, Import fallback for history).

Why: Advertising remains in agency BM/MCC; Solo operation without its own Meta app uses Zernio as Managed Ads API (like Outstand for Social).

Links: Kunden-Reporting, Cron-Setup


Month June 2026

2026-06-21 — MCP Remote: COCKPIT_ALLOW_CONTENT_PUSH remains after Deploy

Affects: Dashboard · MCP & Agents · Operations & Deploy

What: render.yamlCOCKPIT_ALLOW_CONTENT_PUSH changed from value: "" to sync: false (like Bearer/API-Key).

Why: Every blueprint deploy reset the manually set variable to true/1 back to empty.

Links: Claude MCP — IT-Setup Render


2026-06-21 — Social approvals: clearer, consistently in German

Affects: Social

What: Approval cards with German status and format display (Feed post, Carousel, Story, Reel), structured detail panel, action bar like website workflow; Center and Meta row.

Why: English post types (feed, carousel) and cramped card layout made verification difficult.

Links: Social Media Freigabe


2026-06-21 — Workflow & approvals: clearer, consistently in German

Affects: Dashboard · Website & v0

What: Draft fields in the detail panel with German labels (Name, Category, Floor, Opening hours, Website …); logical field order; clearer action bar per card; origin/AI assistant instead of English labels.

Why: Shop import drafts showed technical English JSON keys; the action buttons appeared cluttered.

Links: Workflow & Freigaben


Affects: Dashboard

What: Reset/Activate/Unlock pages read tokens server-side (no hanging suspense spinner); diagnoseAccountToken() distinguishes expired, already used, wrong link type.

Why: /auth/reset-password?token=… remained on the loading spinner; reused links had no clear message.

Links: Benutzer: Einmal-Links


2026-06-21 — Profile self-service secured & expanded

Affects: Dashboard

What: User APIs with missing auth closed; My Account supplemented with profile picture URL and organization; Center Manager uses cm-auth instead of open by-email lookup; optional CM_BRIDGE_SECRET for server-to-server.

Why: Every logged-in user could read foreign profiles/center assignments via API; CM app name lookup was broken and insecure.

Links: Benutzer: Mein Konto


Affects: Dashboard

What: Self-service reset on the login page uses the same email pipeline as the admin reset (no longer just status === 'Active'); Auth footer with automatic copyright year and dashboard version from apps/dashboard/VERSION.

Why: Emails did not arrive from the login page, although admin reset worked; outdated copyright year and missing version info in the footer.

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


2026-06-17 — API security phase 5 (Admin & Parking)

Affects: Dashboard

What: Maintenance/migration routes (scheduling/migrate, normalize-roles, seed-technicians, migrate/cdn-fields, setup-live-demo, vector-settings/*) only with admin auth in Prod; Parking zones CRUD and center listing with center auth (Session, CM-Bridge or Bearer).

Why: Open admin endpoints (DDL, role migration, demo user, vector keys) and unprotected parking zone mutations close.

Links: docs/SECURITY-AUDIT.md (Abschnitt 11), Cockpit-Daten-Domänen — Parking


2026-06-17 — Visitor chat: prompt injection hardening

Affects: Website & v0 · Chatbot & AI

What: System prompt supplemented (Indirect Injection, Off-Topic rejection); Client assistant history is normalized as context user message for the LLM; regression tests pnpm test:prompt-injection and pnpm test:prompt-injection-db-offer (real DB offer path).

Why: Public chatbot with DB/API context — defend against manipulation through offer texts, fake assistant, and multi-turn.

Links: Public Center Website API — Besucher-Chatbot, scripts/test-prompt-injection.ts, scripts/prompt-injection-db-offer-test.ts


Affects: Dashboard · Website & v0 · Reporting & Analytics · Operations & Deploy

What: Bot analytics are anonymized before storage; session IDs without IP; website chat requires chatConsentAccepted; rate limits for contact/feedback; cookie category external for Google Maps/external fonts; Cron privacy-retention (default 365 days).

Why: Close gaps between documentation and code; traceable retention and consent for visitor services.

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


2026-06-06 — Daily editorial digest (opt-in)

Affects: Dashboard · Operations & Deploy

What: Optional daily email summary (bell + open approvals/workflow) — only with content, default off. Settings under Settings → Notifications; Cron hourly, dispatch at the chosen Berlin hour. Rejections and publish errors remain immediate emails.

Why: Editorial team should be informed without receiving every bell immediately via email; security emails (password, lockout) remain unchanged immediate.

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


2026-06-06 — Center Manager: Operational cockpit UI (Light/Dark)

Affects: Dashboard

What: Neutral layout instead of full-screen gradient and glassmorphism; Light/Dark toggle in the header; AI chat with clear cards, static example chips, and a factual tone.

Why: More professional working tool for Center Manager on the go — better readability, less 'consumer app' look.

Links: Center Manager App — Oberfläche


2026-06-06 — Account Security: Lockout, Unlock, Token Purpose, Legacy API

Affects: Dashboard

What: Login lockout (5 failed attempts) with email + /auth/unlock; setup links also for inactive accounts; legacy PUT/DELETE /api/users sends the same notification emails as [userId]. Additive DB columns to User.

Why: All flows promised in emails work; no dead API paths anymore.

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


Affects: Dashboard · Email

What: Unified dashboard emails (resend), copyright SawatzkiMühlenbruch GmbH, no plaintext passwords anymore — Welcome/Admin reset/invitation via one-time link (/auth/activate, /auth/reset-password).

Why: Professional SaaS standard; secure onboarding and reset flow.

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


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

Affects: Operations & Deploy

What: CRON_SECRET + PINECONE_HOST in Render blueprint; legacy routes slimmed down to 410 stubs; GitHub Vector-Sync checks health afterwards (needsSync === 0).

Why: Cron auth and Pinecone host documented deployable; dead code removed; failed index detected in CI.

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


2026-06-06 — CM AI Phase 2/3: Health, Social, Confirmation, Thread Memory

Affects: Dashboard · Chatbot & AI · Operations & Deploy

What: Vector-Sync health in API settings, legacy action-handler removed from chat (410), CenterContacts in Pinecone, social drafts, human-in-the-loop, Redis chat threads.

Why: Operations see index status in UI; irreversible actions confirmed; a single orchestrator path instead of a parallel legacy chain.

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


2026-06-06 — Pinecone Vector-Sync & Hybrid Context (Manager AI)

Affects: Operations & Deploy

What: More complete Pinecone index (shops, offices, services/hot picks real-time), central host from config, nightly cron, manager assistant always loads DB + Pinecone.

Why: Not all center data ended up in Pinecone; rich DB context (issues, contacts, etc.) was missing on hits.

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


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

Affects: Dashboard

What: AI chat uses dashboard intent + context; multiple actions via ai-orchestrator instead of regex-first.

Why: Demo workflows were not smart enough; the brain lies in the dashboard (analyzeIntentWithAI).

Links: Center Manager App, Developer: AI-Orchestrator


2026-06-06 — Center Manager: Session Security & Live Data

Affects: Dashboard · Operations & Deploy

What: HttpOnly cookie session with middleware, real employees in the Today dashboard, legacy /ai-assistant/ai-chat, subdomain DNS documentation.

Why: App was not production-ready (localStorage session, demo team, hardcoded URLs).

Links: Center Manager App


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

Affects: Dashboard

What: Navigation groups QR management as well as NOW! shop campaigns/reservations/store view under submenus; URLs unchanged.

Why:

Links: Navigation & Module, Modul-Zuordnung


2026-06-04 — Legacy Page Builder: Phase-5a-SQL Prepared (not executed)

Affects: Operations & Deploy

What: 20260604_legacy_page_archive_tables_SAFE.sql — archive tables + idempotent copy from Page/PageBlock.

Why:

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


2026-06-04 — Legacy Page Builder: Phase-5 Archive Plan (Draft)

Affects: Dashboard

What: Migration plan packages/database/docs/20260604_legacy_page_pageblock_archive_PHASE5_SAFE.md — expand-contract for Page/PageBlock, without execution.

Why: Team can release backup, archive tables, and DROP separately.

Links: Legacy Page Builder — Abschaltung


2026-06-04 — Reserve & Collect: Module Assignment Documented

Affects: Dashboard

What: Documentation clarifies that QR management, reserve campaigns, and reservations belong to the module digital-experience; marketing only a cross-section.

Why:

Links: Modul-Zuordnung, Navigation & Module


Affects: Dashboard

What: Script scripts/backup-legacy-page-builder-tables.mjs exports Page/PageBlock read-only to backups/. Shop locations New use ContentFormFooter like edit.

Why: Safe preparation for DB archiving without DROP; uniform form UX at branches.

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


2026-06-04 — Legacy Page Builder: prisma.page write access disabled (Phase 4)

Affects: Dashboard

What: Guard legacy-page-builder-guard.ts disables all remaining Page/PageBlock writes (Theme Manager, Setup Routes). API add-hbb-blocks removed. Theme setup status uses PageContent/websiteEnabled.

Why: No active stack writes legacy pages anymore — prevents silent re-seeding during theme setup.

Links: Legacy Page Builder — Abschaltung


2026-06-04 — Legacy Page Builder: Routes + APIs removed (Phase 2)

Affects: Dashboard · Website & v0 · Signage & QR

What: Legacy UI (/dashboard/content/pages), /api/pages*, Center Pages APIs, and migration/maintenance routes deleted. Block editor components for WordPress content areas remain. Audit script checks that removed paths do not reappear.

Why: 0 production traffic on legacy APIs; Center website, WordPress, and signage use different models — UI/API remnants are only a maintenance risk.

Links: Legacy Page Builder — Abschaltung


2026-06-04 — Legacy Page Builder: Seeding removed + entries cleaned up

Affects: Dashboard · Website & v0 · Signage & QR

What: No new Page/PageBlock seeding during Center creation/repair/theme regeneration; hidden dashboard links (websites tab, theme settings, technology badge, menu editor) point to websites tab or WordPress content areas. WordPress verification: Plugin only uses ContentArea APIs, not legacy pages.

Why: Production stack (center website, signage, manager, WordPress) does not depend on the Page Builder — safe shutdown phase 3+2.

Links: Legacy Page Builder — Abschaltung


2026-06-04 — Legacy Page Builder: Audit & shutdown plan

Affects: Website & v0 · MCP & Agents

What: Script scripts/audit-legacy-page-builder.mjs + documentation for the safe removal of the React Page Builder (Page/PageBlock); delineation from WordPress, templates, and pagesConfig.

Why: SPA Page Builder is replaced by WordPress/v0/MCP — removal only after measurable usage, without data loss.

Links: Legacy Page Builder — Abschaltung


2026-06-04 — Dashboard: UI token check & color migration

Affects: Dashboard

What: check-dashboard-ui-tokens.mjs detects all common Tailwind palette utilities (text/bg/border/gradient/ring, variants); new codemod migrate-dashboard-color-classes.mjs; dashboard baseline 0 under --strict.

Why: Hardcoded blue-600/gray-50 classes bypass cockpit-dashboard-theme.css — central theme adjustments should apply globally.

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


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

Affects: Dashboard · MCP & Agents · Reporting & Analytics

What: New MCP tool cockpit_analytics_content_performance_batch (up to 40 contents, one Umami call); English analytics-integration.md aligned with DE standard.

Why: Agents can evaluate list performance without N individual requests; i18n documentation was outdated.

Links: Analytics-Integration


2026-06-04 — Analytics: Verification checklist + MCP discover

Affects: Dashboard · Website & v0 · MCP & Agents · Reporting & Analytics

What: Documentation section 'Verification' in analytics-integration.md; MCP tool-catalog category analytics (5 tools); cockpit_center_project_init and V0_CUSTOM_INSTRUCTIONS supplemented with analytics read tools.

Why: After Umami/content performance release, clear verification steps for website, v0, and MCP/agents.

Links: Analytics-Integration


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

Affects: Dashboard · Reporting & Analytics

What: ContentPerformanceCard on shop detail (tab analytics), job detail, and news (replaces old news card); AI for all content types when OpenAI is active; news retains dedicated SEO POST route.

Why: One module, maximum Umami+AI coverage on all relevant detail pages.

Links: Analytics-Integration


2026-06-04 — Umami Content Performance: Detail pages & MCP

Affects: Dashboard · MCP & Agents · Reporting & Analytics

What: Performance card on offer and event detail pages (ContentPerformanceCard); MCP tools cockpit_analytics_content_performance and cockpit_analytics_content_performance_insights; cockpit_analytics_content_metrics adjusted to Umami aggregation.

Why: Unified Umami+AI usage not only on content overview and news but also for Claude/MCP integrations.

Links: Analytics-Integration · Content Management


2026-06-04 — Content Overview: real performance data

Affects: Dashboard · Reporting & Analytics

What: /dashboard/content — KPI cards and performance table use DB metrics (news, hot picks, jobs); news views with Umami fallback; no random SEO scores anymore; column 'Quality' instead of misleading 'AI Score'.

Why: The box appeared like live analytics but sometimes delivered mock values and broken Prisma selects.

Links: Analytics-Integration


2026-06-04 — Dashboard UI: Social Hub & content status expanded

Affects: Dashboard

What: SocialHubView on Surface/design tokens; content-status-badges.ts supplemented with jobs, hot picks, offices, and offer lifecycle; list and detail pages adjusted accordingly.

Why: Modular UI patterns after color migration completed — less duplicated status mappers.

Links: Mall-OS UI


2026-06-04 — Dashboard UI: Hub patterns & content status

Affects: Dashboard

What: CockpitSectionHub uses Surface/surfaceVariant instead of Tailwind color strings; shared status mappers in content-status-badges.ts for news/events/pages; CI workflow dashboard-quality.yml for quick token/route checks.

Why: Maintainable UI patterns after color migration completed — next steps modular instead of big bang.

Links: Mall-OS UI


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

Affects: Dashboard

What: check-dashboard-ui-tokens.mjs --strict in apps/dashboard prebuild and pnpm check:dashboard-ui (Root); Baseline 0 — Build fails on new hardcoded colors.

Why: Prevent regressions after the token migration is completed.

Links: Mall-OS UI


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

Affects: Dashboard

What: Last 37 single-hit files (Auth, CM-App, Wayfinding, Shop-Mapping, Content-Forms, Legal-Pages, etc.) migrated to design tokens; Check script reports 0 hits.

Why: Color migration completed — foundation for --strict in the dashboard build.

Links: Mall-OS UI


2026-06-04 — Dashboard UI: Migration Round 15 (2-hit files completed)

Affects: Dashboard · Website & v0

What: All remaining files with 2 hardcoded hits each: Content-Detail, Hub pages, Marketing, QR, RSS, WordPress templates, Plugin UI generator, etc.

Why: Baseline reduced from 85 to 37 hits — only isolated cases remain.

Links: Mall-OS UI


2026-06-04 — Dashboard UI: Migration Round 14 (Lists, WordPress, Property)

Affects: Dashboard · MEC Import · Signage & QR

What: Digital Signage, Finance, Parking, Property, Marketing, MEC Import, Settings Notifications, WordPress Overview, Center Profile, Editorial Flow, Touchscreen, Wayfinding, etc. migrated to token badges/Surface.

Why: Clean up all remaining three-hit files from the baseline.

Links: Mall-OS UI


2026-06-04 — Dashboard UI: Migration Round 13 (WordPress, Components, Issues)

Affects: Dashboard

What: Theme Generator, Center Profile, Schema Check, External Events, News AI, WP Performance, Shop Mapping, Issues/new, CM Content, Emergency Override migrated to token badges/Surface.

Why: Unify four-hit files and common helper components.

Links: Mall-OS UI


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

Affects: Dashboard

What: Capture Status, Issue Detail, CM Notifications, Community Overview, Team Management, Quick Links, Module Categories, Drafts, QR Detail, Integration Suites migrated to token badges/Surface.

Why: Remaining Center Manager and Community views without scattered bg-*-100 classes.

Links: Mall-OS UI


2026-06-04 — Social Caption AI: Platform Rules & Center Context

Affects: Dashboard · Social

What: Caption generator uses platform-specific hashtag rules (Facebook without tags; Instagram 3–5; optional first comment for FB+IG). Prompts in social-caption-prompts.ts; API loads Shops, Events, Offers, News from the DB according to the brief.

Why: Hashtags only where they work; better texts through real center data instead of generic phrases.

Links: Social Media Freigabe


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

Affects: Dashboard

What: ROLE_BADGE_VARIANT/ROLE_DOT_CLASS in permissions.ts; Dispatch cards, Issues, Hot Picks/Jobs Detail, Reviews, Backup, Social sharing link migrated to token badges.

Why: Unify central role colors and remaining list/detail pages.

Links: Mall-OS UI


2026-06-04 — Dashboard UI: Hardened Check Script + Migration Round 10

Affects: Dashboard

What: check-dashboard-ui-tokens.mjs now scans all dashboard sources with (?!\d) boundary (no false positives from bg-blue-500). Migration: System Overview, Center Manager Dashboard, Shops/Services, Google Places, Support Page.

Why: Reliable baseline for CI; further lists and cockpit widgets migrated to token badges.

Links: Mall-OS UI


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

Affects: Dashboard

What: WordPress content areas, Dynamic Hero, Content Overview/Offers/Offices, Page Cards (STATUS_INFO), Theme Family Selector, Settings Roles migrated to @mall-os/ui badges and tokens.

Why: Further hardcodes in lists, scope badges, and theme selection unified.

Links: Mall-OS UI


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

Affects: Dashboard

What: Further pages migrated to @mall-os/ui tokens: Website releases (workflow), Social sharing board, Property area (badges), Personnel, Content Planner (type chips), Dispatch detail, Events list, Settings users (module matrix).

Why: Gradually reduce hardcoded Tailwind colors — Baseline check from ~332 to ~260 hits.

Links: Mall-OS UI


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

Affects: Dashboard · Operations & Deploy

What: New components in @mall-os/ui: Surface, StatTile, SelectableCard, KanbanColumn. Badge/StatusBadge on design tokens. Migration Dispatch Kanban, Social channel chips, AI selection, Block renderer. Check script pnpm check:dashboard-ui.

Why: A central, maintainable UI layer — appearance controlled via cockpit-dashboard-theme.css instead of scattered Tailwind colors.

Links: Mall-OS UI — Semantische Flächen


2026-06-04 — Alert Variants (Dashboard, Round 7)

Affects: Dashboard

What: Wayfinding SVG upload, shop mapping list, center profile (team & workflows), offers AI, header/footer colors, property automation, integration suites, notifications, file upload, theme upload.

Why: Further standardization of the alert UI in the dashboard.

Links: Mall-OS UI — Hinweise


2026-06-04 — Alert Variants (Dashboard, Round 6)

Affects: Dashboard

What: Admin setup, center page sync, app settings modal, homepage tiles, emergency manager, wayfinding, embed chat, reservations, plugin migration. PageContainer for services quick setup and organization detail.

Why: Continuation of consistent alert UI and page shell.

Links: Mall-OS UI — Hinweise


2026-06-04 — Alert Variants (Dashboard, Round 5)

Affects: Dashboard · Chatbot & AI · Reporting & Analytics · MEC Import

What: Dispatch detail, MEC import (media alert), shop mapping map, domains, WordPress connect/import, center plan Google Maps alert, chatbot analytics, reviews sentiment. Digital experience theme pages on PageContainer.

Why: Further UI standardization without manual color overrides.

Links: Mall-OS UI — Hinweise


2026-06-04 — Alert Variants instead of Color Overrides (Dashboard, Round 4)

Affects: Dashboard · Operations & Deploy

What: About 20 more places: social editor/release board, QR management, Google Places, CM apps settings, workflow rejection, website settings (digital experience) including PageContainer + DNS alert as Alert.

Why: Continuation of UI standardization; fewer manual color classes.

Links: Mall-OS UI — Hinweise


2026-06-04 — Alert Variants instead of Color Overrides (Dashboard)

Affects: Dashboard

What: About 50 places with manual border-*-200 bg-*-50 switched to Alert/Card to Alert-variants (default, warning, destructive, success). Hub cards (settings, system) use normal Card + --shadow-card-hover. New variant success in @mall-os/ui.

Why: Uniform alert design without duplicated Tailwind colors.

Links: Mall-OS UI — Hinweise


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

Affects: Dashboard

What: News detail shows real views (Umami per news URL, fallback DB), shares from DB, SEO/readability scores (rule-based, optional OpenAI). Central --shadow-card token for all Card components.

Why: No more placeholder metrics; cards clearly stand out from the page background.

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


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

Affects: Dashboard

What: Users (new/edit), Roles, Feedback Detail, Communication Redirect, WP Content Areas detail/edit on PageContainer. Design tokens in community and WordPress hub.

Why: Uniform dashboard shell in admin and WordPress areas.


2026-06-04 — Dashboard: Edit Routes & PageContainer (Continuation)

Affects: Dashboard

What: Content editing under canonical path /content/{type}/{id}/edit (offers, shops, services, jobs, hot picks, shop chains, shop locations, centers); old edit/[id] URLs redirect. Integration, WordPress content areas on PageContainer; scheduling/broadcast/content areas: gray-*/blue-* → design tokens.

Why: Uniform URLs and visual shell like in events/news; fewer hardcoded colors.


2026-06-04 — Dead Code Cleanup (Dashboard)

Affects: Dashboard

What: Removed: API-.backup files, api/_disabled/**, WordPress-*.old pages, unused Unified Website Builder, dev route test-bunny, dead nav configs. Demo stubs /dashboard/events|shops|jobs → redirects to /dashboard/content/*. Marketing/community links corrected.

Why: Less confusion, no more duplicate/obsolete UIs in the repo. Remaining React page builder paths are documented in deprecated-navigation.ts.


2026-06-04 — Content Forms & Dashboard Page Layout

Affects: Dashboard

What: News, Events, and Offers (new and edit) use the same 3-step pattern (content → publish → optional). More dashboard pages on PageContainer: center plans (overview + new), team management, scheduling, video scheduling, broadcast messages, WordPress hub.

Why: Uniform editorial workflow; fewer detached special layouts and hardcoded colors.

Links: Content Creator Handbuch


2026-06-04 — Dashboard UI: Tabs, Website Navigation, News Form

Affects: Dashboard · Website & v0

What: Uniform tab styles via design tokens (@mall-os/ui, no more hex overrides). Website tab: collapsible main groups + search in the sidebar. New News: form in three steps (content → publish → optional).

Why: Less visual inconsistency and cognitive load for editors in daily operations.

Who: Editorial team, center operations (dashboard).

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

Testing: Any page with tabs (e.g., social) → active tab uses primary color. Center → website → expand/collapse groups, search. Content → news → new → click through three tabs, save.


Month May 2026

2026-05-22 — Social from News/Event/Offer

Affects: Dashboard · Social

What: Button As Social Post on content detail pages; API POST /api/social/from-content; hub note for news/events/offers.

Why: A data core — website content is transformed into a social draft without duplicate maintenance (cockpitOS integration).

Who: Editorial, Marketing.

Links: Social Media Freigabe


2026-05-22 — Social Cockpit Shell & Hub 'Today'

Affects: Dashboard · Social

What: Uniform SocialPageShell with subnav on all core pages; hub shows Today for you (KPIs + quick actions) instead of just tiles. API GET /api/social/hub.

Why: Social feels like a cohesive cockpit module in the cockpitOS universe — orientation without feature overload.

Who: Editorial team, center manager, marketing.

Links: Social Media Freigabe, Navigation


2026-05-21 — Social Engage: Facebook Comments from Outstand

Affects: Dashboard · Social

What: Corrected parser for Outstand replies (replies.comments[] instead of just a flat array). Engage uses platformPostId for Facebook and only loads truly published posts.

Why: Under /dashboard/social/engage, comments remained empty even though Facebook showed some — Outstand provides the thread data in a nested JSON.

Links: Social Media Freigabe — Community & Antworten


2026-05-21 — NOW! Shop: Display Name (formerly Reserve & Collect)

Affects: Dashboard

What: Dashboard navigation, pages, marketing overview, shop catalog, and documentation use NOW! Shop as the product name. URLs (/dashboard/reserve-campaigns) and DB models (ReserveCampaign) remain unchanged — no data loss.

Why: Clearer association with the NOW! app and social commerce journey (Social → App → Pickup at Center).


2026-05-21 — Marketing Cockpit: Sidebar, Modules & Roles

Affects: Dashboard

What: Sidebar Marketing Cockpit after Social (Overview, Campaigns, Content Planning, Workflow, Events in Town); active menu items with ?lens=marketing; marketing-cockpit in ROLE_MODULE_IDS and permissions for ORG_MARKETING_MANAGER / CENTER_ADMIN; Mall module without marketing paths; Legacy calendar redirect.

Why: Module visible and correctly assigned — previously, marketing-cockpit often missed in role defaults, sidebar was far down without workflow link.

Links: Navigation & Module, Plattform-Überblick


2026-05-21 — Google Business Profile: Responses Directly from the Cockpit

Affects: Dashboard · Social

What: OAuth integration (Google Business Profile API) per center; reviews from GBP when connected; dialog Send to Google; admin tab under Integration → Google Places.

Why: Google offers an official reply API — with OAuth, centers can publish responses without copy-pasting.

Who: Admin (OAuth client), Center Manager / Editorial (connection + responses).

Links: Social Media Freigabe


2026-05-21 — Reviews: AI Caption, Collective Post, Google Response Help

Affects: Dashboard · Social

What: Social posts from reviews with AI Caption; Social Collective Post from AI recommendation cards; Responses dialog with AI suggestion, copy and link to Google (no auto-post).

Why: Finer tone per topic, address recurring criticism collectively, Google responses user-friendly without a non-existent API.

Who: Editorial, Marketing, Center Manager.

Links: Social Media Freigabe


2026-05-21 — Social: Comment Notifications (Phase B3)

Affects: Dashboard · Social · Operations & Deploy

What: Hub tile Comments Open; dashboard bell for new social comments; Engage opens with ?filter=comments; Cron adds comment check.

Why: Community responses are not forgotten — same 'Today for you' approach as with approvals.

Who: Editorial, Center Manager, Marketing.

Links: Social Media Freigabe


2026-05-21 — Social Post from Google Review

Affects: Dashboard · Social · Reporting & Analytics

What: On Analytics → Reviews button Social Post per review; API POST /api/social/from-content with type: review and review snapshot; hub link to reviews.

Why: Connect reputation (Analytics) and public relations (Social Cockpit) — address criticism/praise in an editable draft without double maintenance of review data.

Who: Editorial, Marketing, Center Manager.

Links: Social Media Freigabe


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

Affects: Dashboard · Social · Reporting & Analytics · Operations & Deploy

What: Outstand integration expanded: channel status in approvals, webhooks (post.published, post.error, account.token_expired), first comment after going live, reels/carousel publish, daily metric sync via Cron.

Why: More reliable publishing (including images via containers[].media), faster error detection and reporting without manual follow-up in Outstand.

Who: Editorial/Social (approval UI), Operations/IT (Env, Webhook, Cron).

Links: - Social Media Freigabe


Affects: Dashboard · Website & v0 · MCP & Agents

What: Own Cockpit Tabs per Page (Ree-Carrée, RGW), DeepL Translation in the cockpit, Free Text Mode for imprint/data protection/terms and conditions; footer/header/subpages from cockpit data.

Why: Editorial maintains multilingual center websites without external tools — legal texts without PDF workflow.

Links: Website-Templates


2026-05-19 — MEC ShopBox & Goldbeck: Optional Content Colors

Affects: Website & v0

What: Per center optional Body Text Color and Page Title Color in the website tab (Goldbeck · Options, MEC ShopBox · Options). Brand/layout colors remain in design or Bento/header.

Why: Readability on legal and content pages (e.g., imprint) without changing the brand color of the navigation.

Links: Goldbeck Webseiten-Tab, MEC Optionen


2026-05-19 — Center Plan: Drawing Mode, Hybrid Hover & Content Highlights

Affects: Dashboard · Website & v0 · Signage & QR

What: Manual Drawing in the center plan, hybrid SVG Hover and mobile shop modal; Highlight Toggle for news/events/offers; content API lists aligned with current bundle filter.

Why: Plan maintenance and highlighted content without code — consistent API for v0 and website.

Links: Centerplan Übersicht


Affects: Dashboard · Website & v0 · MCP & Agents

What: Tab Data Protection, website Cookie Consent, legal texts; visitorPrivacy in public-visitor-surface for v0.

Why: GDPR consent and controllable privacy fields — a single API source for visitor sites.

Links: Datenschutz-Einwilligung, Public API


2026-05-16 — WordPress APIs, Marketing Campaigns & Analytics Footfall

Affects: Dashboard · Website & v0 · Reporting & Analytics

What: WordPress websites/Embed/Sync APIs, Marketing Campaigns UI, Footfall Analytics; Builtin Website Templates API.

Why: Centralized WordPress and marketing workflows in the cockpit instead of silo solutions.

Links: Navigation & Module


2026-05-15 — Videos, ILG Arrival & MCP v0 Guardrails

Affects: Dashboard · Website & v0 · MCP & Agents

What: Videos for news/events/offers/services/stores; ILG Arrival Maps (arrival page); MCP Source-of-Truth Guardrails; Umami fields in website config.

Why: Media and arrival via cockpit/API — v0 does not invent fields.

Links: Claude MCP Redaktion


2026-05-15 — Roles & Settings: CENTER_ADMIN Scoping

Affects: Dashboard · Website & v0

What: CENTER_ADMIN: only own center media and templates; role-based settings; Integration/WordPress menu only SUPER_ADMIN.

Why: Tenant separation — Center admins without super admin rights.

Links: Benutzer & Organisation


2026-05-14 — Hybrid Center Plan: Polygon Editor & Floors MCP

Affects: Dashboard · Website & v0 · MCP & Agents

What: Hybrid SVG with polygon editor and PNG segmentation; Tab New Floor; AgencyOS floors_summary for wayfinding/MCP.

Why: Center plan without Illustrator for standard cases; agents read floors in a structured way.

Links: Hybrid PNG mit Polygonen


2026-05-14 — Goldbeck: Page Visibility & Navigation

Affects: Dashboard · Website & v0 · Operations & Deploy

What: Tab Pages on/off; Nav/Footer and 404 respect disabled pages.

Why: Subpages in the cockpit can be toggled — without deploy.

Links: Goldbeck Webseiten-Tab


2026-05-13 — ILG Hero Slides, Current Hub & Voucher Page

Affects: Dashboard · Website & v0 · Operations & Deploy

What: ILG Hero Slides and sidebar nav; Current hub (news separated from offers/jobs); Voucher Page with logo lines; Iframe pages under /{shortname}.

Why: ILG go-live preparation — central visitor flows and special pages completed.

Links: Feature-Katalog


2026-05-11 — ILG Website Tabs & MEC Pixel Parity B-1.16

Affects: Dashboard · Website & v0 · MCP & Agents

What: ILG Page Content Tabs (jobs, doctors, offers); MEC B-1.16 pixel parity (offers flex, contact, opening hours); MCP cockpit_public_wayfinding_floors.

Why: ILG editorial and MEC migration continue in one release cycle.

Links: Feature-Katalog


2026-05-09 — Slug APIs for All Content Types & MCP Completeness

Affects: Website & v0 · MCP & Agents · Reporting & Analytics

What: Public Slug Queries for news, events, offers, stores, services, chains; MCP tools and analytics integration expanded; workflow bulk actions.

Why: v0 and external frontends use meaningful URLs — agents can address everything.

Links: Public API Vertrag


2026-05-01 — Hero Slider Editor for Editors

Affects: Dashboard · Website & v0

What: Hero Slider Editor v2 in the dashboard — slides, layout, and media without custom CSS; connection to templates.

Why: Marketing wants to maintain hero areas themselves — not through developer tickets.

Links: Base Template Optionen


2026-05-01 — MEC Import: templateContent from Legacy API

Affects: Dashboard · Website & v0 · MCP & Agents · MEC Import

What: MEC import takes templateContent from old MEC API; social links dashboard ↔ frontend synchronized.

Why: Migration of old centers without manually updating each template field.

Links: MEC-Import


Month April 2026

2026-04-01 — MEC Templates C/D/Grooss: Pixel Parity Subpages

Affects: Dashboard · Website & v0 · MEC Import

What: MEC Template C, D, Grooss: Subpages visually match the original; shopping world with center plan mode; nav overlay and boxed layout.

Why: MEC migration — visitors should retain the familiar appearance.

Links: MEC-Import


Month March 2026

2026-03-31 — RGW/Goldbeck: CMS Pages & Social Icons

Affects: Dashboard · Website & v0

What: RGW pages (University, Rental, Quarter Compass) from CMS; Goldbeck offices/wayfinding; social icons in templates.

Why: Content pages fully from Cockpit — not hardcoded in the frontend.

Links: Goldbeck Webseiten-Tab


2026-03-25 — Ree-Carrée: Event Banner & Website Tabs

Affects: Dashboard · Website & v0

What: Ree-Carrée: dynamic event banner; hero/deals/opening hours in the website tab; subpages in the template.

Why: Center-specific homepage logic without fork in the base template.

Links: Website-Templates


2026-03-24 — RGW Template (Rathaus Galerie Wuppertal)

Affects: Dashboard · Website & v0

What: RGW template with its own layout; multi-mall overview alphabetically; website options in dedicated tabs.

Why: Second full template for Kaufland/Rathaus-Galerie-Wuppertal.

Links: Website-Templates


2026-03-23 — ILG Website Template Integrated

Affects: Dashboard · Website & v0

What: Own ILG template (Center website + dashboard tab) for doctors/health, sidebar navigation, and special page logic.

Why: ILG-Rheinland needs a different structure compared to the standard mall layout.

Links: Feature-Katalog


Month February 2026

2026-02-27 — SEO/GEO: JSON-LD, Canonical & Sitemap (Base Template)

Affects: Website & v0 · Chatbot & AI

What: Structured Data (ItemList, Breadcrumb, Event/News, HowTo Directions); Canonical/OG/Twitter; GEO Score and AI citation notes in documentation.

Why: Optimize center websites for search and AI responses — not just visually.

Links: SEO AI GEO


Affects: Dashboard · Website & v0 · MEC Import

What: MEC ShopBox template with Bento grid, directions tab extension; logo carousel without white spaces; jobs page in the base template.

Why: Legacy MEC center visually and content-wise aligned with the original.

Links: MEC Small Assets Webseiten-Tab


2026-02-26 — Goldbeck Template & Center Website Wayfinding

Affects: Dashboard · Website & v0

What: Goldbeck website template; wayfinding pages with header/footer; AI page and cookie consent improvements.

Why: First client-specific full template alongside the base layout.

Links: Goldbeck Webseiten-Tab


Month January 2026

2026-01-31 — Center Plan: Shop Mapping Fullscreen & SVG Preview

Affects: Dashboard · Operations & Deploy

What: Simplified Shop Mapping in fullscreen; SimplifiedMapView with SVG rendering; debug API for MapLocation data.

Why: Editorial can map shops faster and see the plan in original quality.

Links: Centerplan Übersicht


2026-01-30 — Digital Signage: Companion Template & Center ID Recognition

Affects: Dashboard · Website & v0 · Signage & QR · Operations & Deploy

What: Companion App template; automatic Center ID from subdomain/branding; wayfinding legacy as a selectable signage template.

Why: Multiple center domains — kiosk/companion without manual UUID maintenance in each instance.

Links: v0 Deploy & Cockpit-Register


Month December 2025

2025-12-31 — WordPress Plugin v1.16.5 (Opening Hours & Locations)

Affects: Dashboard · Website & v0 · Operations & Deploy

What: Plugin v1.16.5: intelligent Compact Opening Hours; delete pages for shop chains/locations; update API fixes.

Why: WordPress shops and locations accurately reflect cockpit opening hours.

Links: WordPress AI Assistant


2025-12-16 — Offices & Practices: Office Type Management

Affects: Dashboard · Website & v0

What: Office Types and extended office/practice maintenance; shop locations with displayId; opening hours JSON consistent in APIs.

Why: Health and office centers need their own types and clean API fields.

Links: Büros & Praxen


Month November 2025

2025-11-29 — Homepage Tiles Manager (Dashboard + Website)

Affects: Dashboard · Website & v0 · Operations & Deploy

What: Create/edit Homepage Tiles in the dashboard; center website dynamically renders tiles from API (grid layout, media).

Why: Homepage highlights without code — editorial controls order and images.

Links: Feature-Katalog


2025-11-29 — Dynamic Center Data & AI Chat Context

Affects: Website & v0 · Chatbot & AI

What: Center website loads full center configuration from DB; AI Chat sends centerId for dynamic context; category themes and media fields.

Why: Visitor chat and UI should use real center data — not static mocks.

Links: Chatbot KI-Transparenz


Month October 2025

2025-10-29 — WordPress Plugin: Auto-Update & Dynamic Tags

Affects: Dashboard · Website & v0 · Operations & Deploy

What: Plugin Auto-Update (v1.7.6+); Content Dynamic Tags with correct API URL; center filter synchronized with context.

Why: Keep WordPress pages up to date without manual plugin uploads.

Links: WordPress AI Assistant


2025-10-28 — WordPress Website Model & Batch Sync

Affects: Dashboard · Website & v0

What: Data model WordPressWebsite; Batch Sync Queue including center, logo, and favicon import.

Why: Cleanly assign and synchronize multiple WP instances per organization.

Links: Navigation & Module


2025-10-18 — Center Plan: Shop Mapping & SVG Hover Revised

Affects: Dashboard · Website & v0

What: Shop mapping on the plan (pins, hover, coordinates); isActive for floors; rich text sync and batch sync for content areas.

Why: Editorial team reliably links shops with plan areas — basis for visitor wayfinding.

Links: Centerplan Content-Workflow


Month September 2025

2025-09-22 — WordPress Plugin Focus (SPA replaced)

Affects: Dashboard · Website & v0 · Operations & Deploy

What: Strategic shift: WordPress Plugin with modular admin UI, German interface, and update system; frontend SPA removed from main path.

Why: Many centers run on WordPress — integration there instead of parallel SPA maintenance.

Links: WordPress AI Assistant


2025-09-22 — Content Areas: WordPress Integration Phase 1

Affects: Dashboard · Website & v0

What: Content Areas sync between Cockpit and WordPress; Elementor/theme widgets use Cockpit data instead of hardcoding.

Why: Editorial team maintains once in Cockpit — WordPress pages show current content.

Links: API WordPress Push


2025-09-18 — Wayfinding: Combined Overview & SVG Converter

Affects: Dashboard · Website & v0 · Signage & QR

What: Wayfinding Overview in the dashboard; SVG converter with multi-floor detection and UX fixes for center plan import.

Why: Make floors and routes importable without Illustrator experts.

Links: Centerplan Übersicht


Month August 2025

2025-08-31 — Frontend SPA: Dynamic Page Blocks from Cockpit API

Affects: Dashboard · Website & v0 · Operations & Deploy

What: Center Frontend SPA loads page builder blocks live from the dashboard API; fallbacks and CORS hardened for production.

Why: Central maintenance of website content — frontend renders what editorial saves in Cockpit.

Links: Plattform-Überblick


2025-08-29 — Universal Plugin System & Modular Theme Architecture

Affects: Dashboard · Website & v0

What: Universal Plugins (Hero, Shops, Events, Services, Quick Links) with dashboard page editor, migration for existing centers, and modular CSS per theme (e.g., HBB).

Why: Center homepages should be composable from reusable blocks without individual development.

Links: Website-Templates


2025-08-28 — Website Analytics Dashboard with Real Charts

Affects: Dashboard · Chatbot & AI · Reporting & Analytics

What: Analytics overview in the dashboard with real charts and chatbot integration — first central evaluation instead of placeholders.

Why: Center operations should see traffic and usage without external tools.

Links: Analytics Guide


Month July 2025

2025-07-22 — Digital Signage: Build & Deploy stabilized

Affects: Dashboard · Website & v0 · Signage & QR · Operations & Deploy

What: Digital Signage App Build in CI/CD fixed (Favicon, GitHub Actions); Database env templates for production standardized.

Why: Kiosk/Companion deployments must not fail due to frontend builds — operations need reproducible pipelines.

Links: Digital Signage Guide


Month May 2025

2025-05-26 — Project Start: cockpitOS Monorepo & Dashboard

Affects: Dashboard · Operations & Deploy

What: First Monorepo with Dashboard (Next.js, Tailwind v4), deployment setup, and basic navigation — foundation for all future modules.

Why: A common cockpit instead of scattered tools for center operations and editorial work.

Links: Plattform-Überblick · Getting Started


Entries are added with each delivery; older releases receive Affects tags when the page is updated anyway.

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