per-campaign settings, default campaign folders, custom prompt fix
All checks were successful
Build and Push / build (push) Successful in 12m10s
All checks were successful
Build and Push / build (push) Successful in 12m10s
This commit is contained in:
@@ -13,10 +13,12 @@
|
||||
- Background jobs (transcribe, summarize) run via in-process `ThreadPoolExecutor(max_workers=2)` — no Redis/Celery.
|
||||
- Frontend serves on port **8020** (d20 nod).
|
||||
|
||||
## Critical convention: flat settings schema
|
||||
## Critical convention: per-campaign settings schema
|
||||
|
||||
Settings are a flat key/value table in SQLite. **Every layer must share exact same keys:**
|
||||
`backend/app/config.py:DEFAULT_SETTINGS`, `frontend/src/api.ts:AppSettings`, the settings router, and Setup/Settings pages. Changing a key without updating all layers silently desyncs the UI.
|
||||
Settings are split into **global** (`settings` table, just `onboarding_completed`) and **per-campaign** (`campaign_settings` table, everything else). Every layer must share the exact same keys:
|
||||
`backend/app/config.py:CAMPAIGN_SETTINGS`, `frontend/src/api.ts:CampaignSettings`, campaigns router, and Settings/Setup pages. New campaigns inherit settings from the "default" campaign on creation.
|
||||
The settings router (`/api/settings`) only handles global; campaign settings live at `/api/campaigns/{id}/settings`.
|
||||
When adding a setting key, add it to `config.py:CAMPAIGN_SETTINGS`, the frontend type, and both the backend router and frontend Settings page.
|
||||
|
||||
## Docker / framework quirks
|
||||
|
||||
|
||||
Reference in New Issue
Block a user