{ "_description": "Tunables for dashboard/* modules. Loaded via core.config_loader.load('dashboard').", "app": { "_comment": "dashboard/app.py — FastAPI app", "title": "Sanad Dashboard", "version": "1.0.0", "static_subdir": "dashboard/static" }, "api_input": { "_comment": "Shared by every route that accepts user text input / uploads. Single source of truth.", "max_text_len": 2000, "max_upload_bytes": 8388608 }, "voice_route": { "_comment": "dashboard/routes/voice.py — reads max_text_len from api_input above", "api_key_mask_visible": 4 }, "typed_replay_route": { "_comment": "dashboard/routes/typed_replay.py — reads max_text_len from api_input above" }, "records_route": { "_comment": "dashboard/routes/records.py", "index_filename": "records.json" }, "prompt_route": { "_comment": "dashboard/routes/prompt.py — script/rule filenames come from core.script_files; default prompt from core.gemini_defaults.default_system_prompt" }, "logs_route": { "_comment": "dashboard/routes/logs.py", "default_tail_lines": 200, "max_tail_lines": 5000 }, "scripts_route": { "_comment": "dashboard/routes/scripts.py — max_script_bytes reads from api_input.max_upload_bytes" }, "live_subprocess_route": { "_comment": "dashboard/routes/live_subprocess.py", "tail_default_lines": 100 } }