per-campaign settings, default campaign folders, custom prompt fix
All checks were successful
Build and Push / build (push) Successful in 12m10s

This commit is contained in:
KansaiGaijin
2026-07-21 17:46:37 +12:00
parent 0daca2f208
commit ca13989ca0
14 changed files with 181 additions and 99 deletions

View File

@@ -31,16 +31,15 @@ def campaign_notes_dir(campaign_id: str) -> Path:
for d in (UPLOAD_DIR, AUDIO_DIR, TRANSCRIPT_DIR, NOTES_DIR):
d.mkdir(parents=True, exist_ok=True)
# Runtime-editable settings (stored in DB, these are just first-run defaults).
# NOTE: this flat key/value schema is the single source of truth for settings -
# it's what every consumer (pipeline/summarize.py, pipeline/transcribe.py,
# routers/models.py, routers/diagnostics.py) actually reads. The settings
# router and frontend must mirror these exact keys - a nested schema would
# silently disconnect the Settings/Setup UI from the pipeline.
DEFAULT_SETTINGS = {
# Onboarding
# Runtime-editable global settings (stored in the `settings` table).
# Only onboarding state lives here; everything else is per-campaign.
GLOBAL_SETTINGS = {
"onboarding_completed": "false",
}
# Per-campaign settings — seeded into campaign_settings on creation.
# Every layer (frontend, router, pipeline) reads these from the campaign.
CAMPAIGN_SETTINGS = {
# Transcription
"whisper_model": "medium", # tiny|base|small|medium|large-v3 - user picks based on their hardware
"whisper_compute_type": "int8",