Interface menus v1¶
Persisted Streamlit action-strip configuration. Edited under Settings →
Interface and stored at {config_dir}/interface_menus.json.
Related: settings.md, STORAGE.md.
Envelope¶
schema_version is integer 1. Unknown or missing appearance fields sanitise
to install defaults — no schema bump for additive prefs such as
show_info_tooltips and action_display.
{
"schema_version": 1,
"prefs": { ... },
"prefs_hash": "<sha256 of canonical prefs JSON>"
}
Field |
Rules |
|---|---|
|
Must be |
|
Object. Missing file → built-in prefs (not written until Save). |
|
SHA-256 of |
Malformed JSON, a non-object root, or a missing prefs object also enter
recovery. Compare-and-swap Save uses the raw-file SHA-256 revision.
Prefs object¶
Field |
Default |
Rules |
|---|---|---|
|
|
|
|
|
Known |
|
|
Boolean. Invalid → |
|
|
Global appearance: |
|
all known sections |
Keys are |
Section object¶
Field |
Default |
Rules |
|---|---|---|
|
|
Boolean. Invalid → |
|
|
|
|
|
Manual picks, intersected with the section allowlist. |
|
|
|
Install / Restore built-ins / missing file: every section is inherit, so
strips resolve to the global both (icon and text). Non-menu
render_action_link callers (Charts downloads, Search jumps, and similar)
stay icon+text via the helper default.
Appearance resolution¶
section.action_display == inherit → prefs.action_display
section.action_display in {icon, text, both} → that value
Icon-only buttons always use the action name as the hover tooltip (accessible
name), even when show_info_tooltips is false. Text / both still wrap
instructional help with widget_help().
Sections¶
|
Surface |
|---|---|
|
Home recent-run rows |
|
Library inspector for the selected transcript |
|
Import Transcript after success |
|
Speaker ID after completion |
|
Run Analysis after completion |
Runtime still hides unavailable actions (for example Charts without a completed run) without turning the menu off.