Muster v0.1.5 — the demo becomes a full platform
Added
- Full demo population (#23): every section of the live demo (app.musterr.dev) now renders as a real, busy agency: CRM (15 deals, 33 activities, 12 proposals), finance (33 invoices with line items and payments, 30 expenses, subscriptions), delivery (deliverables, project updates, sprint snapshots), comms (message threads, notifications, client tickets), analytics ledgers (os_ai_commits, os_web_vitals, os_interactions), DAM (7 dam_* collections, 30 assets, brand books), 6 fictional team members with avatars, org logos, and a client demo login (client@muster.dev / muster-demo).
- Mock integration service (mocks/): Matomo-shaped and Migadu-shaped APIs with deterministic data so analytics charts and the client email panel render live-looking numbers with zero real keys.
- Seed toolkit (provision/seed-full/, 64 idempotent scripts): the full demo dataset is reproducible from provisioning (board task 70100ce7).
- Daily demo refresh (provision/demo-refresh/): cron keeping perishable analytics/insight/infra snapshot rows alive.
Changed
- prepare-context.sh 6d fix pack: portal CSP now derives the Directus origin from NEXT_PUBLIC_DIRECTUS_URL (CMS-hosted logos/photos were blocked by the baked img-src), env-overridable MIGADU_API_BASE, three frozen-build rendering fixes, dev-only screenshot-preview routes excluded from the build.
Verification
Adversarially verified by a multi-agent panel against authenticated screenshots of all 41 portal sections under both demo logins: 41/41 populated, zero empty, error, or env-gated states.
Deploy notes
The demo box runs image elk-os/portal:run2-csp2 (built natively amd64 on-box); previous image retained as rollback. Release hand-cut per the release-please workflow header recipe (RELEASE_PLEASE_TOKEN gap: board task a1bce112).