hermes-agent/hermes_cli
Teknium 620fd59b8e
feat(model-picker): add Refresh Models control to bust stale model cache (#48691)
The desktop model picker had no way to force a fresh model fetch: model.options
went through the 1h-cached provider_models_cache.json, and there was no flag to
bust it. When a provider's cached list expired and its next live fetch failed,
the picker fell back to the curated static list — silently dropping live-only
models (e.g. OpenCode Zen's free tier like deepseek-v4-flash-free) the user had
been using.

- Thread refresh through model.options (RPC + REST /api/model/options) ->
  build_models_payload -> list_authenticated_providers, which calls
  clear_provider_models_cache() up front when set so every row re-fetches live.
- Add a 'Refresh Models' control to the desktop picker (5-locale i18n, spinning
  sync icon). Normal opens leave refresh=false to stay snappy on the cache.

Verified: stale cache hides deepseek-v4-flash-free -> refresh busts it -> live
re-fetch surfaces it. refresh=false never touches the cache.
2026-06-18 21:37:41 -07:00
..
dashboard_auth
proxy
subcommands
__init__.py
_parser.py
_subprocess_compat.py
active_sessions.py
auth.py
auth_commands.py
azure_detect.py
backup.py
banner.py
blueprint_cmd.py
browser_connect.py
build_info.py
bundles.py
callbacks.py
checkpoints.py
claw.py
cli_agent_setup_mixin.py
cli_commands_mixin.py
cli_output.py
clipboard.py
codex_models.py
codex_runtime_plugin_migration.py
codex_runtime_switch.py
colors.py
commands.py
completion.py
config.py
container_boot.py
copilot_auth.py
cron.py
curator.py
curses_ui.py
dashboard_register.py
debug.py
default_soul.py
dep_ensure.py
dingtalk_auth.py
doctor.py
dump.py
env_loader.py
fallback_cmd.py
fallback_config.py
gateway.py
gateway_enroll.py
gateway_windows.py
goals.py
gui_uninstall.py
hooks.py
inventory.py feat(model-picker): add Refresh Models control to bust stale model cache (#48691) 2026-06-18 21:37:41 -07:00
kanban.py
kanban_db.py
kanban_decompose.py
kanban_diagnostics.py
kanban_specify.py
kanban_swarm.py
logs.py
main.py
managed_uv.py
mcp_catalog.py
mcp_config.py
mcp_picker.py
mcp_security.py
mcp_startup.py
memory_providers.py
memory_setup.py
middleware.py
migrate.py
model_catalog.py
model_cost_guard.py
model_normalize.py
model_setup_flows.py
model_switch.py feat(model-picker): add Refresh Models control to bust stale model cache (#48691) 2026-06-18 21:37:41 -07:00
models.py
nous_account.py
nous_billing.py
nous_subscription.py
oneshot.py
pairing.py
partial_compress.py
platforms.py
plugins.py
plugins_cmd.py
portal_cli.py
profile_describer.py
profile_distribution.py
profiles.py
prompt_size.py
providers.py
psutil_android.py
pt_input_extras.py
pty_bridge.py
relaunch.py
runtime_provider.py
secret_prompt.py
secrets_cli.py
security_advisories.py
security_audit.py
send_cmd.py
service_manager.py
session_listing.py
session_recap.py
setup.py
setup_whatsapp_cloud.py
skills_config.py
skills_hub.py
skin_engine.py
slack_cli.py
status.py
stdio.py
suggestions_cmd.py
telegram_managed_bot.py
timeouts.py
tips.py
tools_config.py
uninstall.py
voice.py
web_server.py feat(model-picker): add Refresh Models control to bust stale model cache (#48691) 2026-06-18 21:37:41 -07:00
webhook.py
win_pty_bridge.py
write_approval_commands.py
xai_retirement.py