managarten/apps/chat
Wuesteon 2c30867251 🔧 refactor: implement 12-factor runtime config for all web apps
Replace window injection and build-time env vars with runtime config
loaded from /config.json (generated by Docker entrypoint). This fixes
the staging deployment issue where apps were requesting localhost URLs
instead of production URLs.

Changes:
- Add runtime.ts config loader with Zod validation (fail-hard in prod)
- Disable SSR via +layout.ts (apps are client-only SPAs)
- Update API clients and auth stores to use async config getters
- Add docker-entrypoint.sh scripts to generate config.json at startup
- Update Dockerfiles with ENTRYPOINT for config generation
- Simplify docker-compose.staging.yml env vars (12-factor pattern)
- Add static/config.json as dev fallback (localhost defaults)
- Fix onMount return type (Svelte 5 compatibility)
- Add zod dependency to Picture app
- Add backward compat exports for Contacts app

Apps updated:
- Clock (port 3017)
- Chat (port 3002)
- Picture (port 3006)
- Contacts (port 3015)
- Calendar (port 3016)
- Manacore (multi-app platform)

Benefits:
- Build once, deploy anywhere (same Docker image for all envs)
- Configuration in environment, not code (12-factor compliance)
- Fail-hard on missing/invalid config in production
- No accidental SSR localhost fallbacks
- Schema validation ensures all required URLs are present
2025-12-15 21:33:50 +01:00
..
apps 🔧 refactor: implement 12-factor runtime config for all web apps 2025-12-15 21:33:50 +01:00
packages/chat-types ️ fix: resolve all svelte-check a11y warnings across web apps 2025-12-15 19:09:01 +01:00
CLAUDE.md ♻️ refactor(chat): simplify chat service and update seed data 2025-12-12 20:48:10 +01:00
INTEGRATION_COMPLETE.md style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
MANA_CORE_AUTH_INTEGRATION.md style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
package.json improve code quality 2025-12-03 23:42:37 +01:00
TESTING_GUIDE.md style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00