Commit graph

163 commits

Author SHA1 Message Date
Till JS
d29348d906 docs: add devlog for morning session + update guidelines to session-based
Switch devlog convention from daily to session-based (vormittag/abend).
Add devlog for Manalink prod-readiness work and deployment.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:20:40 +01:00
Till JS
df0b849408 feat: add org landing page builder service
New service that generates static Astro landing pages for organizations
and deploys them to Cloudflare Pages at {slug}.mana.how.

Components:
- Landing Builder Service (NestJS, port 3030) with Astro template
- Admin UI in Manacore web dashboard at /organizations/[id]/landing
- TeamSection + ContactSection for shared-landing-ui
- Two org themes (classic dark, warm light)
- LandingPageConfig types in shared-types
- Docker + CI/CD integration for Mac Mini deployment

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 13:20:10 +01:00
Till JS
efcb18a98f refactor(auth): standardize mobile auth return format to { success, error }
Align mobile AuthProviders (chat, manacore) with web auth stores:
- Replace { error: { message } | null } with { success: boolean, error?: string }
- Add needsVerification support to signUp return type
- Update all consumer screens (login, register, reset-password) accordingly

All auth methods across web and mobile now use the same return pattern.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 12:59:13 +01:00
Till JS
241cb3332a refactor(auth): standardize URL resolution and token handling across all web auth stores
Align all 20 web app auth stores to a consistent pattern:
- Use DEV_* constants with import.meta.env.DEV guard (no localhost leak in prod)
- Pass backendUrl to initializeWebAuth for automatic 401 token refresh
- Add redirectTo to forgotPassword for correct post-reset redirect

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 12:11:52 +01:00
Till JS
343f30e321 refactor(manacore-mobile): migrate from Supabase to mana-core-auth
Complete migration of ManaCore mobile app from direct Supabase access
to mana-core-auth API. Removes @supabase/supabase-js dependency entirely.

New files:
- context/AuthProvider.tsx: mana-core-auth integration via @manacore/shared-auth
- services/api.ts: ManaCoreApi client wrapping mana-core-auth REST endpoints

Migrated (17 files):
- Auth: signIn/signUp/signOut → @manacore/shared-auth with SecureStore
- Profiles: supabase.from('profiles') → /api/v1/auth/profile
- Organizations: supabase.from('organizations') → /api/v1/auth/organizations
- Credits: supabase.from('credit_transactions') → /api/v1/credits/balance
- Members: supabase.from('user_roles') → /api/v1/auth/organizations/:id/members

Simplified (teams not yet in mana-core-auth):
- CreateTeam, TeamList, TeamMembers → placeholder with TODO
- SendMana → shows balance only, transfer coming later

Deleted:
- utils/supabase.ts, utils/memoryStorage.ts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 11:41:48 +01:00
Till JS
073c216652 fix(docker): add shared-error-tracking package to all 15 web Dockerfiles
The browser error tracking hooks.client.ts added earlier requires the
shared-error-tracking package to be copied and built in the Docker image.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 09:08:33 +01:00
Till JS
b37d5f0338 docs(devlog): add devlog for 2026-03-22
Analytics, PWA, Mukke Visualizer, Browser Error Tracking, CSP Headers,
Storage Deployment, Calendar Fixes — 26 commits across the monorepo.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 08:53:20 +01:00
Till JS
7cad4073d4 feat(error-tracking): add browser error tracking to all 19 SvelteKit web apps
Add @sentry/browser integration via shared-error-tracking/browser export
and hooks.client.ts in every web app for client-side error reporting to GlitchTip.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 19:16:21 +01:00
Till JS
287bbed86e feat(analytics): add automatic CTA tracking to all 10 landing pages
Create Analytics.astro component in @manacore/shared-landing-ui that
automatically tracks CTA clicks and pricing section views via Umami.

The component uses event delegation and auto-detection of section
context (hero/pricing/footer) from section IDs or DOM position,
requiring zero changes to existing landing page content.

Tracked events: cta_click (with location), pricing_viewed,
pricing_plan_selected (with plan name)

Added to all 10 landing page Layout.astro files.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 19:13:24 +01:00
Till JS
cc9679dc9f refactor(analytics): centralize landing page Umami tracking via env vars
Replace hardcoded Umami website IDs in all 10 Astro landing pages with
import.meta.env.PUBLIC_UMAMI_WEBSITE_ID, following the same pattern
as the web apps.

- Add UMAMI_WEBSITE_ID_*_LANDING vars for all 10 landings in .env.development
- Add landing page configs to generate-env.mjs
- Replace hardcoded IDs with env var in 7 existing Layout.astro files
- Add Umami tracking to 3 missing landings (NutriPhi, Presi, Mukke)
- Fix Todo Landing invalid ID ("todo-landing" -> proper UUID)
- Update ANALYTICS.md with new landing page IDs

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 19:03:02 +01:00
Till JS
f5ee3aae20 feat(security): add unified CSP headers to all 17 web apps
Create @manacore/shared-utils/security-headers with setSecurityHeaders()
utility that sets standard security headers (CSP, X-Frame-Options,
X-Content-Type-Options, Referrer-Policy, Permissions-Policy).

CSP includes stats.mana.how (Umami) and glitchtip.mana.how by default.
Each app passes its own connectSrc origins (auth URL, backend URL, etc.).

Previously only Calendar and Storage had CSP headers - now all 17 web
apps have consistent security headers via the shared utility.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 18:53:40 +01:00
Till JS
2c26fce736 fix: replace all manacore.app URLs with mana.how
The production domain is mana.how, not manacore.app. Updated all
references across shared-branding APP_URLS, app configs, landing pages,
docs, help content, calendar iCal UIDs, and deploy scripts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 18:40:37 +01:00
Till JS
e01b740dba refactor(analytics): centralize Umami tracking via env vars and shared utility
Move Umami analytics from hardcoded script tags in app.html to
server-side injection via hooks.server.ts. Website IDs are now
managed centrally in .env.development and distributed via
generate-env.mjs as PUBLIC_UMAMI_WEBSITE_ID.

- Add @manacore/shared-utils/analytics-server with injectUmamiAnalytics()
- Add UMAMI_WEBSITE_ID_* for all 17 web apps to .env.development
- Add PUBLIC_UMAMI_WEBSITE_ID mapping in generate-env.mjs for all web apps
- Update 10 existing hooks.server.ts to use shared utility
- Create 7 new hooks.server.ts (picture, planta, presi, photos, clock,
  questions, manadeck)
- Remove hardcoded Umami scripts from all 17 app.html files
- Add missing Umami tracking to Mukke and Questions
- Add shared-utils dependency to 6 web apps that lacked it
- Update ANALYTICS.md with architecture docs and "add new app" guide

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 18:27:31 +01:00
Till JS
9bdb997394 refactor(pwa): replace custom service workers with Vite PWA plugin and centralize offline page
Remove hand-written sw.js, offline.html, and manifest.json from todo/skilltree/zitare web apps
in favor of the Workbox-based service worker generated by @vite-pwa/sveltekit. This fixes an
issue where the custom SW could get stuck serving the offline fallback page even when the server
was reachable. Also extracts the duplicated offline page (~80 lines each across 19 apps) into a
shared OfflinePage component in @manacore/shared-ui with 3 props (appName, offlineMessage,
accentColor), reducing each app's offline route to an 8-line wrapper.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 18:16:43 +01:00
Till JS
28d8cfcbe7 fix(manacore): copy patches directory in Dockerfile for pnpm install
The pnpm-lock.yaml references patches/react-native-reanimated which
was not being copied into the Docker build context, causing build failures.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 17:43:17 +01:00
Till JS
fa116dfee0 feat(manacore): add App Hub as new default home page
Replace dashboard as the default landing page with a new App Hub that
shows all Mana ecosystem apps grouped by category (AI & Creative,
Productivity, Tools & Utilities) with status badges, icons, and
direct links. Uses shared-branding MANA_APPS as data source.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 17:40:45 +01:00
Till JS
7641035a79 docs(storage): update audit score 78 → 82 with versioning and rate limiting
- Backend: 85 → 88 (versioning endpoints, rate limiting)
- Frontend: 80 → 82 (FileVersionsModal, upload new versions)
- Testing: 75 → 78 (7 version tests, total 205)
- Security: 72 → 78 (rate limiting: 100 req/min global, 20 for uploads)
- Overall: 78 → 82 (solid production status)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 21:24:35 +01:00
Till JS
c7b105bc00 docs: add devlog for 2026-03-21 — WhoPixels refactor, Storage animations, Picture hardening
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 21:22:20 +01:00
Till JS
512627b32a docs(storage): update audit score 75 → 78 with animations and integration tests
- Testing: 72 → 75 (39 integration tests, total 198)
- Frontend: 78 → 80 (staggered animations, drag feedback)
- Deployment: 55 → 58 (migrated to nestjs-base Docker image)
- UX: 72 → 75 (animations with prefers-reduced-motion support)
- Overall: 75 → 78

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 15:30:50 +01:00
Till JS
161f10596f docs(storage): update audit score 73 → 75 with drag & drop and E2E tests
- Testing: 65 → 72 (Playwright E2E tests added)
- Frontend: 75 → 78 (drag & drop file/folder moving)
- UX: 67 → 72 (drag & drop with visual feedback)
- Overall: 73 → 75 (production status confirmed)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 13:17:22 +01:00
Till JS
a12cbeb8bb docs(storage): update audit score 70 → 73, status beta → production
- Testing: 50 → 65 (added 50 controller tests, total 159)
- Deployment: 45 → 55 (Caddy entries for storage.mana.how)
- UX: 62 → 67 (PWA full preset, shortcuts, offline page)
- Overall: 70 → 73 — now meets production threshold (71+)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 12:48:54 +01:00
Till JS
fc5dfe2f0f feat: show build date/time on login screen across all apps
- Add BUILD_TIME and BUILD_HASH exports to all version.ts files
- Add getBuildDefines() to all vite.config.ts for compile-time injection
- Add buildTime prop to shared LoginPage component
- Display formatted date/time next to version number (e.g. "v1.0.0 · 21.03.2026 10:30")
- Add app.d.ts type declarations for __BUILD_TIME__ and __BUILD_HASH__

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 12:40:57 +01:00
Till JS
a6a5265332 docs(storage): update audit score 55 → 70 after tests, preview, and a11y improvements
- Testing: 0 → 50 (109 tests: 83 backend Jest + 26 web Vitest)
- Frontend: 70 → 75 (FilePreviewModal, ARIA improvements)
- UX: 55 → 62 (SEO meta tags, accessibility, semantic HTML)
- Deployment: 42 → 45 (Dockerfile port fix)
- Overall: 55 → 70 (beta status maintained)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-21 12:39:43 +01:00
Till JS
1f9714d250 docs(devlog): add 2026-03-20 cross-app SSO & infrastructure fixes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 21:12:33 +01:00
Till JS
d9ccb5e31b feat(games): add whopixels hosting at whopxl.mana.how
Dockerfile, docker-compose service (port 5100), Caddy and cloudflared
routing for the WhoPixels game. PORT is now configurable via env var.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-20 19:57:50 +01:00
Till JS
482bef7e20 docs(devlog): add 2026-03-19 security hardening & error tracking
74 commits covering cross-app SSO fix, audit logging service,
account lockout, API key rate limiting, GlitchTip integration
for all 15 backends, and production readiness audits for all 20 apps.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 22:39:50 +01:00
Till JS
fd0516f119 feat(presi): add DB indexes, Swagger docs, hardened validation (score 81→86)
- Add 7 database indexes on all query paths (userId, deckId, order, themeId)
- Add timestamps with timezone for all tables
- Enable Swagger/OpenAPI documentation at /api/docs
- Add ApiTags and ApiBearerAuth to all controllers
- Add ParseUUIDPipe on all ID parameters
- Harden DTO validation: string length limits, @IsIn for enums,
  @IsUrl for URLs, @ArrayMaxSize for arrays, @Min(0) for order fields
- Update audit to reflect improvements

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 22:35:11 +01:00
Till JS
e84e163c30 test(presi): add 72 tests, rate limiting, error boundary (score 55→81)
- Add 10 test files covering all 5 services and 5 controllers
- Add global ThrottlerGuard (100 req/min) via APP_GUARD
- Add SvelteKit +error.svelte error boundary
- Add Jest config and test dependencies
- Update audit to reflect improvements

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 22:24:38 +01:00
Till JS
effa57fd61 feat(manacore): add Mukke, Presi, Context dashboard widgets
All apps now have dashboard widgets:
- Mukke: music library stats, recent/favorite songs, formatDuration()
- Presi: presentation decks, recent decks, deck counts
- Context: spaces, recent documents, token balance

Added 3 widget types to registry (16 total), 3 API services,
i18n translations (DE + EN), and 17 new tests (120 total).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 21:59:47 +01:00
Till JS
77995f2cd3 test(manacore): add calendar, chat, zitare service tests (score 86→88)
- Calendar service: 6 tests (upcoming events, today, calendars, per-calendar)
- Chat service: 6 tests (recent sort, archived filter, pinned, count, models)
- Zitare service: 6 tests (favorites, random, count, lists)
- Total: 12 test files, 103 tests passing
- Updated audit: testing 65→72, score 86→88, status→production

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 21:43:59 +01:00
Till JS
64c9d49254 test(manacore): add widget service tests for contacts, storage, todo (score 84→86)
- Contacts service: 10 tests (getDisplayName variants, favorites, recent sort)
- Storage service: 10 tests (formatSize units, getStats, getRecentFiles)
- Todo service: 7 tests (today, upcoming, inbox, projects)
- Total: 9 test files, 85 tests passing
- Updated audit: testing 55→65, score 84→86

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 21:36:29 +01:00
Till JS
a5364392d7 feat(manacore): add error boundary and 10 more unit tests (score 82→84)
- Add +error.svelte global error boundary with indigo theme
- Add API keys service tests (4 tests: list, create, revoke)
- Add profile service tests (6 tests: get, update, password, delete, avatar)
- Total: 6 test files, 58 tests passing
- Updated audit: frontend 88→90, testing 48→55, score 82→84

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 21:34:06 +01:00
Till JS
135b65bcd6 test(manacore): add 48 unit tests for dashboard, API client, and credits
- Dashboard widget registry: 14 tests (types, metadata, size classes)
- Default dashboard config: 12 tests (layout, validation, i18n keys)
- Base API client: 15 tests (retry logic, auth headers, error handling)
- Credits service: 7 tests (balance, transactions, packages, usage)
- Updated audit score from 80 to 82 (testing: 12 → 48)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 21:26:51 +01:00
Till JS
aa8197beaf docs(audit): update ManaCore production readiness audit from 65 to 80
Reassessed scores to reflect current state: 5 languages (was 2),
onboarding wizard, 11 dashboard widgets, docker-compose.macmini.yml
integration, proper mana-core-auth JWT/SSO integration. Reframed
backend/database categories for aggregator pattern.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 21:21:35 +01:00
Till JS
764f4515c0 feat(audits): use Umami public share link instead of login credentials
Enable share_id on all 15 Umami websites. Link directly to the ManaCore
dashboard share URL - no login required.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 21:21:25 +01:00
Till JS
1486277733 feat(audits): add login credentials for all monitoring tools
- GlitchTip: guest@mana.how / guestguest
- Grafana: no login needed (anonymous viewer enabled)
- Umami: admin / umami

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 21:17:07 +01:00
Till JS
47f4f89b3c fix: update GlitchTip guest password to meet 8-char minimum
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 21:06:56 +01:00
Till JS
bc5b468d9b feat(audits): add monitoring tools section with GlitchTip guest credentials
Shows GlitchTip (error tracking), Grafana (metrics), and Umami (analytics)
links with guest login credentials directly on the audits page.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 21:04:13 +01:00
Till JS
ac9ce55128 refactor(nav): move feedback pill into user dropdown across all apps
Feedback is now a sub-item under the Konto (user) dropdown in PillNavigation
instead of a standalone pill in the nav bar. Added feedbackHref prop to
PillNavigation (defaults to /feedback) and removed feedback from nav items
in all 11 apps and shared app-routes config.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 21:00:38 +01:00
Till JS
e848fa5342 feat(mukke): display album cover art in library, playlists, and song lists
Add batch cover-url endpoint (POST /library/cover-urls) to efficiently
resolve multiple cover art presigned URLs in a single request. Integrate
cover art display across all UI surfaces: album grid, album detail header,
song list thumbnails, playlist grid, and playlist detail song list.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 20:59:45 +01:00
Till JS
97d5b13a38 feat(versioning): add semantic versioning and changesets to all apps
Assign version numbers based on app maturity: Calendar/Contacts/Todo (1.0.0),
Chat/Picture (0.3.0), 11 beta apps (0.2.0), Context/Planta/Questions (0.1.0),
Traces (0.0.1). Set up @changesets/cli for future version management.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 16:20:18 +01:00
Till JS
01cd7e90d2 docs(audits): update chat, picture, mukke audit reports with improved scores
Reflect production readiness improvements: Chat 74→82, Picture 72→81, Mukke 71→80.
Also fix Dockerfiles to include shared-error-tracking and shared-nestjs-setup packages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-19 15:24:05 +01:00
Till JS
212ec16125 docs(audits): update scores after Swagger and accessibility improvements
- Calendar: 92 → 94 (documentation 95→98, frontend 88→90, ux 85→88)
- Contacts: 93 → 94 (documentation 88→92, frontend 88→90, ux 82→85)
- Todo: 93 → 94 (documentation 90→95, frontend 85→88, ux 82→85)
All three now have: Swagger API docs, skip-to-content, ARIA navigation labels

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 12:42:12 +01:00
Till JS
4c342a53e8 docs(audits): update contacts and todo scores after E2E tests
- Contacts: 91 → 93 (testing 82→88, +10 Playwright E2E tests, 150 total)
- Todo: 91 → 93 (testing 85→90, +10 Playwright E2E tests, 190 total)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 12:25:23 +01:00
Till JS
7d0b2dbba8 docs(audits): update scores after controller tests and i18n expansion
- Calendar: 90 → 92 (testing 82→88, 227 total tests, 17 test files)
- Contacts: 90 → 91 (testing 78→82, 140 total tests, 11 test files)
- Todo: 90 → 91 (testing 80→85, 180 total tests, 11 test files)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 12:13:13 +01:00
Till JS
66e2cdc989 docs(audits): update calendar, contacts, todo scores to 90
- Calendar: 76 → 90 (132 backend tests, error boundary, 5 languages)
- Contacts: 80 → 90 (55 backend tests, 5 languages, 123 total tests)
- Todo: 79 → 90 (109 backend tests, 5 languages, 162 total tests)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 11:27:07 +01:00
Till JS
83d0b64119 docs(devlog): add 9 missing devlogs from Feb 16 to Mar 18
Covers all working days with commits since the last devlog (Feb 15):
- 2026-02-16: LightWrite launch, PWA rollout, Stripe SEPA
- 2026-02-17: spiral-db, Planta bot, Mana Values manifest
- 2026-03-06: Manalink mobile Matrix client
- 2026-03-07: Manalink Expo SDK 55 fixes
- 2026-03-11: CD pipeline with Mac Mini self-hosted runner
- 2026-03-12: Manalink EAS Build fixes
- 2026-03-15: Traces app, Calendar production hardening
- 2026-03-17: Mukke mobile, E2E tests, pre-commit hook
- 2026-03-18: Unit test coverage for contacts and todo

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 10:35:46 +01:00
Till JS
8c9d01a1f6 feat(audits): add production readiness scoring system with 19 app audits
- Add audits content collection to manacore landing (Astro schema with 8 category scores)
- Create scoring methodology doc (docs/PROD_READINESS_SCORE.md)
- Add audit list page with client-side filtering (status) and sorting (score/name/date)
- Add audit detail page with score bars, metrics, and markdown content
- Write audits for all 19 apps: calendar (76), contacts (80), todo (79), chat (74),
  picture (72), mukke (71), matrix (68), manacore (65), nutriphi (63), photos (62),
  zitare (62), context (60), skilltree (58), clock (58), storage (55), presi (55),
  planta (50), manadeck (48), questions (48), traces (35)
- Default sort: score descending; filters: All/Production/Beta/Alpha
- Deployed to Cloudflare Pages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-19 10:20:18 +01:00
Till JS
bd1178edf8 feat(traces): integrate traces app into monorepo with NestJS backend and AI city guides
Restructure standalone traces app into monorepo pattern with mobile + backend + shared types.
Add NestJS backend with Drizzle ORM schema for locations, cities, places, POIs, and AI guides.
Add mobile sync layer, cities tab, and guide generation UI. Fix pre-existing type errors across
mobile codebase, matrix-mana-bot (sendDirectMessage), llm-playground, and all web auth stores
(signUp call signature).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 08:12:42 +01:00
Till-JS
212f4992c1 fix(manacore-web): handle contacts API response format
The Contacts API returns { contacts: Contact[], total: number }
but the service was treating it as a direct Contact[] array.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-17 13:56:47 +01:00