diff --git a/apps/desktop/src/app/settings/config-field.tsx b/apps/desktop/src/app/settings/config-field.tsx index 7e5418b3070..7461b4b0c08 100644 --- a/apps/desktop/src/app/settings/config-field.tsx +++ b/apps/desktop/src/app/settings/config-field.tsx @@ -101,6 +101,7 @@ export function ConfigField({ if (selectOptions && schema.searchable) { return row( onChange(next)} options={selectOptions.filter(o => o !== '')} diff --git a/apps/desktop/src/app/settings/searchable-select.tsx b/apps/desktop/src/app/settings/searchable-select.tsx index 855b2c4d568..260d905b985 100644 --- a/apps/desktop/src/app/settings/searchable-select.tsx +++ b/apps/desktop/src/app/settings/searchable-select.tsx @@ -21,13 +21,17 @@ export function SearchableSelect({ onChange, options, placeholder = 'Search…', - emptyMessage = 'No results found.' + emptyMessage = 'No results found.', + clearLabel }: { value: string onChange: (value: string) => void options: string[] placeholder?: string emptyMessage?: string + /** When set, prepends a "clear" item that sets the value to ''. + * Matches the existing EMPTY_SELECT_VALUE pattern. */ + clearable?: boolean type?: 'boolean' | 'list' | 'number' | 'select' | 'string' | 'text' } diff --git a/hermes_cli/web_server.py b/hermes_cli/web_server.py index 5c1de9df75a..8925827637e 100644 --- a/hermes_cli/web_server.py +++ b/hermes_cli/web_server.py @@ -803,7 +803,7 @@ def _timezone_options() -> List[str]: """Return sorted IANA timezone identifiers, cached at import time.""" try: import zoneinfo - return sorted(zoneinfo.available_timezones()) + return sorted(zoneinfo.available_timezones()) or ["UTC"] except Exception: # pragma: no cover return ["UTC"] @@ -814,6 +814,7 @@ _SCHEMA_OVERRIDES: Dict[str, Dict[str, Any]] = { "description": "IANA timezone (e.g. America/New_York). Blank uses the system timezone.", "options": _timezone_options(), "searchable": True, + "clearable": True, }, "memory.provider": { "type": "select",